From b3fdcf19dd351fb77bdb6534969ce8853a0f4723 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Sun, 11 Oct 2020 15:25:51 +0200 Subject: [PATCH 1/3] paybox: handle CANCELLED and DENIED situations (#9746) --- eopayment/paybox.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/eopayment/paybox.py b/eopayment/paybox.py index 0962f23..47e7784 100644 --- a/eopayment/paybox.py +++ b/eopayment/paybox.py @@ -35,11 +35,10 @@ from six.moves.urllib import parse as urllib import base64 from gettext import gettext as _ -import string import warnings -from .common import (PaymentCommon, PaymentResponse, FORM, PAID, ERROR, Form, - ORDERID_TRANSACTION_SEPARATOR, ResponseError, force_text, +from .common import (PaymentCommon, PaymentResponse, FORM, PAID, CANCELLED, + DENIED, ERROR, Form, ResponseError, force_text, force_byte) __all__ = ['sign', 'Payment'] @@ -368,8 +367,13 @@ class Payment(PaymentCommon): data.append('%s=%s' % (key, urllib.quote(value))) data = '&'.join(data) signed = verify(data, sig) - if d['erreur'][0] == '00000': + erreur = d['erreur'][0] + if erreur == '00000': result = PAID + elif erreur == '00117': + result = CANCELLED + elif erreur[:3] == '001' and 0 < int(erreur[3:5]) < 100: + result = DENIED else: result = ERROR for l in (5, 3): -- 2.28.0