首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当强客户身份验证失败时,该怎么办?

当强客户身份验证失败时,该怎么办?
EN

Stack Overflow用户
提问于 2019-06-29 01:48:35
回答 1查看 999关注 0票数 0

我试图用订阅注册和支付流程实现一个Stripe.js V3强客户身份验证(SCA),如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var stripe = Stripe('pk_test_9hA8gecxBFTY3O6kUm7hl16j');

var paymentIntentSecret = 'pi_91_secret_W9';

stripe.handleCardPayment(
    paymentIntentSecret
).then(function (result) {
    if (result.error) {
        // Display error.message in your UI.
    } else {
        // The payment has succeeded. Display a success message.
    }
})

当支付取代的时候,一切都很好。

但是当失败时,我该怎么办?

我是否应该将用户重定向到初始支付屏幕,以便s/他可以重新开始?

当我这样做时,我会得到这样的错误:

无法确认此PaymentIntent,因为它的状态为“已取消”。只有具有下列状态之一的PaymentIntent才能得到确认: requires_confirmation,requires_action。

或者我应该删除所有内容,包括以前创建的stripe_customerstripe_subscription,然后重新开始?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2019-07-01 03:06:18

如果付款完全失败(可能是被拒绝了,或者3DSecure被尝试但没有成功完成),那么来自第一张发票的PaymentIntent应该处于requires_payment_method状态,订阅是incomplete

您可以选择尝试从用户收集新的支付信息,并使用该信息完成发票支付并激活订阅。您可以在整个过程中重复使用相同的PaymentIntent,并尽可能多地尝试。例如,如果您有一个包含收集详细信息的Card元素的支付表单,您可以让用户输入一张新卡并再次调用它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
stripe.handleCardPayment(cardElement,
    paymentIntentSecret
).then(function(res){...})

或者,如果您愿意,可以选择完全取消订阅。否则,如果您什么也不做,或者客户无法提供有效的支付方法,24小时后,Stripe实际上取消了您的订阅。

您的错误消息似乎表明PaymentIntent已被取消,这可能意味着您取消了订阅,或者您在初次付款超过24小时后尝试此操作,我不确定。

这个链接更详细:https://stripe.com/docs/billing/lifecycle#incomplete

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56816563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文