diff --git a/odex25_donation/ensan_donation_request/models/donation_recurring.py b/odex25_donation/ensan_donation_request/models/donation_recurring.py
index b8933947c..db5fb903b 100644
--- a/odex25_donation/ensan_donation_request/models/donation_recurring.py
+++ b/odex25_donation/ensan_donation_request/models/donation_recurring.py
@@ -322,7 +322,6 @@ class DonationRecurring(models.Model):
rec._advance_next_date()
except Exception as e:
self.message_post(body=_("⛔ Unexpected error:
%s") % str(e)) - raise return True @api.model diff --git a/odex25_donation/payment_hyperpay/models/payment.py b/odex25_donation/payment_hyperpay/models/payment.py index 46a86f910..aea032303 100644 --- a/odex25_donation/payment_hyperpay/models/payment.py +++ b/odex25_donation/payment_hyperpay/models/payment.py @@ -37,6 +37,7 @@ class HyperPayPaymentTransaction(models.Model): _inherit = 'payment.transaction' 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 def _hyperpay_form_get_tx_from_data(self, data): diff --git a/odex25_donation/payment_hyperpay_tokenization/models/payment.py b/odex25_donation/payment_hyperpay_tokenization/models/payment.py index 0df4ac766..35b403f16 100644 --- a/odex25_donation/payment_hyperpay_tokenization/models/payment.py +++ b/odex25_donation/payment_hyperpay_tokenization/models/payment.py @@ -6,6 +6,8 @@ import re import dateutil import pytz import logging +import pprint + _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)" pending_re = r"^(000\.200|800\.400\.5|100\.400\.500)" - result = data.get('result') - result_code = result.get('code') + result = data.get('result', {}) + result_code = result.get('code','') res = { 'acquirer_reference': data.get('id'), '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): date_validate = dateutil.parser.parse(data.get('timestamp')).astimezone(pytz.utc).replace(tzinfo=None)