From 290897f849cfd1413cdc2e5a1fd3570853c5472a Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 6 Oct 2016 11:06:31 +0530 Subject: [PATCH] [minor] wait for razorpay to complete the payment --- frappe/integrations/razorpay.py | 9 +++++++-- .../pages/integrations/razorpay_checkout.py | 14 +++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/frappe/integrations/razorpay.py b/frappe/integrations/razorpay.py index bd59c728dc..6f5dd76788 100644 --- a/frappe/integrations/razorpay.py +++ b/frappe/integrations/razorpay.py @@ -163,8 +163,13 @@ class Controller(IntegrationController): if self.flags.status_changed_to == "Authorized": if self.data.reference_doctype and self.data.reference_docname: - custom_redirect_to = frappe.get_doc(self.data.reference_doctype, - self.data.reference_docname).run_method("on_payment_authorized", self.flags.status_changed_to) + custom_redirect_to = None + try: + custom_redirect_to = frappe.get_doc(self.data.reference_doctype, + self.data.reference_docname).run_method("on_payment_authorized", self.flags.status_changed_to) + except Exception: + frappe.log_error(frappe.get_traceback()) + if custom_redirect_to: redirect_to = custom_redirect_to diff --git a/frappe/templates/pages/integrations/razorpay_checkout.py b/frappe/templates/pages/integrations/razorpay_checkout.py index 8d80617c7d..6ed01d6010 100644 --- a/frappe/templates/pages/integrations/razorpay_checkout.py +++ b/frappe/templates/pages/integrations/razorpay_checkout.py @@ -3,8 +3,8 @@ from __future__ import unicode_literals import frappe from frappe import _ -from frappe.utils import get_url, flt -import json, urllib +from frappe.utils import flt +import json from frappe.integrations.razorpay import Controller @@ -18,8 +18,6 @@ def get_context(context): context.no_cache = 1 context.api_key = Controller().get_settings().api_key - installed_apps = frappe.get_installed_apps() - # all these keys exist in form_dict if not (set(expected_keys) - set(frappe.form_dict.keys())): for key in expected_keys: @@ -45,4 +43,10 @@ def make_payment(razorpay_payment_id, options, reference_doctype, reference_docn "reference_doctype": reference_doctype }) - return Controller().create_request(data) + # let razorpay commit its payments! + import time + time.sleep(0.5) + + data = Controller().create_request(data) + frappe.db.commit() + return data