javascript - 如何通过 PayPal 确保我的支付系统的安全性?

标签 javascript paypal payment

如何通过 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/

相关文章:

javascript - 复制按钮保留换行符

javascript - 鼠标悬停时子菜单消失

c# - 如何在关闭弹出窗口时重新加载父页面?

php - PayPal API(支付成功,但不会扣卡内的钱)

php - Paypal IPN 返回空白 POST 或 GET

ios - 支付应用程序中的Apple Test-Flight测试

android - 如何整合谷歌支付?

android - 如何读写移动设备上的安全元件以实现 NFC 支付目的?

javascript - 如何更改 JavaScript 扩展并在我的项目中使用它而无需等待批准?

php - 使用 Omnipay 将 PayPal REST API 集成到 Laravel - 需要卡参数