如何通过 PayPal 确保我的支付系统的安全性?
我使用 vue-paypal-check为付款创建前端 PayPal 按钮。
代码如下:
<Pay-Pal
v-if="paypal_live_id && paypal_sandbox_id"
:amount="amount"
currency="USD"
:client="credentials"
:env="paypal_env"
@payment-authorized="payment_authorized_cb"
@payment-completed="payment_completed_cb"
@payment-cancelled="payment_cancelled_cb"
:items="pay_items"
>
</Pay-Pal>
下面是一些 dota:
data(){
return {
paypal_env: this.$GLOBAL_CONST.PAYMENT.PAYPAL_ENV,
paypal_sandbox_id: undefined,
paypal_live_id: undefined,
}
},
computed: {
credentials() {
return {
sandbox: this.paypal_sandbox_id,
production: this.paypal_live_id,
}
},
},
支付成功的回调方法:
payment_completed_cb(res){
some method to access API for payment success // there will request the API for change the order status or reduce the balance.
},
但是我有一个问题,如果客户的某人技术不好,他直接调用payment_completed_cb
,而不是通过paypal 付款。
我该如何防止这种情况发生?
最佳答案
在您的 Paypal 服务器和您的服务器之间的前端结帐流程之外,需要有服务器到服务器 通信。
您可以使用 Instant Payment Notification (IPN)为此。
vue-paypal-check表明您可以将 IPN 网址放入(使用 notify-url
)
<PayPal
amount="10.00"
currency="USD"
:client="credentials"
notify-url="<your-ipn-url>">
</PayPal>
对于 Paypal,您不应该等待 IPN 通知完成结帐流程,但您也不应该在收到订单之前完成订单。
直接调用 payment_complete_cb
最糟糕的情况是进入一些无意义的结帐完整页面。不过,如果不付款,他们将无法从您那里获得商品。
关于javascript - 如何通过 PayPal 确保我的支付系统的安全性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50479250/