Merge pull request #6065 from expsa/store_hyperpay_response
[IMP] payment_hyperpay, payment_hyperpay_tokenization: save hyperpay …
This commit is contained in:
commit
330290fc66
|
|
@ -322,7 +322,6 @@ class DonationRecurring(models.Model):
|
||||||
rec._advance_next_date()
|
rec._advance_next_date()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.message_post(body=_("⛔ Unexpected error:<br/><pre>%s</pre>") % str(e))
|
self.message_post(body=_("⛔ Unexpected error:<br/><pre>%s</pre>") % str(e))
|
||||||
raise
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ class HyperPayPaymentTransaction(models.Model):
|
||||||
_inherit = 'payment.transaction'
|
_inherit = 'payment.transaction'
|
||||||
|
|
||||||
hyperpay_checkout_id = fields.Char('Checkout Id', groups='base.group_user', help='Unique checkout id for every hyper transasction')
|
hyperpay_checkout_id = fields.Char('Checkout Id', groups='base.group_user', help='Unique checkout id for every hyper transasction')
|
||||||
|
hyperpay_response_payload = fields.Text('Response Payload', help='Response payload from HyperPay')
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def _hyperpay_form_get_tx_from_data(self, data):
|
def _hyperpay_form_get_tx_from_data(self, data):
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@ import re
|
||||||
import dateutil
|
import dateutil
|
||||||
import pytz
|
import pytz
|
||||||
import logging
|
import logging
|
||||||
|
import pprint
|
||||||
|
|
||||||
|
|
||||||
_logger = logging.getLogger(__name__)
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
@ -91,12 +93,20 @@ class HyperPayTransaction(models.Model):
|
||||||
success_re = r"^(000\.000\.|000\.100\.1|000\.[36]|000\.400\.1[12]0|000\.400\.0[^3]|000\.400\.100)"
|
success_re = r"^(000\.000\.|000\.100\.1|000\.[36]|000\.400\.1[12]0|000\.400\.0[^3]|000\.400\.100)"
|
||||||
pending_re = r"^(000\.200|800\.400\.5|100\.400\.500)"
|
pending_re = r"^(000\.200|800\.400\.5|100\.400\.500)"
|
||||||
|
|
||||||
result = data.get('result')
|
result = data.get('result', {})
|
||||||
result_code = result.get('code')
|
result_code = result.get('code','')
|
||||||
res = {
|
res = {
|
||||||
'acquirer_reference': data.get('id'),
|
'acquirer_reference': data.get('id'),
|
||||||
'state_message': f"{result.get('description', '')}\n{','.join([str(s) for s in data.get('parameterErrors', [])])}"
|
'state_message': f"{result.get('description', '')}\n{','.join([str(s) for s in data.get('parameterErrors', [])])}"
|
||||||
}
|
}
|
||||||
|
if self.hyperpay_response_payload:
|
||||||
|
res.update({
|
||||||
|
'hyperpay_response_payload': f"{self.hyperpay_response_payload} \n===============\n {pprint.pformat(data)}"
|
||||||
|
})
|
||||||
|
else:
|
||||||
|
res.update({
|
||||||
|
'hyperpay_response_payload': pprint.pformat(data)
|
||||||
|
})
|
||||||
|
|
||||||
if re.match(success_re, result_code):
|
if re.match(success_re, result_code):
|
||||||
date_validate = dateutil.parser.parse(data.get('timestamp')).astimezone(pytz.utc).replace(tzinfo=None)
|
date_validate = dateutil.parser.parse(data.get('timestamp')).astimezone(pytz.utc).replace(tzinfo=None)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue