javascript - 如何向用户和商家发送明细的 PayPal 发票?
问题描述
我正在开发一个包含商店的网站。用户可以在这家商店使用 PayPal 付款,而且效果很好!购物车是使用 JavaScript 编写的,这导致了一些问题。
我最初想要一个 JS 函数,它可以通过他们的购物车向用户发送电子邮件,但我可以找到任何代码。我知道您可以使用 PayPal 获得明细收据,但我的系统不会提供这些详细信息。我已经阅读了 PayPal 网站的开发人员部分,但我似乎无法弄清楚!
我的 PayPal 脚本如下:
<script>
paypal.Buttons({
createOrder: function(data, actions) {
// This function sets up the details of the transaction, including the amount and line item details.
return actions.order.create({
purchase_units: [{
amount: {
value: countCartTotal()
}
}]
});
},
onApprove: function(data, actions) {
// This function captures the funds from the transaction.
return actions.order.capture().then(function(details) {
// This function shows a transaction success message to your buyer.
window.location.href = "orderConfirmed.php"
clearCart()
});
}
}).render('#paypal-button-container');
//This function displays Smart Payment Buttons on your web page.
</script>
购物车在 cart.js 中编码,我知道我可以在 PayPal 脚本中使用该文件中的一个函数,因为函数“countCartTotal()”告诉 PayPal 向客户收取的费用。在我的购物车里。js,这就是我将商品添加到购物车的方式:
function insertItemToDOM(product) {
cartDOM.insertAdjacentHTML('beforeend', `
<div class="cart__item">
<img class="cart__item__image" src="${product.image}" alt="${product.name}">
<h3 class="cart__item__name">${product.name}</h3>
<h3 class="cart__item__price">${product.price}</h3>
<button class="btn btn--primary btn--small${(product.quantity === 1 ? ' btn--danger' : '')}" data-action="DECREASE_ITEM">−</button>
<h3 class="cart__item__quantity">${product.quantity}</h3>
<button class="btn btn--primary btn--small" data-action="INCREASE_ITEM">+</button>
<button class="btn btn--danger btn--small" data-action="REMOVE_ITEM">×</button>
</div>
`);
addCartFooter();
}
我需要让 Paypal 包含“${product.name}”和“${product.quantity}”
解决方案
项目进入purchase_units
数组,记录在 v2/orders。可能很难理解所有必需的细分参数,这些参数必须加起来,否则结帐会出错并且无法打开——所以这里有一个包含两个项目的示例:
"purchase_units": [{
"description": "Stuff",
"amount": {
"value": "20.00",
"currency_code": "USD",
"breakdown": {
"item_total": {
"currency_code": "USD",
"value": "20.00"
},
}
},
"items": [
{
"unit_amount": {
"currency_code": "USD",
"value": "10.00"
},
"quantity": "1",
"name": "Item 1",
},
{
"unit_amount": {
"currency_code": "USD",
"value": "10.00"
},
"quantity": "1",
"name": "Item 2",
},
],
}
]
推荐阅读
- azure - 使用 Microsoft.Azure.Services.AppAuthentication 库为 Azure 服务以外的资源生成访问令牌
- escaping - Zend Framework 3 - 元标签奇怪地转义 - 对规范 url 的影响?
- android - 我可以使用来自不同谷歌项目的两个谷歌服务 json 文件吗?
- php - 所有 css/img 文件都路由到网站的主页
- c++ - 静态链接 libc++ clang
- hive - 当我在 hive 使用执行引擎 tez 上运行任务时,发生错误
- python-3.x - Python - 从 txt 文件中获取值
- jmeter - JMeter 的 HTTP 请求文件抛出 404 错误
- php - 无法从 PHP 代码向 Chatbase 发送多条消息
- android - Android 弹出对话框屏幕大小在 android Oreo 中没有变化