Stripe payments 无Webhook的条带自动确认和订单履行?

Stripe payments 无Webhook的条带自动确认和订单履行?,stripe-payments,webhooks,Stripe Payments,Webhooks,stripe文档说,当使用自动确认的支付意图时,您应该使用Webhook异步完成客户的订单 如果我提供的是一项服务,例如一旦购买就可以下载文件,那么为什么我需要监控支付意图。successedwebhook 如果在以下handleCardPayment功能中付款成功,则收费是否仍有失败的可能性?如果付款成功,我为什么不允许用户直接下载文件 var cardholderName = document.getElementById('cardholder-name'); var cardButton

stripe文档说,当使用自动确认的支付意图时,您应该使用Webhook异步完成客户的订单

如果我提供的是一项服务,例如一旦购买就可以下载文件,那么为什么我需要监控
支付意图。successed
webhook

如果在以下
handleCardPayment
功能中付款成功,则收费是否仍有失败的可能性?如果付款成功,我为什么不允许用户直接下载文件

var cardholderName = document.getElementById('cardholder-name');
var cardButton = document.getElementById('card-button');
var clientSecret = cardButton.dataset.secret;

cardButton.addEventListener('click', function(ev) {
  stripe.handleCardPayment(
    clientSecret, cardElement, {
      payment_method_data: {
         billing_details: {name: cardholderName.value}
      }
    }
  ).then(function(result) {
     if (result.error) {
       // Display error.message in your UI.
       } else {
       // The payment has succeeded. Display a success message.
   }
 });
});

也许我还不明白手牌是怎么回事。感谢您的帮助。

当使用
handleCardPayment
时,问题不在于支付可能失败,而是它可能成功,但您的代码不知道

handleCardPayment
启动了几个异步步骤-向用户显示一个对话框,用于向其银行验证付款,处理其卡的实际费用,并关闭该对话框。只有在所有这些都完成之后,承诺才会得到解决,并且您接收
结果的函数才会执行

考虑以下情况:

  • 客户点击支付

  • 调用
    handleCardPayment

  • 客户看到来自其银行的一个对话框来验证 付款

  • 他们这样做,他们认为他们的付款现在已经完成了, 他们会立即关闭浏览器

在这种情况下,您的代码将永远不会执行,但Stripe仍然处理了费用。所以你不知道付款发生了,你不能履行订单


这就是为什么使用Webhook很重要的原因,因此当支付完成时,您会收到异步通知,即使用户在中途关闭了浏览器,并且您的代码在
handleCardPayment
之后从未运行过。或者,您也可以使用,其中步骤被拆分,直到您的服务器进行单独的API调用,才处理实际费用。

使用
handleCardPayment
时,问题不在于支付可能失败,而是它可能成功,但您的代码不知道

handleCardPayment
启动了几个异步步骤-向用户显示一个对话框,用于向其银行验证付款,处理其卡的实际费用,并关闭该对话框。只有在所有这些都完成之后,承诺才会得到解决,并且您接收
结果的函数才会执行

考虑以下情况:

  • 客户点击支付

  • 调用
    handleCardPayment

  • 客户看到来自其银行的一个对话框来验证 付款

  • 他们这样做,他们认为他们的付款现在已经完成了, 他们会立即关闭浏览器

在这种情况下,您的代码将永远不会执行,但Stripe仍然处理了费用。所以你不知道付款发生了,你不能履行订单


这就是为什么使用Webhook很重要的原因,因此当支付完成时,您会收到异步通知,即使用户在中途关闭了浏览器,并且您的代码在
handleCardPayment
之后从未运行过。或者,您可以使用,其中步骤被拆分,实际费用在服务器进行单独的API调用之前不会被处理。

因此,在已处理费用和webhook触发之间的过渡期间,如果用户要查看订单,它仍然会显示为未完成或未付,因为如果用户需要,我的代码从未有机会更新订单状态中途关闭浏览器。我假设webhook会立即启动,但是如果出现延迟,用户会看到一个未付款的订单吗?是的。不过,在大多数情况下,webhook会非常快地被触发,尽可能接近即时。因此,在已处理费用和webhook启动之间的过渡期间,如果用户要查看订单,它仍将显示为未完成或未支付,因为如果用户在中途关闭浏览器,我的代码永远没有机会更新订单状态。我假设webhook会立即启动,但是如果出现延迟,用户会看到一个未付款的订单吗?是的。不过,在大多数情况下,webhook会以极快的速度启动,尽可能接近即时。