From a82733021f98d277f9eb9790e0bde296ffcfffdc Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Mon, 4 Nov 2024 17:58:43 +0530 Subject: [PATCH] refactor: throw for cancelled integration requests --- payments/templates/pages/paytm_checkout.py | 3 +++ payments/templates/pages/razorpay_checkout.py | 5 +++++ payments/utils/utils.py | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/payments/templates/pages/paytm_checkout.py b/payments/templates/pages/paytm_checkout.py index 216b0b22..f53648fc 100644 --- a/payments/templates/pages/paytm_checkout.py +++ b/payments/templates/pages/paytm_checkout.py @@ -9,6 +9,7 @@ get_paytm_config, get_paytm_params, ) +from payments.utils.utils import validate_integration_request def get_context(context): @@ -16,6 +17,8 @@ def get_context(context): paytm_config = get_paytm_config() try: + validate_integration_request(frappe.form_dict["order_id"]) + doc = frappe.get_doc("Integration Request", frappe.form_dict["order_id"]) context.payment_details = get_paytm_params(json.loads(doc.data), doc.name, paytm_config) diff --git a/payments/templates/pages/razorpay_checkout.py b/payments/templates/pages/razorpay_checkout.py index dab9a7ab..521a6d22 100644 --- a/payments/templates/pages/razorpay_checkout.py +++ b/payments/templates/pages/razorpay_checkout.py @@ -6,6 +6,8 @@ from frappe import _ from frappe.utils import cint, flt +from payments.utils.utils import validate_integration_request + no_cache = 1 expected_keys = ( @@ -26,7 +28,10 @@ def get_context(context): context.api_key = get_api_key() try: + validate_integration_request(frappe.form_dict["token"]) + doc = frappe.get_doc("Integration Request", frappe.form_dict["token"]) + payment_details = json.loads(doc.data) for key in expected_keys: diff --git a/payments/utils/utils.py b/payments/utils/utils.py index fed9ac04..5284b5e5 100644 --- a/payments/utils/utils.py +++ b/payments/utils/utils.py @@ -6,6 +6,11 @@ from frappe.custom.doctype.custom_field.custom_field import create_custom_fields +def validate_integration_request(docname: str | None): + if frappe.db.get_value("Integration Request", docname, "status") == "Cancelled": + frappe.throw(_("Expired Token")) + + def get_payment_gateway_controller(payment_gateway): """Return payment gateway controller""" gateway = frappe.get_doc("Payment Gateway", payment_gateway)