diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py index c58b185a089..e7371bdd711 100644 --- a/erpnext/accounts/doctype/payment_request/payment_request.py +++ b/erpnext/accounts/doctype/payment_request/payment_request.py @@ -244,10 +244,10 @@ class PaymentRequest(Document): success_url = shopping_cart_settings.payment_success_url if success_url: redirect_to = ({ - "Orders": "orders", - "Invoices": "invoices", - "My Account": "me" - }).get(success_url, "me") + "Orders": "/orders", + "Invoices": "/invoices", + "My Account": "/me" + }).get(success_url, "/me") else: redirect_to = get_url("/orders/{0}".format(self.reference_name)) diff --git a/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.py b/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.py index af15cf58d09..c65e3cefeeb 100644 --- a/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.py +++ b/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.py @@ -145,11 +145,11 @@ class GoCardlessSettings(Document): if self.flags.status_changed_to == "Completed": status = 'Completed' - if self.data.reference_doctype and self.data.reference_docname: + if 'reference_doctype' in self.data and 'reference_docname' in self.data: 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) + custom_redirect_to = frappe.get_doc(self.data.get('reference_doctype'), + self.data.get('reference_docname')).run_method("on_payment_authorized", self.flags.status_changed_to) except Exception: frappe.log_error(frappe.get_traceback()) diff --git a/erpnext/templates/pages/integrations/gocardless_checkout.html b/erpnext/templates/pages/integrations/gocardless_checkout.html index bbe5640d5e4..7193d755a1e 100644 --- a/erpnext/templates/pages/integrations/gocardless_checkout.html +++ b/erpnext/templates/pages/integrations/gocardless_checkout.html @@ -9,7 +9,7 @@ {% endblock %} {%- block page_content -%} -
+
{{ _("Loading Payment System") }}
diff --git a/erpnext/templates/pages/integrations/gocardless_confirmation.html b/erpnext/templates/pages/integrations/gocardless_confirmation.html index 15674876573..6ba154a06c7 100644 --- a/erpnext/templates/pages/integrations/gocardless_confirmation.html +++ b/erpnext/templates/pages/integrations/gocardless_confirmation.html @@ -9,7 +9,7 @@ {% endblock %} {%- block page_content -%} -+
{{ _("Payment Confirmation") }}
diff --git a/erpnext/templates/pages/integrations/gocardless_confirmation.py b/erpnext/templates/pages/integrations/gocardless_confirmation.py index 069d90050e2..697ed3c80fd 100644 --- a/erpnext/templates/pages/integrations/gocardless_confirmation.py +++ b/erpnext/templates/pages/integrations/gocardless_confirmation.py @@ -36,10 +36,15 @@ def confirm_payment(redirect_flow_id, reference_doctype, reference_docname): "session_token": frappe.session.user }) + confirmation_url = redirect_flow.confirmation_url + gocardless_success_page = frappe.get_hooks('gocardless_success_page') + if gocardless_success_page: + confirmation_url = frappe.get_attr(gocardless_success_page[-1])(reference_doctype, reference_docname) + data = { "mandate": redirect_flow.links.mandate, "customer": redirect_flow.links.customer, - "redirect_to": redirect_flow.confirmation_url, + "redirect_to": confirmation_url, "redirect_message": "Mandate successfully created", "reference_doctype": reference_doctype, "reference_docname": reference_docname @@ -53,7 +58,7 @@ def confirm_payment(redirect_flow_id, reference_doctype, reference_docname): gateway_controller = get_gateway_controller(reference_docname) frappe.get_doc("GoCardless Settings", gateway_controller).create_payment_request(data) - return {"redirect_to": redirect_flow.confirmation_url} + return {"redirect_to": confirmation_url} except Exception as e: frappe.log_error(e, "GoCardless Payment Error")