Merge pull request #3171 from expsa/ENS-3085
[IMP][ADD] apple_pay_fast_checkout
This commit is contained in:
commit
8046a2b1b7
|
|
@ -0,0 +1 @@
|
|||
from . import controllers
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
'name': 'HyperPay ApplePay CopyAndPay Fast-Checkout',
|
||||
'version': '14.0.1.0',
|
||||
'description': 'Technical module to add apple pay in any place in the document',
|
||||
'summary': 'Technical module to add apple pay in any place in the document',
|
||||
'author': 'Expert Co. Ltd.',
|
||||
'website': 'https://www.exp-sa.com',
|
||||
'license': 'LGPL-3',
|
||||
'category': 'Payment',
|
||||
'depends': [
|
||||
'payment_applepay'
|
||||
],
|
||||
'data': [
|
||||
'views/applepay_iframe.xml',
|
||||
'views/templates.xml'
|
||||
],
|
||||
'auto_install': True,
|
||||
'application': False,
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
from . import main
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
import json
|
||||
|
||||
from odoo.http import route, request, Controller
|
||||
|
||||
|
||||
class ApplePayFastCheckout(Controller):
|
||||
|
||||
@route('/applepay', type='http', auth='public', website=True, csrf=False)
|
||||
def apple_pay_iframe(self, **kwargs):
|
||||
acquirer_id = request.env['payment.acquirer'].sudo().search([('provider', '=', 'applepay')], limit=1)
|
||||
|
||||
if acquirer_id.state == 'test':
|
||||
url = "https://eu-test.oppwa.com/v1/paymentWidgets.js"
|
||||
else:
|
||||
url = "https://oppwa.com/v1/paymentWidgets.js"
|
||||
|
||||
response = request.render("applepay_fast_checkout.apple_pay_iframe", {'hyperpay_src': url})
|
||||
response.headers['Content-Security-Policy'] = "script-src blob: 'self' 'unsafe-inline' 'unsafe-eval' https://*; worker-src blob: 'self' 'unsafe-inline' 'unsafe-eval' https://*;connect-src 'self' https://* wss://*;frame-src 'self' blob: https://*;"
|
||||
|
||||
return response
|
||||
|
||||
@route('/applepay/checkout', type='json', auth='public', website=True)
|
||||
def apple_pay_create_checkout(self, **post):
|
||||
data = json.loads(request.httprequest.data.decode('utf-8'))
|
||||
processed_data = self._process_checkout_data(data)
|
||||
checkout_id = self._get_checkout_id(processed_data)
|
||||
return {'checkout_id': checkout_id}
|
||||
|
||||
def _process_checkout_data(self, data):
|
||||
return data
|
||||
|
||||
def _get_checkout_id(self, vals):
|
||||
return ''
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
var wpwlOptions = {
|
||||
applePay: {
|
||||
version: 3,
|
||||
displayName: "ENSAN",
|
||||
total: { label: "ENSAN", amount: "10" },
|
||||
checkAvailability: "applePayCapabilities",
|
||||
currencyCode: "SAR",
|
||||
supportedNetworks: ["mada", "masterCard", "visa"],
|
||||
merchantCapabilities: ["supports3DS", "supportsCredit", "supportsDebit"],
|
||||
merchantIdentifier: "8ac9a4ca811e7d6f018132e7a3654ddf",
|
||||
supportedCountries: ["SA"],
|
||||
buttonSource: "css",
|
||||
buttonStyle: "white",
|
||||
buttonType: "pay",
|
||||
countryCode: "SA",
|
||||
submitOnPaymentAuthorized: ["customer"],
|
||||
requiredShippingContactFields: ["phone"],
|
||||
onCancel: function () {
|
||||
if (window.wpwl && window.wpwl.checkout && window.wpwl.checkout.id) {
|
||||
window.wpwl.checkout.id = "";
|
||||
}
|
||||
},
|
||||
},
|
||||
locale: "ar-AB",
|
||||
onReady: function () {
|
||||
window.parent.document.addEventListener("applePayAmountUpdate", function (e) {
|
||||
try {
|
||||
window.wpwlOptions.applePay.total.amount = e.detail.amount;
|
||||
console.log("Apple Pay Amount updated to:", window.wpwlOptions.applePay.total.amount);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
|
||||
// let isCheckoutPage = $("#oe_structure_website_sale_payment_1", window.parent.document).length;
|
||||
// if (isCheckoutPage) {
|
||||
// let applepayButton = $("apple-pay-button");
|
||||
// let totalAmount = $("tr#order_total", window.parent.document).find("span.oe_currency_value").text().replaceAll(",", "");
|
||||
// window.wpwlOptions.applePay.total.amount = totalAmount;
|
||||
// console.log("Apple Pay Amount updated to:", window.wpwlOptions.applePay.total.amount);
|
||||
// applepayButton.css({
|
||||
// "--apple-pay-button-height": "60px",
|
||||
// "--apple-pay-button-border-radius": "4px",
|
||||
// "--apple-pay-button-padding": "15px 5px",
|
||||
// "--apple-pay-button-box-sizing": "border-box",
|
||||
// });
|
||||
// }
|
||||
},
|
||||
createCheckout: function () {
|
||||
const iframeElement = window.frameElement; // The <iframe> element in the parent
|
||||
const parentDiv = iframeElement?.parentNode;
|
||||
let requestDataJson = {};
|
||||
|
||||
if (parentDiv) {
|
||||
let requestData = $(parentDiv).find("input[name='applepay_checkout_details_json']").val() || "{}";
|
||||
requestDataJson = JSON.parse(requestData);
|
||||
}
|
||||
|
||||
console.log(requestDataJson);
|
||||
const rootUrl = `${window.location.protocol}//${window.location.host}/`;
|
||||
return $.ajax({
|
||||
url: `${rootUrl}applepay/checkout`,
|
||||
type: "POST",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(requestDataJson),
|
||||
dataType: "json",
|
||||
}).then(function (response) {
|
||||
console.log(response);
|
||||
return response.result.checkout_id;
|
||||
});
|
||||
},
|
||||
};
|
||||
|
|
@ -4,10 +4,10 @@
|
|||
<template id="apple_pay_iframe" name="Apple Pay Iframe">
|
||||
<html>
|
||||
<head>
|
||||
<script src="https://oppwa.com/v1/paymentWidgets.js" />
|
||||
<script t-att-src="hyperpay_src" />
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js" />
|
||||
<script src="/payment_applepay/static/src/js/applepay_iframe.js" />
|
||||
<link rel="stylesheet" href="/payment_applepay/static/src/scss/applepay_iframe_content.scss" />
|
||||
<script src="/applepay_fast_checkout/static/src/js/applepay_iframe.js" />
|
||||
<link rel="stylesheet" href="/applepay_fast_checkout/static/src/scss/applepay_iframe_content.scss" />
|
||||
</head>
|
||||
<body>
|
||||
<form t-attf-action="{{request.httprequest.url_root}}payment/applepay/return"
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<template id="applepay_btn" name="ApplePay Button">
|
||||
<t t-set="iframe_width" t-value="iframe_width or '100%'"/>
|
||||
<t t-set="iframe_height" t-value="iframe_height or '70px'"/>
|
||||
<div id="applepay_parent_root">
|
||||
<!-- JSON Object contains all the details of the current checkout and will be sent to the backend for processing before -->
|
||||
<!-- sending a checkout request to ApplePay, DEFAULTS TO THE CURRENT ORDER-->
|
||||
<input type="hidden" name="applepay_checkout_details_json" value="{}"/>
|
||||
|
||||
<iframe t-attf-style="width: {{iframe_width}}; height: {{iframe_height}}; border: none;"
|
||||
t-attf-src="{{request.httprequest.url_root}}applepay">
|
||||
</iframe>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -11,6 +11,7 @@
|
|||
'website_sale',
|
||||
'payment_hyperpay',
|
||||
'payment_applepay',
|
||||
'applepay_fast_checkout',
|
||||
'ensan_sale_management'
|
||||
],
|
||||
'data': ['views/templates.xml', 'views/assets.xml'],
|
||||
|
|
|
|||
|
|
@ -1 +1,2 @@
|
|||
from . import main
|
||||
from . import main
|
||||
from . import applepay_fast_checkout
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
import logging
|
||||
|
||||
from odoo.http import request
|
||||
|
||||
from odoo.addons.applepay_fast_checkout.controllers.main import ApplePayFastCheckout
|
||||
from odoo.addons.payment.controllers.portal import PaymentProcessing
|
||||
|
||||
class WebsiteSaleFastCheckout(ApplePayFastCheckout):
|
||||
def _process_checkout_data(self, data):
|
||||
product_ids = data.get('product_ids', [])
|
||||
gifts = data.get('gifts', [])
|
||||
use_current_order = data.get('use_current_order', False)
|
||||
current_order = request.website.sale_get_order(force_create=True)
|
||||
|
||||
if use_current_order:
|
||||
order = current_order
|
||||
else:
|
||||
order = current_order.copy()
|
||||
order_mobile_number = data.get('mobile', '')
|
||||
order_name = data.get('name', '')
|
||||
|
||||
extra_donators_ids = [(0, 0, {
|
||||
'sale_id': order.id,
|
||||
'product_id': gift.get('product_id'),
|
||||
'donated_amount': gift.get('amount'),
|
||||
'donator_name': gift.get('receiver_name'),
|
||||
'donator_mobile_number': gift.get('receiver_mobile')
|
||||
}) for gift in gifts if gift.get('product_id')]
|
||||
|
||||
order_line = [(0, 0, {
|
||||
'product_id': product.get('id'),
|
||||
'extra_donators_ids': extra_donators_ids,
|
||||
'product_uom_qty': product.get('quantity', 1),
|
||||
'price_unit': product.get('price_unit', 0) + sum(gift.get('amount', 0) for gift in gifts if gift.get('product_id') == product.get('id'))}) for product in product_ids if product.get('id')]
|
||||
|
||||
if order_line:
|
||||
order.order_line.sudo().unlink()
|
||||
order.write({
|
||||
'order_line': order_line,
|
||||
'order_mobile_number': order_mobile_number,
|
||||
'order_name': order_name
|
||||
})
|
||||
|
||||
payment_acquire_id = request.env['payment.acquirer'].sudo().search([('provider', '=', 'applepay'),
|
||||
('company_id', 'in', (False, order.company_id.id))],
|
||||
limit=1)
|
||||
|
||||
# Create transaction
|
||||
vals = {'acquirer_id': payment_acquire_id.id,
|
||||
'return_url': '/payment/applepay/return'}
|
||||
|
||||
tx = order._create_payment_transaction(vals)
|
||||
|
||||
# store the new transaction into the transaction list and if there's an old one, we remove it
|
||||
# until the day the ecommerce supports multiple orders at the same time
|
||||
last_tx_id = request.session.get('__website_sale_last_tx_id')
|
||||
last_tx = request.env['payment.transaction'].browse(last_tx_id).sudo().exists()
|
||||
if last_tx:
|
||||
PaymentProcessing.remove_payment_transaction(last_tx)
|
||||
PaymentProcessing.add_payment_transaction(tx)
|
||||
request.session['__website_sale_last_tx_id'] = tx.id
|
||||
|
||||
tx.sale_order_ids.sudo().write({'done_with_quick_donation': data.get('done_with_quick_donation', False)})
|
||||
|
||||
return {'partner_id': tx.partner_id.id,
|
||||
'reference': tx.reference,
|
||||
'payment_acquire_id': payment_acquire_id,
|
||||
'order_id': order,
|
||||
'amount': tx.amount}
|
||||
|
||||
def _get_checkout_id(self, vals):
|
||||
payment_acquire_id = vals.get('payment_acquire_id')
|
||||
checkout_id = payment_acquire_id._get_authenticate_apple_pay(vals)
|
||||
return checkout_id
|
||||
|
|
@ -202,10 +202,10 @@
|
|||
<div id="donate_error_msg"
|
||||
class="o_hidden alert alert-danger text-center" />
|
||||
<div class="apple-pay-button-container">
|
||||
<iframe t-if="not hide_quick_donation"
|
||||
style="width: 100%; height: 40px; border: none;"
|
||||
t-attf-src="{{request.httprequest.url_root}}applepay">
|
||||
</iframe>
|
||||
<t t-call="applepay_fast_checkout.applepay_btn">
|
||||
<t t-set="iframe_width" t-value="'100%'"/>
|
||||
<t t-set="iframe_height" t-value="'40px'"/>
|
||||
</t>
|
||||
</div>
|
||||
<button
|
||||
if="quick_donation_payment_acquire_ids and quick_donation_products"
|
||||
|
|
@ -266,15 +266,13 @@
|
|||
</xpath>
|
||||
</template>
|
||||
|
||||
<template id="website_sale_payment_add_applepay" inherit_id="website_sale.payment">
|
||||
<!-- <template id="website_sale_payment_add_applepay" inherit_id="website_sale.payment">
|
||||
<xpath expr="//div[@id='payment_method']" position="inside">
|
||||
<div class="apple-pay-button-container">
|
||||
<iframe style="width: 100%; height: 70px; border: none;"
|
||||
t-attf-src="{{request.httprequest.url_root}}applepay">
|
||||
</iframe>
|
||||
|
||||
</div>
|
||||
</xpath>
|
||||
</template>
|
||||
</template> -->
|
||||
|
||||
<template id="cart_summary_inherit" inherit_id="website_sale.cart_summary">
|
||||
<xpath expr="//tr[@t-foreach='website_sale_order.website_order_line']" position="attributes">
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@
|
|||
'views/payment_popup_template.xml',
|
||||
'views/payment_applepay_templates.xml',
|
||||
'data/payment_acquirer_data.xml',
|
||||
'views/applepay_iframe.xml',
|
||||
],
|
||||
'images': ['images/main_screenshot.gif'],
|
||||
'installable': True,
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import io
|
|||
import base64
|
||||
|
||||
from odoo import http, _
|
||||
from odoo.addons.payment.controllers.portal import PaymentProcessing
|
||||
from odoo.http import request, send_file
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
|
@ -108,83 +107,4 @@ class ApplepayController(http.Controller):
|
|||
else:
|
||||
return request.render("payment_applepay.payment_applepay_card_live",
|
||||
{'check_out_id': kw.get('check_out_id'), 'return_url': kw.get('applepay_return')})
|
||||
|
||||
|
||||
@http.route('/applepay', type='http', auth='public', website=True, csrf=False)
|
||||
def apple_pay_iframe(self, **kwargs):
|
||||
response = request.render("payment_applepay.apple_pay_iframe")
|
||||
response.headers['Content-Security-Policy'] = "script-src blob: 'self' 'unsafe-inline' 'unsafe-eval' https://*; worker-src blob: 'self' 'unsafe-inline' 'unsafe-eval' https://*;connect-src 'self' https://* wss://*;frame-src 'self' blob: https://*;"
|
||||
return response
|
||||
|
||||
@http.route('/applepay/checkout', type='json', auth='public', website=True)
|
||||
def apple_pay_create_checkout(self, **post):
|
||||
data = json.loads(request.httprequest.data.decode('utf-8'))
|
||||
checkout_id = self._apple_pay_create_checkout(data)
|
||||
return {'checkout_id': checkout_id}
|
||||
|
||||
def _apple_pay_create_checkout(self, data):
|
||||
try:
|
||||
order = request.website.sale_get_order(force_create=True)
|
||||
product_ids = data.get('product_ids', [])
|
||||
gifts = data.get('gifts', [])
|
||||
use_current_order = data.get('use_current_order', False)
|
||||
|
||||
if not order:
|
||||
return ''
|
||||
|
||||
if not use_current_order:
|
||||
|
||||
order_mobile_number = data.get('mobile', '')
|
||||
order_name = data.get('name', '')
|
||||
|
||||
extra_donators_ids = [(0, 0, {
|
||||
'sale_id': order.id,
|
||||
'product_id': gift.get('product_id'),
|
||||
'donated_amount': gift.get('amount'),
|
||||
'donator_name': gift.get('receiver_name'),
|
||||
'donator_mobile_number': gift.get('receiver_mobile')
|
||||
}) for gift in gifts if gift.get('product_id')]
|
||||
|
||||
order_line = [(0, 0, {
|
||||
'product_id': product.get('id'),
|
||||
'extra_donators_ids': extra_donators_ids,
|
||||
'product_uom_qty': product.get('quantity', 1),
|
||||
'price_unit': product.get('price_unit', 0) + sum(gift.get('amount', 0) for gift in gifts if gift.get('product_id') == product.get('id'))}) for product in product_ids if product.get('id')]
|
||||
|
||||
if order_line:
|
||||
order.order_line.sudo().unlink()
|
||||
order.write({
|
||||
'order_line': order_line,
|
||||
'order_mobile_number': order_mobile_number,
|
||||
'order_name': order_name
|
||||
})
|
||||
|
||||
payment_acquire_id = request.env['payment.acquirer'].sudo().search([('provider', '=', 'applepay'),
|
||||
('company_id', 'in', (False, order.company_id.id))], limit=1)
|
||||
|
||||
# Create transaction
|
||||
vals = {'acquirer_id': payment_acquire_id.id,
|
||||
'return_url': '/payment/applepay/return'}
|
||||
|
||||
tx = order._create_payment_transaction(vals)
|
||||
|
||||
# store the new transaction into the transaction list and if there's an old one, we remove it
|
||||
# until the day the ecommerce supports multiple orders at the same time
|
||||
last_tx_id = request.session.get('__website_sale_last_tx_id')
|
||||
last_tx = request.env['payment.transaction'].browse(last_tx_id).sudo().exists()
|
||||
if last_tx:
|
||||
PaymentProcessing.remove_payment_transaction(last_tx)
|
||||
PaymentProcessing.add_payment_transaction(tx)
|
||||
request.session['__website_sale_last_tx_id'] = tx.id
|
||||
|
||||
vals = {'partner_id': tx.partner_id.id,
|
||||
'reference': tx.reference,
|
||||
'amount': tx.amount}
|
||||
|
||||
checkout_id = payment_acquire_id._get_authenticate_apple_pay(vals)
|
||||
tx.sale_order_ids.sudo().write({'done_with_quick_donation': data.get('done_with_quick_donation', False)})
|
||||
|
||||
return checkout_id
|
||||
except Exception as e:
|
||||
_logger.error("Error in Apple pay Payment: %s" % (e))
|
||||
return ''
|
||||
|
||||
|
|
@ -1,131 +0,0 @@
|
|||
var wpwlOptions = {
|
||||
applePay: {
|
||||
version: 3,
|
||||
displayName: "ENSAN",
|
||||
total: { label: "ENSAN", amount: "10" },
|
||||
checkAvailability: "applePayCapabilities",
|
||||
currencyCode: "SAR",
|
||||
supportedNetworks: ["mada","masterCard", "visa"],
|
||||
merchantCapabilities: ["supports3DS", "supportsCredit", "supportsDebit"],
|
||||
merchantIdentifier: "8ac9a4ca811e7d6f018132e7a3654ddf",
|
||||
supportedCountries: ["SA"],
|
||||
buttonSource: "css",
|
||||
buttonStyle: "black",
|
||||
buttonType: "pay",
|
||||
countryCode: "SA",
|
||||
submitOnPaymentAuthorized: ["customer"],
|
||||
requiredShippingContactFields: ["phone"],
|
||||
onCancel: function() {
|
||||
if (window.wpwl && window.wpwl.checkout && window.wpwl.checkout.id) {
|
||||
window.wpwl.checkout.id = "";
|
||||
}
|
||||
},
|
||||
|
||||
},
|
||||
locale: "ar-AB",
|
||||
onReady: function(){
|
||||
const amounts = $('.donation-product-detail-layout .single-amount', window.parent.document);
|
||||
const fixedQty = $('#fixedqtyinput-1', window.parent.document);
|
||||
if (amounts.length > 0) {
|
||||
window.wpwlOptions.applePay.total.amount = amounts.get(0).dataset.amount;
|
||||
console.log("Apple Pay Amount updated to:", window.wpwlOptions.applePay.total.amount);
|
||||
} else if(fixedQty.length > 0){
|
||||
window.wpwlOptions.applePay.total.amount = fixedQty.data('price');
|
||||
console.log("Apple Pay Amount updated to:", window.wpwlOptions.applePay.total.amount);
|
||||
}
|
||||
window.parent.document.addEventListener('applePayAmountUpdate', function(e) {
|
||||
window.wpwlOptions.applePay.total.amount = e.detail.amount;
|
||||
console.log("Apple Pay Amount updated to:", window.wpwlOptions.applePay.total.amount);
|
||||
});
|
||||
let isCheckoutPage = $("#oe_structure_website_sale_payment_1", window.parent.document).length;
|
||||
if (isCheckoutPage) {
|
||||
let applepayButton = $('apple-pay-button');
|
||||
let totalAmount = $("tr#order_total", window.parent.document).find("span.oe_currency_value").text().replaceAll(",", "");
|
||||
window.wpwlOptions.applePay.total.amount = totalAmount;
|
||||
console.log("Apple Pay Amount updated to:", window.wpwlOptions.applePay.total.amount);
|
||||
applepayButton.css({
|
||||
'--apple-pay-button-height': '60px',
|
||||
'--apple-pay-button-border-radius': '4px',
|
||||
'--apple-pay-button-padding': '15px 5px',
|
||||
'--apple-pay-button-box-sizing': 'border-box'
|
||||
});
|
||||
}
|
||||
},
|
||||
createCheckout: function() {
|
||||
let name = "";
|
||||
let product_ids = gifts = [];
|
||||
let done_with_quick_donation = false;
|
||||
let use_current_order = false;
|
||||
|
||||
// product details screen
|
||||
if ($(".js_product", window.parent.document).length) {
|
||||
let hasGifts = $("#sendAsGiftCheckbox", window.parent.document).is(":checked");
|
||||
let product_id = parseInt($('.js_product', window.parent.document).find('.product_id').val());
|
||||
let amount = parseFloat($("input.personal-donation-amount", window.parent.document).val()) || 0;
|
||||
let quantity = parseInt($($('#fixedqtyinput-1', window.parent.document).get(0)).val()) || 1;
|
||||
|
||||
product_ids = [{
|
||||
id: product_id,
|
||||
quantity: hasGifts ? 1 : quantity,
|
||||
price_unit: hasGifts ? 0 : amount
|
||||
}];
|
||||
|
||||
if (hasGifts) {
|
||||
let $giftBoxElements = $(".gifteeBoxDetails", window.parent.document);
|
||||
gifts = $giftBoxElements.map(function() {
|
||||
let result = {};
|
||||
result.product_id = product_id;
|
||||
result.amount = parseFloat($(this).find('input.gift-donation-amount').val(), 10) || 0;
|
||||
result.receiver_name = $(this).find('.input-gifteeName').val();
|
||||
result.receiver_mobile = $(this).find('.input-gifteeNumber').val();
|
||||
return result;
|
||||
}).get();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
// checkout page
|
||||
else if ($("#oe_structure_website_sale_payment_1", window.parent.document).length) {
|
||||
name = $("#order_name", window.parent.document).val();
|
||||
let $productRows = $("table#cart_products tbody tr", window.parent.document);
|
||||
product_ids = $productRows.map(function() {
|
||||
let result = {};
|
||||
result.id = parseInt($(this).data('product-id'));
|
||||
result.quantity = parseInt($(this).find('td.td-qty').text().replaceAll(",", ""));
|
||||
result.price_unit = parseFloat($(this).find('td.td-price span.oe_currency_value').text().replaceAll(",", ""));
|
||||
return result;
|
||||
}).get();
|
||||
use_current_order = true;
|
||||
}
|
||||
// quick donation page
|
||||
else {
|
||||
done_with_quick_donation = true;
|
||||
let amount = parseFloat($("#qd_amount", window.parent.document).val());
|
||||
product_ids = [{
|
||||
id: parseInt($("#qd-options li.active", window.parent.document).data('product_id')),
|
||||
quantity: 1,
|
||||
price_unit: amount
|
||||
}];
|
||||
}
|
||||
|
||||
let requestData = { product_ids: product_ids,
|
||||
gifts: gifts,
|
||||
name: name,
|
||||
done_with_quick_donation: done_with_quick_donation,
|
||||
use_current_order: use_current_order};
|
||||
|
||||
console.log(requestData);
|
||||
const rootUrl = `${window.location.protocol}//${window.location.host}/`;
|
||||
return $.ajax({
|
||||
url: `${rootUrl}applepay/checkout`,
|
||||
type: "POST",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(requestData),
|
||||
dataType: "json",
|
||||
})
|
||||
.then(function(response) {
|
||||
console.log(response);
|
||||
return response.result.checkout_id;
|
||||
});
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue