From 4cd7c7c63b2ceeae09f0b14048817ef7e1a10805 Mon Sep 17 00:00:00 2001 From: Saurabh Date: Wed, 1 Nov 2017 12:15:57 +0530 Subject: [PATCH] [fix] first commit payment transaction status and then run post payment process method --- .../doctype/paypal_settings/paypal_settings.py | 9 ++++++--- .../doctype/razorpay_settings/razorpay_settings.py | 8 ++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/payments/payment_gateways/doctype/paypal_settings/paypal_settings.py b/payments/payment_gateways/doctype/paypal_settings/paypal_settings.py index 36eff70..eb28b99 100644 --- a/payments/payment_gateways/doctype/paypal_settings/paypal_settings.py +++ b/payments/payment_gateways/doctype/paypal_settings/paypal_settings.py @@ -227,11 +227,14 @@ def confirm_payment(token): }, "Completed") if data.get("reference_doctype") and data.get("reference_docname"): - redirect_url = frappe.get_doc(data.get("reference_doctype"), data.get("reference_docname")).run_method("on_payment_authorized", "Completed") + custom_redirect_to = frappe.get_doc(data.get("reference_doctype"), + data.get("reference_docname")).run_method("on_payment_authorized", "Completed") frappe.db.commit() - if not redirect_url: - redirect_url = '/integrations/payment-success' + if custom_redirect_to: + redirect_to = custom_redirect_to + + redirect_url = '/integrations/payment-success' else: redirect_url = "/integrations/payment-failed" diff --git a/payments/payment_gateways/doctype/razorpay_settings/razorpay_settings.py b/payments/payment_gateways/doctype/razorpay_settings/razorpay_settings.py index a7da7c4..4d6c5d5 100644 --- a/payments/payment_gateways/doctype/razorpay_settings/razorpay_settings.py +++ b/payments/payment_gateways/doctype/razorpay_settings/razorpay_settings.py @@ -108,10 +108,7 @@ class RazorpaySettings(Document): until it is explicitly captured by merchant. """ data = json.loads(self.integration_request.data) - settings = self.get_settings(data) - redirect_to = data.get('notes', {}).get('redirect_to') or None - redirect_message = data.get('notes', {}).get('redirect_message') or None try: resp = make_get_request("https://api.razorpay.com/v1/payments/{0}" @@ -119,7 +116,7 @@ class RazorpaySettings(Document): settings.api_secret)) if resp.get("status") == "authorized": - self.integration_request.db_set('status', 'Authorized', update_modified=False) + self.integration_request.update_status(data, 'Authorized') self.flags.status_changed_to = "Authorized" else: @@ -132,6 +129,9 @@ class RazorpaySettings(Document): status = frappe.flags.integration_request.status_code + redirect_to = data.get('notes', {}).get('redirect_to') or None + redirect_message = data.get('notes', {}).get('redirect_message') or None + if self.flags.status_changed_to == "Authorized": if self.data.reference_doctype and self.data.reference_docname: custom_redirect_to = None