refactor!: remove GoCardless Templates
This commit is contained in:
parent
543a76863f
commit
9554f6ea3c
@ -1,24 +0,0 @@
|
|||||||
$(document).ready(function() {
|
|
||||||
var data = {{ frappe.form_dict | json }};
|
|
||||||
var doctype = "{{ reference_doctype }}"
|
|
||||||
var docname = "{{ reference_docname }}"
|
|
||||||
|
|
||||||
frappe.call({
|
|
||||||
method: "erpnext.templates.pages.integrations.gocardless_checkout.check_mandate",
|
|
||||||
freeze: true,
|
|
||||||
headers: {
|
|
||||||
"X-Requested-With": "XMLHttpRequest"
|
|
||||||
},
|
|
||||||
args: {
|
|
||||||
"data": JSON.stringify(data),
|
|
||||||
"reference_doctype": doctype,
|
|
||||||
"reference_docname": docname
|
|
||||||
},
|
|
||||||
callback: function(r) {
|
|
||||||
if (r.message) {
|
|
||||||
window.location.href = r.message.redirect_to
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
})
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
$(document).ready(function() {
|
|
||||||
var redirect_flow_id = "{{ redirect_flow_id }}";
|
|
||||||
var doctype = "{{ reference_doctype }}";
|
|
||||||
var docname = "{{ reference_docname }}";
|
|
||||||
|
|
||||||
frappe.call({
|
|
||||||
method: "erpnext.templates.pages.integrations.gocardless_confirmation.confirm_payment",
|
|
||||||
freeze: true,
|
|
||||||
headers: {
|
|
||||||
"X-Requested-With": "XMLHttpRequest"
|
|
||||||
},
|
|
||||||
args: {
|
|
||||||
"redirect_flow_id": redirect_flow_id,
|
|
||||||
"reference_doctype": doctype,
|
|
||||||
"reference_docname": docname
|
|
||||||
},
|
|
||||||
callback: function(r) {
|
|
||||||
if (r.message) {
|
|
||||||
window.location.href = r.message.redirect_to;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
{% extends "templates/web.html" %}
|
|
||||||
|
|
||||||
{% block title %} Payment {% endblock %}
|
|
||||||
|
|
||||||
{%- block header -%}{% endblock %}
|
|
||||||
|
|
||||||
{% block script %}
|
|
||||||
<script>{% include "templates/includes/integrations/gocardless_checkout.js" %}</script>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{%- block page_content -%}
|
|
||||||
<p class='lead text-center'>
|
|
||||||
<span class='gocardless-loading'>{{ _("Loading Payment System") }}</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
{% endblock %}
|
|
||||||
@ -1,100 +0,0 @@
|
|||||||
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
|
|
||||||
# License: GNU General Public License v3. See license.txt
|
|
||||||
|
|
||||||
import json
|
|
||||||
|
|
||||||
import frappe
|
|
||||||
from frappe import _
|
|
||||||
from frappe.utils import flt, get_url
|
|
||||||
|
|
||||||
from erpnext.erpnext_integrations.doctype.gocardless_settings.gocardless_settings import (
|
|
||||||
get_gateway_controller,
|
|
||||||
gocardless_initialization,
|
|
||||||
)
|
|
||||||
|
|
||||||
no_cache = 1
|
|
||||||
|
|
||||||
expected_keys = (
|
|
||||||
"amount",
|
|
||||||
"title",
|
|
||||||
"description",
|
|
||||||
"reference_doctype",
|
|
||||||
"reference_docname",
|
|
||||||
"payer_name",
|
|
||||||
"payer_email",
|
|
||||||
"order_id",
|
|
||||||
"currency",
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def get_context(context):
|
|
||||||
context.no_cache = 1
|
|
||||||
|
|
||||||
# all these keys exist in form_dict
|
|
||||||
if not (set(expected_keys) - set(frappe.form_dict.keys())):
|
|
||||||
for key in expected_keys:
|
|
||||||
context[key] = frappe.form_dict[key]
|
|
||||||
|
|
||||||
context["amount"] = flt(context["amount"])
|
|
||||||
|
|
||||||
gateway_controller = get_gateway_controller(context.reference_docname)
|
|
||||||
context["header_img"] = frappe.db.get_value(
|
|
||||||
"GoCardless Settings", gateway_controller, "header_img"
|
|
||||||
)
|
|
||||||
|
|
||||||
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."),
|
|
||||||
)
|
|
||||||
frappe.local.flags.redirect_location = frappe.local.response.location
|
|
||||||
raise frappe.Redirect
|
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist(allow_guest=True)
|
|
||||||
def check_mandate(data, reference_doctype, reference_docname):
|
|
||||||
data = json.loads(data)
|
|
||||||
|
|
||||||
client = gocardless_initialization(reference_docname)
|
|
||||||
|
|
||||||
payer = frappe.get_doc("Customer", data["payer_name"])
|
|
||||||
|
|
||||||
if payer.customer_type == "Individual" and payer.customer_primary_contact is not None:
|
|
||||||
primary_contact = frappe.get_doc("Contact", payer.customer_primary_contact)
|
|
||||||
prefilled_customer = {
|
|
||||||
"company_name": payer.name,
|
|
||||||
"given_name": primary_contact.first_name,
|
|
||||||
}
|
|
||||||
if primary_contact.last_name is not None:
|
|
||||||
prefilled_customer.update({"family_name": primary_contact.last_name})
|
|
||||||
|
|
||||||
if primary_contact.email_id is not None:
|
|
||||||
prefilled_customer.update({"email": primary_contact.email_id})
|
|
||||||
else:
|
|
||||||
prefilled_customer.update({"email": frappe.session.user})
|
|
||||||
|
|
||||||
else:
|
|
||||||
prefilled_customer = {"company_name": payer.name, "email": frappe.session.user}
|
|
||||||
|
|
||||||
success_url = get_url(
|
|
||||||
"./integrations/gocardless_confirmation?reference_doctype="
|
|
||||||
+ reference_doctype
|
|
||||||
+ "&reference_docname="
|
|
||||||
+ reference_docname
|
|
||||||
)
|
|
||||||
|
|
||||||
try:
|
|
||||||
redirect_flow = client.redirect_flows.create(
|
|
||||||
params={
|
|
||||||
"description": _("Pay {0} {1}").format(data["amount"], data["currency"]),
|
|
||||||
"session_token": frappe.session.user,
|
|
||||||
"success_redirect_url": success_url,
|
|
||||||
"prefilled_customer": prefilled_customer,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
return {"redirect_to": redirect_flow.redirect_url}
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
frappe.log_error("GoCardless Payment Error")
|
|
||||||
return {"redirect_to": "/integrations/payment-failed"}
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
{% extends "templates/web.html" %}
|
|
||||||
|
|
||||||
{% block title %} Payment {% endblock %}
|
|
||||||
|
|
||||||
{%- block header -%}{% endblock %}
|
|
||||||
|
|
||||||
{% block script %}
|
|
||||||
<script>{% include "templates/includes/integrations/gocardless_confirmation.js" %}</script>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{%- block page_content -%}
|
|
||||||
<p class='lead text-center'>
|
|
||||||
<span class='gocardless-loading'>{{ _("Payment Confirmation") }}</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
{% endblock %}
|
|
||||||
@ -1,106 +0,0 @@
|
|||||||
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
|
|
||||||
# License: GNU General Public License v3. See license.txt
|
|
||||||
|
|
||||||
import frappe
|
|
||||||
from frappe import _
|
|
||||||
|
|
||||||
from erpnext.erpnext_integrations.doctype.gocardless_settings.gocardless_settings import (
|
|
||||||
get_gateway_controller,
|
|
||||||
gocardless_initialization,
|
|
||||||
)
|
|
||||||
|
|
||||||
no_cache = 1
|
|
||||||
|
|
||||||
expected_keys = ("redirect_flow_id", "reference_doctype", "reference_docname")
|
|
||||||
|
|
||||||
|
|
||||||
def get_context(context):
|
|
||||||
context.no_cache = 1
|
|
||||||
|
|
||||||
# all these keys exist in form_dict
|
|
||||||
if not (set(expected_keys) - set(frappe.form_dict.keys())):
|
|
||||||
for key in expected_keys:
|
|
||||||
context[key] = frappe.form_dict[key]
|
|
||||||
|
|
||||||
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."),
|
|
||||||
)
|
|
||||||
frappe.local.flags.redirect_location = frappe.local.response.location
|
|
||||||
raise frappe.Redirect
|
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist(allow_guest=True)
|
|
||||||
def confirm_payment(redirect_flow_id, reference_doctype, reference_docname):
|
|
||||||
|
|
||||||
client = gocardless_initialization(reference_docname)
|
|
||||||
|
|
||||||
try:
|
|
||||||
redirect_flow = client.redirect_flows.complete(
|
|
||||||
redirect_flow_id, params={"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": confirmation_url,
|
|
||||||
"redirect_message": "Mandate successfully created",
|
|
||||||
"reference_doctype": reference_doctype,
|
|
||||||
"reference_docname": reference_docname,
|
|
||||||
}
|
|
||||||
|
|
||||||
try:
|
|
||||||
create_mandate(data)
|
|
||||||
except Exception as e:
|
|
||||||
frappe.log_error("GoCardless Mandate Registration Error")
|
|
||||||
|
|
||||||
gateway_controller = get_gateway_controller(reference_docname)
|
|
||||||
frappe.get_doc("GoCardless Settings", gateway_controller).create_payment_request(data)
|
|
||||||
|
|
||||||
return {"redirect_to": confirmation_url}
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
frappe.log_error("GoCardless Payment Error")
|
|
||||||
return {"redirect_to": "/integrations/payment-failed"}
|
|
||||||
|
|
||||||
|
|
||||||
def create_mandate(data):
|
|
||||||
data = frappe._dict(data)
|
|
||||||
frappe.logger().debug(data)
|
|
||||||
|
|
||||||
mandate = data.get("mandate")
|
|
||||||
|
|
||||||
if frappe.db.exists("GoCardless Mandate", mandate):
|
|
||||||
return
|
|
||||||
|
|
||||||
else:
|
|
||||||
reference_doc = frappe.db.get_value(
|
|
||||||
data.get("reference_doctype"),
|
|
||||||
data.get("reference_docname"),
|
|
||||||
["reference_doctype", "reference_name"],
|
|
||||||
as_dict=1,
|
|
||||||
)
|
|
||||||
erpnext_customer = frappe.db.get_value(
|
|
||||||
reference_doc.reference_doctype, reference_doc.reference_name, ["customer_name"], as_dict=1
|
|
||||||
)
|
|
||||||
|
|
||||||
try:
|
|
||||||
frappe.get_doc(
|
|
||||||
{
|
|
||||||
"doctype": "GoCardless Mandate",
|
|
||||||
"mandate": mandate,
|
|
||||||
"customer": erpnext_customer.customer_name,
|
|
||||||
"gocardless_customer": data.get("customer"),
|
|
||||||
}
|
|
||||||
).insert(ignore_permissions=True)
|
|
||||||
|
|
||||||
except Exception:
|
|
||||||
frappe.log_error("Gocardless: Unable to create mandate")
|
|
||||||
Loading…
x
Reference in New Issue
Block a user