From 284b888036ba8ea23eae1fda6d47339c57438379 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 27 Oct 2023 09:49:22 +0200 Subject: [PATCH] Do not override info_data on potentially duplicate payment attempt --- pretix_authorizenet/payment.py | 3 +-- pretix_authorizenet/signals.py | 12 ++++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pretix_authorizenet/payment.py b/pretix_authorizenet/payment.py index ed498d7..bee4acf 100644 --- a/pretix_authorizenet/payment.py +++ b/pretix_authorizenet/payment.py @@ -445,8 +445,7 @@ def execute_payment(self, request: HttpRequest, payment: OrderPayment): r.raise_for_status() resp = json.loads(r.content.decode("utf-8-sig")) - payment.info_data = resp - payment.save(update_fields=["info"]) + payment.order.log_action("pretix_authorizenet.result", data=resp) if resp["messages"]["resultCode"] == "Ok" and resp["transactionResponse"]["responseCode"] == "1": ReferencedAuthorizeNetObject.objects.create( order=payment.order, diff --git a/pretix_authorizenet/signals.py b/pretix_authorizenet/signals.py index 6d51a58..04c43d9 100644 --- a/pretix_authorizenet/signals.py +++ b/pretix_authorizenet/signals.py @@ -78,10 +78,14 @@ def signal_process_response( @receiver(signal=logentry_display, dispatch_uid="authorizenet_logentry_display") def pretixcontrol_logentry_display(sender, logentry, **kwargs): - if logentry.action_type != "pretix_authorizenet.event": + if logentry.action_type not in ("pretix_authorizenet.event", "pretix_authorizenet.result"): return - data = json.loads(logentry.data) - event_type = data.get("eventType", "").replace("net.authorize.", "") + if logentry.action_type == "pretix_authorizenet.event": + data = json.loads(logentry.data) + event_type = data.get("eventType", "").replace("net.authorize.", "") + + return _("Authorize.Net reported an event: {}").format(event_type) + elif logentry.action_type == "pretix_authorizenet.result": + return _("Authorize.Net result received.") - return _("Authorize.Net reported an event: {}").format(event_type)