- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 PayPal API 将付款选项放到我的网站上。 In the tutorial they have ,他们正在使用 JavaScript 完全在客户端呈现按钮并设置事务。这是示例代码:
<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: '0.01'
}
}]
});
},
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.
alert('Transaction completed by ' + details.payer.name.given_name);
});
}
}).render('#paypal-button-container');
//This function displays Smart Payment Buttons on your web page.
</script>
这安全吗?
最佳答案
您是正确的,用户始终可以更改客户端代码中的金额,并以较低的金额发送付款。这就是客户端支付的工作方式。
跟踪哪些支付是真实的以及正确金额的任何逻辑都必须在您的服务器上。
对于 PayPal Checkout,您应该使用以下前端 UI:https://developer.paypal.com/demo/checkout/#/pattern/server
您的服务器上需要两条对应的路由,一条用于“创建订单”,一条用于“捕获订单”。您可以使用 Checkout-lanuagename-SDK
之一's for the routes' API 调用 PayPal,或您自己的 HTTPS 实现,首先获取访问 token ,然后进行调用。这两个路由都应该只返回 JSON 数据(没有 HTML 或文本)。在第二条 route ,当捕获 API 成功时,您应该验证金额是否正确并将其生成的付款详细信息存储在您的数据库中(特别是 purchase_units[0].payments.captures[0].id
,这是 PayPal 交易 ID)并执行任何必要的业务逻辑(例如发送在将您的返回 JSON 转发给前端调用者之前立即发送确认电子邮件或预订产品)。如果发生错误,也转发它的 JSON 详细信息,因为前端必须处理这种情况。
关于javascript - Paypal 结帐 : Is it safe to receive a payment with only client-side code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63018822/
我是一名优秀的程序员,十分优秀!