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