Przeglądaj źródła

Merge branch 'hotfix'

pull/2/head
Saurabh 7 lat temu
rodzic
commit
469ef7e03e
3 zmienionych plików z 22 dodań i 12 usunięć
  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 Wyświetl plik

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

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):
self.data = frappe._dict(data)

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()

except Exception:


+ 4
- 3
payments/templates/includes/razorpay_checkout.js Wyświetl plik

@@ -6,7 +6,7 @@ $(document).ready(function(){
"name": "{{ title }}",
"description": "{{ description }}",
"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": {
"name": "{{ payer_name }}",
@@ -24,7 +24,7 @@ $(document).ready(function(){

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-confirming').removeClass('hidden');

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


+ 14
- 7
payments/templates/pages/razorpay_checkout.py Wyświetl plik

@@ -17,15 +17,21 @@ def get_context(context):
context.no_cache = 1
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:
context[key] = frappe.form_dict[key]
context[key] = payment_details[key]

context['token'] = frappe.form_dict['token']
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
raise frappe.Redirect

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

@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 = {}

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

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


Ładowanie…
Anuluj
Zapisz