[FIX] payment_adyen: fix error while making payment with adyen
* in _adyen_generate_merchant_sig_sha256 no need to encode dict key as we have a normal dict. Because of this encoding it will search for byte string key but we have string key; * _adyen_generate_merchant_sig method requires the latest computed data from adyen_form_generate_values method. If we directly pass the dictionary while updating it, it will pass only business parameters and we don't need it. After updating values we have actual transaction data. This commit is related to task ID 1815966.
This commit is contained in:
committed by
Thibault Delavallée
parent
3869b080ae
commit
70f3d453b5
@@ -78,7 +78,7 @@ class AcquirerAdyen(models.Model):
|
||||
]
|
||||
|
||||
hmac_key = binascii.a2b_hex(self.adyen_skin_hmac_key.encode('ascii'))
|
||||
raw_values = {k: values.get(k.encode('ascii'), '') for k in keys if k in values}
|
||||
raw_values = {k: values.get(k, '') for k in keys if k in values}
|
||||
raw_values_ordered = OrderedDict(sorted(raw_values.items(), key=lambda t: t[0]))
|
||||
|
||||
return signParams(raw_values_ordered)
|
||||
@@ -151,8 +151,8 @@ class AcquirerAdyen(models.Model):
|
||||
'sessionValidity': tmp_date,
|
||||
'resURL': urls.url_join(base_url, AdyenController._return_url),
|
||||
'merchantReturnData': json.dumps({'return_url': '%s' % values.pop('return_url')}) if values.get('return_url') else False,
|
||||
'merchantSig': self._adyen_generate_merchant_sig('in', values),
|
||||
})
|
||||
values['merchantSig'] = self._adyen_generate_merchant_sig('in', values)
|
||||
|
||||
return values
|
||||
|
||||
|
||||
Reference in New Issue
Block a user