Browse Source

Merge branch 'hotfix'

pull/2/head
Saurabh 7 years ago
parent
commit
469ef7e03e
3 changed files with 22 additions and 12 deletions
  1. +4
    -2
      payments/payment_gateways/doctype/razorpay_settings/razorpay_settings.py
  2. +4
    -3
      payments/templates/includes/razorpay_checkout.js
  3. +14
    -7
      payments/templates/pages/razorpay_checkout.py

+ 4
- 2
payments/payment_gateways/doctype/razorpay_settings/razorpay_settings.py View File

@@ -83,13 +83,15 @@ class RazorpaySettings(Document):
frappe.throw(_("Please select another payment method. Razorpay does not support transactions in currency '{0}'").format(currency)) frappe.throw(_("Please select another payment method. Razorpay does not support transactions in currency '{0}'").format(currency))


def get_payment_url(self, **kwargs): def get_payment_url(self, **kwargs):
return get_url("./integrations/razorpay_checkout?{0}".format(urlencode(kwargs)))
integration_request = create_request_log(kwargs, "Host", "Razorpay")
return get_url("./integrations/razorpay_checkout?token={0}".format(integration_request.name))


def create_request(self, data): def create_request(self, data):
self.data = frappe._dict(data) self.data = frappe._dict(data)


try: try:
self.integration_request = create_request_log(self.data, "Host", "Razorpay")
self.integration_request = frappe.get_doc("Integration Request", self.data.token)
self.integration_request.update_status(self.data, 'Queued')
return self.authorize_payment() return self.authorize_payment()


except Exception: except Exception:


+ 4
- 3
payments/templates/includes/razorpay_checkout.js View File

@@ -6,7 +6,7 @@ $(document).ready(function(){
"name": "{{ title }}", "name": "{{ title }}",
"description": "{{ description }}", "description": "{{ description }}",
"handler": function (response){ "handler": function (response){
razorpay.make_payment_log(response, options, "{{ reference_doctype }}", "{{ reference_docname }}");
razorpay.make_payment_log(response, options, "{{ reference_doctype }}", "{{ reference_docname }}", "{{ token }}");
}, },
"prefill": { "prefill": {
"name": "{{ payer_name }}", "name": "{{ payer_name }}",
@@ -24,7 +24,7 @@ $(document).ready(function(){


frappe.provide('razorpay'); frappe.provide('razorpay');


razorpay.make_payment_log = function(response, options, doctype, docname){
razorpay.make_payment_log = function(response, options, doctype, docname, token){
$('.razorpay-loading').addClass('hidden'); $('.razorpay-loading').addClass('hidden');
$('.razorpay-confirming').removeClass('hidden'); $('.razorpay-confirming').removeClass('hidden');


@@ -36,7 +36,8 @@ razorpay.make_payment_log = function(response, options, doctype, docname){
"razorpay_payment_id": response.razorpay_payment_id, "razorpay_payment_id": response.razorpay_payment_id,
"options": options, "options": options,
"reference_doctype": doctype, "reference_doctype": doctype,
"reference_docname": docname
"reference_docname": docname,
"token": token
}, },
callback: function(r){ callback: function(r){
if (r.message && r.message.status == 200) { if (r.message && r.message.status == 200) {


+ 14
- 7
payments/templates/pages/razorpay_checkout.py View File

@@ -17,15 +17,21 @@ def get_context(context):
context.no_cache = 1 context.no_cache = 1
context.api_key = get_api_key() context.api_key = get_api_key()


# all these keys exist in form_dict
if not (set(expected_keys) - set(frappe.form_dict.keys())):
try:
doc = frappe.get_doc("Integration Request", frappe.form_dict['token'])
payment_details = json.loads(doc.data)

for key in expected_keys: for key in expected_keys:
context[key] = frappe.form_dict[key]
context[key] = payment_details[key]


context['token'] = frappe.form_dict['token']
context['amount'] = flt(context['amount']) context['amount'] = flt(context['amount'])


else:
frappe.redirect_to_message(_('Some information is missing'), _('Looks like someone sent you to an incomplete URL. Please ask them to look into it.'))
except Exception:
frappe.redirect_to_message(_('Invalid Token'),
_('Seems token you are using is invalid!'),
http_status_code=400, indicator_color='red')

frappe.local.flags.redirect_location = frappe.local.response.location frappe.local.flags.redirect_location = frappe.local.response.location
raise frappe.Redirect raise frappe.Redirect


@@ -37,7 +43,7 @@ def get_api_key():
return api_key return api_key


@frappe.whitelist(allow_guest=True) @frappe.whitelist(allow_guest=True)
def make_payment(razorpay_payment_id, options, reference_doctype, reference_docname):
def make_payment(razorpay_payment_id, options, reference_doctype, reference_docname, token):
data = {} data = {}


if isinstance(options, string_types): if isinstance(options, string_types):
@@ -46,7 +52,8 @@ def make_payment(razorpay_payment_id, options, reference_doctype, reference_docn
data.update({ data.update({
"razorpay_payment_id": razorpay_payment_id, "razorpay_payment_id": razorpay_payment_id,
"reference_docname": reference_docname, "reference_docname": reference_docname,
"reference_doctype": reference_doctype
"reference_doctype": reference_doctype,
"token": token
}) })


data = frappe.get_doc("Razorpay Settings").create_request(data) data = frappe.get_doc("Razorpay Settings").create_request(data)


Loading…
Cancel
Save