Lot*_*tfi 6 javascript paypal paypal-sandbox
我正在使用 PayPal Checkout 在客户端进行基本付款,我询问这是否安全,因为我不希望用户更改金额。
此代码与文档中给出的代码相同。
<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: '100'
}
}]
});
}
}).render('#paypal-button-container');
</script>
Run Code Online (Sandbox Code Playgroud)
是的,简单的仅客户端解决方案可以更改订单金额。要控制数量并验证成功捕获,您应该使用服务器端集成。
按照PayPal Checkout 集成指南,在您的服务器上创建 2 条路由(URL 路径),一条用于“创建订单”,一条用于“捕获订单”。您可以使用 Checkout-lanuagename-SDK 之一(编辑:这些现已弃用)来进行对 PayPal 的路由 API 调用,或者您自己的 HTTPS 实现,首先获取 access_token,然后进行调用。这两个路由都应仅返回 JSON 数据(无 HTML 或文本)。在第二条路线中,当捕获 API 成功时,您应该
purchase_units[0].payments.captures[0].id是 PayPal 交易 ID).. 好吧,然后将返回的 JSON 转发给前端调用者。如果发生错误,也会转发其 JSON 详细信息,因为前端必须处理此类情况(如果错误可恢复,则重新启动结账,如果无法恢复,则显示失败消息)
一旦您有 2 个服务器路由可用,请将它们与此前端审批流程配对: https: //developer.paypal.com/demo/checkout/#/pattern/server。(如果您需要从客户端向服务器发送任何其他数据,例如项目数组或选定的选项,请body向 fetch 添加一个参数,其值为 JSON 字符串或对象)