这是贝宝为其结帐按钮提供的javascript代码:
<script>
paypal.Buttons({
createOrder: function (data, actions) {
return actions.order.create({
purchase_units: [{
amount: {
value: '0.01' //can't this be changed by clients if it's pulled from the html?
}
}]
});
},
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');
</script>
当用户购买商品时,如何制作商品,这样他们就不能简单地用html编辑价格?即应该如何验证服务器端?当他们完成购买后,onApprove
就可以运行了。我应该如何将批准信息记录到数据库中?我不想使用ajax公开我的数据库凭据。
答案 0 :(得分:1)
通常来说,用户可以更改金额或传递的任何其他信息是完全正确的。您绝对不能信任客户。但是在某些情况下,这可能不是很多问题。例如,对于捐赠,您可以有一个“捐赠1美元”按钮和一个“捐赠5美元”按钮,用户可以更改实际金额,但是如果他选择捐赠,这并不会真的伤害您3美元或17美元,而不是1美元或5美元,您会收到钱,金额并不重要。
如果您实际上想给客户一些回报,例如虚拟或实物商品,那么您必须让服务器参与订单的实际处理/履行:https://developer.paypal.com/docs/checkout/reference/server-integration/。在这种情况下