paybox: make the callback a parameter of the backend not of the request() method

This commit is contained in:
Benjamin Dauvergne 2015-07-17 10:07:54 +02:00
parent a5b78ccbb2
commit 67951f27ec
2 changed files with 10 additions and 3 deletions

View File

@ -137,6 +137,7 @@ class Payment(PaymentCommon):
production 194.2.160.66 194.2.122.158
backup 195.25.7.146 195.25.7.166
'''
callback = None
description = {
'caption': _('Paybox'),
@ -184,6 +185,10 @@ class Payment(PaymentCommon):
('978', 'Euro'),
),
},
{
'name': 'callback',
'caption': _('Callback URL'),
},
]
}
@ -204,8 +209,8 @@ class Payment(PaymentCommon):
d['PBX_TIME'] = kwargs.get('time') or (unicode(datetime.datetime.utcnow().isoformat('T')).split('.')[0]+'+00:00')
d['PBX_ERRORCODETEST'] = '77777'
d['PBX_ARCHIVAGE'] = transaction_id
if 'callback' in kwargs:
d['PBX_REPONDRE_A'] = unicode(kwargs['callback'])
if self.callback:
d['PBX_REPONDRE_A'] = unicode(self.callback)
d = d.items()
d = sign(d, self.shared_secret.decode('hex'))
url = URLS[self.platform]

View File

@ -33,6 +33,7 @@ class PayboxTests(TestCase):
'rang': '001',
'identifiant': '413536281',
'shared_secret': key,
'callback': 'http://example.com/callback',
})
time = '2015-07-15T18:26:32+02:00'
email = 'bdauvergne@entrouvert.com'
@ -64,9 +65,10 @@ class PayboxTests(TestCase):
'PBX_TOTAL': '1999',
'PBX_DEVISE': '978',
'PBX_HASH': 'SHA512',
'PBX_HMAC': '41DF99DBE6EAD9F6E2C82C3560A7407AA90E170D69BE14E526EC0589F54A0351BE4FA8E03BCAF5E36D2A3A1060425ACF2A2DE945B1C8422094A34C1CEF48202C',
'PBX_HMAC': 'BA570AF3F5FBF741D3746A9778DB421A68A339669502E9FB2459D0B01EE9E9A88BD499300E6BCE99F729D8FEEE72BDC2F95521F06D2DA1C0924905D1244C6F17',
'PBX_ARCHIVAGE': '1234',
'PBX_ERRORCODETEST': '77777',
'PBX_REPONDRE_A': 'http://example.com/callback',
}
self.assertIn(name, values)
self.assertEqual(node.attrib['value'], values[name])