@@ -14,7 +14,7 @@ import os, sys, importlib, inspect, json | |||||
from .exceptions import * | from .exceptions import * | ||||
from .utils.jinja import get_jenv, get_template, render_template, get_email_from_template | from .utils.jinja import get_jenv, get_template, render_template, get_email_from_template | ||||
__version__ = '9.1.1' | |||||
__version__ = '9.1.2' | |||||
__title__ = "Frappe Framework" | __title__ = "Frappe Framework" | ||||
local = Local() | local = Local() | ||||
@@ -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: | ||||
@@ -329,7 +329,8 @@ frappe.ui.form.Timeline = Class.extend({ | |||||
if(c.subject && c.communication_type==="Communication") { | if(c.subject && c.communication_type==="Communication") { | ||||
if(this.frm.doc.subject && !this.frm.doc.subject.includes(c.subject)) { | if(this.frm.doc.subject && !this.frm.doc.subject.includes(c.subject)) { | ||||
c.show_subject = true; | c.show_subject = true; | ||||
} else if(this.frm.meta.title_field && !!this.frm.doc[this.frm.meta.title_field].includes(c.subject)) { | |||||
} else if(this.frm.meta.title_field && this.frm.doc[this.frm.meta.title_field] | |||||
&& !!this.frm.doc[this.frm.meta.title_field].includes(c.subject)) { | |||||
c.show_subject = true; | c.show_subject = true; | ||||
} else if(!this.frm.doc.name.includes(c.subject)) { | } else if(!this.frm.doc.name.includes(c.subject)) { | ||||
c.show_subject = true; | c.show_subject = true; | ||||
@@ -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) { | ||||
@@ -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) | ||||
@@ -19,18 +19,16 @@ | |||||
"bold": 0, | "bold": 0, | ||||
"collapsible": 0, | "collapsible": 0, | ||||
"columns": 0, | "columns": 0, | ||||
"depends_on": "eval:!doc.__islocal", | |||||
"description": "Note: For best results, images must be of the same size and width must be greater than height.", | |||||
"fieldname": "sb0", | |||||
"fieldtype": "Section Break", | |||||
"fieldname": "slideshow_name", | |||||
"fieldtype": "Data", | |||||
"hidden": 0, | "hidden": 0, | ||||
"ignore_user_permissions": 0, | "ignore_user_permissions": 0, | ||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_global_search": 0, | "in_global_search": 0, | ||||
"in_list_view": 0, | |||||
"in_list_view": 1, | |||||
"in_standard_filter": 0, | "in_standard_filter": 0, | ||||
"label": "", | |||||
"label": "Slideshow Name", | |||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
"permlevel": 0, | "permlevel": 0, | ||||
@@ -39,7 +37,7 @@ | |||||
"read_only": 0, | "read_only": 0, | ||||
"remember_last_selected_value": 0, | "remember_last_selected_value": 0, | ||||
"report_hide": 0, | "report_hide": 0, | ||||
"reqd": 0, | |||||
"reqd": 1, | |||||
"search_index": 0, | "search_index": 0, | ||||
"set_only_once": 0, | "set_only_once": 0, | ||||
"unique": 0 | "unique": 0 | ||||
@@ -50,16 +48,18 @@ | |||||
"bold": 0, | "bold": 0, | ||||
"collapsible": 0, | "collapsible": 0, | ||||
"columns": 0, | "columns": 0, | ||||
"fieldname": "slideshow_name", | |||||
"fieldtype": "Data", | |||||
"depends_on": "eval:!doc.__islocal", | |||||
"description": "Note: For best results, images must be of the same size and width must be greater than height.", | |||||
"fieldname": "sb0", | |||||
"fieldtype": "Section Break", | |||||
"hidden": 0, | "hidden": 0, | ||||
"ignore_user_permissions": 0, | "ignore_user_permissions": 0, | ||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_global_search": 0, | "in_global_search": 0, | ||||
"in_list_view": 1, | |||||
"in_list_view": 0, | |||||
"in_standard_filter": 0, | "in_standard_filter": 0, | ||||
"label": "Slideshow Name", | |||||
"label": "", | |||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
"permlevel": 0, | "permlevel": 0, | ||||
@@ -68,7 +68,7 @@ | |||||
"read_only": 0, | "read_only": 0, | ||||
"remember_last_selected_value": 0, | "remember_last_selected_value": 0, | ||||
"report_hide": 0, | "report_hide": 0, | ||||
"reqd": 1, | |||||
"reqd": 0, | |||||
"search_index": 0, | "search_index": 0, | ||||
"set_only_once": 0, | "set_only_once": 0, | ||||
"unique": 0 | "unique": 0 | ||||
@@ -147,7 +147,7 @@ | |||||
"issingle": 0, | "issingle": 0, | ||||
"istable": 0, | "istable": 0, | ||||
"max_attachments": 10, | "max_attachments": 10, | ||||
"modified": "2017-09-18 11:19:31.627585", | |||||
"modified": "2017-10-05 18:56:20.094625", | |||||
"modified_by": "Administrator", | "modified_by": "Administrator", | ||||
"module": "Website", | "module": "Website", | ||||
"name": "Website Slideshow", | "name": "Website Slideshow", | ||||