PayPal Checkout 客户端:用户可以在 JavaScript 中更改订单金额吗?
PayPal Checkout client-side: Can users change the order amount in JavaScript?
我正在使用 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>
是的,简单的仅客户端解决方案可以更改订单金额。要控制数量并验证成功捕获,您应该使用服务器端集成。
遵循 PayPal Checkout integration 指南并在您的服务器上创建 2 条路线(URL 路径),一条用于 'Create Order',一条用于 'Capture Order'。您可以使用 Checkout-lanuagename-SDK 中的一个用于路由对 PayPal 的 API 调用,或者您自己的 HTTPS 实现,首先获取访问令牌然后进行调用。这两条路线都应该 return 只有 JSON 数据(没有 HTML 或文本)。在第 2 条路线中,当捕获 API 成功时,您应该
- 验证金额是否正确
- 将其生成的付款详细信息存储在您的数据库中(特别是
purchase_units[0].payments.captures[0].id
,也就是支付宝
交易 ID)
- 执行任何必要的业务逻辑(例如
发送确认电子邮件或预订产品)
.. 好吧,然后再将您的 return JSON 转发给前端调用者。如果出现错误,也会转发 JSON 详细信息,因为前端必须处理此类情况(如果错误可恢复,则重新开始检查,否则显示失败消息)
一旦您的 2 个服务器路由可用,请将它们与此前端批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server。 (如果您需要从客户端向服务器发送任何其他数据,例如项目数组或选定的选项,请将 body
参数添加到提取中,其值为 JSON 字符串或对象)
我正在使用 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>
是的,简单的仅客户端解决方案可以更改订单金额。要控制数量并验证成功捕获,您应该使用服务器端集成。
遵循 PayPal Checkout integration 指南并在您的服务器上创建 2 条路线(URL 路径),一条用于 'Create Order',一条用于 'Capture Order'。您可以使用 Checkout-lanuagename-SDK 中的一个用于路由对 PayPal 的 API 调用,或者您自己的 HTTPS 实现,首先获取访问令牌然后进行调用。这两条路线都应该 return 只有 JSON 数据(没有 HTML 或文本)。在第 2 条路线中,当捕获 API 成功时,您应该
- 验证金额是否正确
- 将其生成的付款详细信息存储在您的数据库中(特别是
purchase_units[0].payments.captures[0].id
,也就是支付宝 交易 ID) - 执行任何必要的业务逻辑(例如 发送确认电子邮件或预订产品)
.. 好吧,然后再将您的 return JSON 转发给前端调用者。如果出现错误,也会转发 JSON 详细信息,因为前端必须处理此类情况(如果错误可恢复,则重新开始检查,否则显示失败消息)
一旦您的 2 个服务器路由可用,请将它们与此前端批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server。 (如果您需要从客户端向服务器发送任何其他数据,例如项目数组或选定的选项,请将 body
参数添加到提取中,其值为 JSON 字符串或对象)