我正在将Paypal付款网关集成到我的php网站。我已经在我的网站上设置了快速结帐按钮。在使用沙盒帐户进行测试时,我注意到客户端上的所有内容。设置金额,将金额发送给贝宝,并在批准后返回到我们调用服务器的站点,以将交易保存到数据库中并向用户显示成功页面。我的问题是这里的一切都在客户端,用户很有可能可以手动更改金额并将较少的金额传递给Paypal和Pay。从Paypal进行快速结帐的安全性较低。我在下面提供了我所做的代码。
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<script
src="https://www.paypal.com/sdk/js?client-id=AQYbApp-rrqXDbNdbHNybmYVEmI329axyF2DqWIU8CidWswsBwpsi6ybWK3lWGku7wPHKUo9Ou9">
</script>
<script>
paypal.Buttons({
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{
amount: {
value: '1'
}
}]
});
},
onApprove: function(data, actions) {
// Capture the funds from the transaction
return actions.order.capture().then(function(details) {
// Call your server to save the transaction
return fetch('/paypal/trans_complete.php', {
method: 'post',
body: JSON.stringify({
orderID: data.orderID
})
});
});
}
}).render('#paypal-button-container');
</script>
</head>
<body>
<div id="paypal-button-container"></div>
</body>