paybox: decode correctly responses of validation and cancellation operations (#27543)
This commit is contained in:
parent
d2b5f91e63
commit
0e6a724231
|
@ -364,8 +364,9 @@ class Payment(PaymentCommon):
|
|||
response.raise_for_status()
|
||||
logger.debug('received %r', response.content)
|
||||
data = dict(urlparse.parse_qsl(response.content, True, True))
|
||||
data['COMMENTAIRE'] = data.get('COMMENTAIRE', '').decode('iso-8859-1')
|
||||
if data.get('CODEREPONSE') != PAYBOX_DIRECT_SUCCESS_RESPONSE_CODE:
|
||||
raise ResponseError(data.get('COMMENTAIRE'))
|
||||
raise ResponseError(data['COMMENTAIRE'].encode('utf-8'))
|
||||
return data
|
||||
|
||||
def validate(self, amount, bank_data, **kwargs):
|
||||
|
|
|
@ -146,13 +146,13 @@ class PayboxTests(TestCase):
|
|||
'numero_appel': ['30310733'],
|
||||
'reference': ['830657461681']
|
||||
}
|
||||
backend_raw_response = """NUMTRANS=0013989865&NUMAPPEL=0030378572&NUMQUESTION=0013989862&SITE=1999888&RANG=32&AUTORISATION=XXXXXX&CODEREPONSE=00000&COMMENTAIRE=Demande traitée avec succès&REFABONNE=&PORTEUR="""
|
||||
backend_raw_response = """NUMTRANS=0013989865&NUMAPPEL=0030378572&NUMQUESTION=0013989862&SITE=1999888&RANG=32&AUTORISATION=XXXXXX&CODEREPONSE=00000&COMMENTAIRE=Demande trait\xe9e avec succ\xe8s&REFABONNE=&PORTEUR="""
|
||||
backend_expected_response = {"CODEREPONSE": "00000",
|
||||
"RANG": "32",
|
||||
"AUTORISATION": "XXXXXX",
|
||||
"NUMTRANS": "0013989865",
|
||||
"PORTEUR": "",
|
||||
"COMMENTAIRE": "Demande traitée avec succès",
|
||||
"COMMENTAIRE": u"Demande traitée avec succès",
|
||||
"SITE": "1999888",
|
||||
"NUMAPPEL": "0030378572",
|
||||
"REFABONNE": "",
|
||||
|
@ -192,7 +192,7 @@ class PayboxTests(TestCase):
|
|||
self.assertEqual(requests_post.call_args[0][0], 'https://ppps.paybox.com/PPPS.php')
|
||||
|
||||
with mock.patch('eopayment.paybox.requests.post') as requests_post:
|
||||
error_response = """CODEREPONSE=00015&COMMENTAIRE=PAYBOX : Transaction non trouvée"""
|
||||
error_response = """CODEREPONSE=00015&COMMENTAIRE=PAYBOX : Transaction non trouv\xe9e"""
|
||||
response = mock.Mock(status_code=200, content=error_response)
|
||||
requests_post.return_value = response
|
||||
self.assertRaisesRegexp(eopayment.ResponseError, 'Transaction non trouvée', getattr(backend, operation_name),
|
||||
|
|
Loading…
Reference in New Issue