From b456c19e6a35f7ca772de553f2a4336a1c1df974 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 11 Mar 2021 14:06:45 +0100 Subject: [PATCH] systempayv2: raise an error when no transaction_id is found (#47538) --- eopayment/systempayv2.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/eopayment/systempayv2.py b/eopayment/systempayv2.py index da4a470..dc1853b 100644 --- a/eopayment/systempayv2.py +++ b/eopayment/systempayv2.py @@ -492,10 +492,15 @@ class Payment(PaymentCommon): message += ' signature invalide.' test = fields[VADS_CTX_MODE] == 'TEST' - if VADS_EOPAYMENT_TRANS_ID in fields: - transaction_id = fields[VADS_EOPAYMENT_TRANS_ID] + vads_eopayment_trans_id = fields.get(VADS_EOPAYMENT_TRANS_ID) + vads_trans_date = fields.get(VADS_TRANS_DATE) + vads_trans_id = fields.get(VADS_TRANS_ID) + if vads_eopayment_trans_id: + transaction_id = vads_eopayment_trans_id + elif vads_trans_date and vads_trans_id: + transaction_id = vads_trans_date + '_' + vads_trans_id else: - transaction_id = '%s_%s' % (copy[VADS_TRANS_DATE], copy[VADS_TRANS_ID]) + raise ResponseError('backend error', message) # the VADS_AUTH_NUMBER is the number to match payment in bank logs copy[self.BANK_ID] = copy.get(VADS_AUTH_NUMBER, '') transaction_date = None