Stripe——confirmCardPayment 后,如何将新卡附加给客户?

Posted

技术标签:

【中文标题】Stripe——confirmCardPayment 后,如何将新卡附加给客户?【英文标题】:Stripe -- after confirmCardPayment, how to attach the new card to the customer? 【发布时间】:2021-07-04 18:55:04 【问题描述】:

我正在使用setupIntent 将卡保存给客户以供将来使用。我将 client_secret 从 setupIntent 传递给 js 中的 confirmCardSetup

稍后,我用那张卡片创建了一个paymentIntent。如果它被拒绝并且状态为requires_payment_method,那么我给客户发电子邮件并给他们一个表格来输入一张新卡,然后在js中使用confirmCardPayment提交。这样效果很好,收费成功(或变为requires_capture)。

然后,我如何将新的付款方式附加给客户?如果我什么都不做,那么他们保存的旧卡仍然是他们的主要付款方式。

我只想为每位客户保留一张卡片。我知道我可以拆下旧卡然后附加新卡,但是使用setupIntent 不会完成,如果我要在未来的会话中对卡充电,这显然更合适。

【问题讨论】:

【参考方案1】:

您还可以通过关注this guide,在使用setup_future_usage=off_session 付款时保存一张卡以供将来使用。付款方式将自动附加到付款意向中提供的客户。

可以使用您现有的流程,您只需通过以下方式扩展它:

    在使用新的付款详细信息再次确认付款意图之前,更新它以设置setup_future_usage 选项。 付款成功后,像您提到的那样分离旧的付款方式,如果需要,更新您对付款方式的内部引用以供该客户使用,使其成为 Payment Intent 中的新付款方式 ID。

【讨论】:

付款方式必须附加到条纹客户。 confirmCardPayment 方法成功授权并将新卡附加到该支付意图,但它没有执行原始 confirmCardSetup 所做的事情,即附加到客户。 哦,你是说在提交confirmCardPayment时设置setup_future_usage会附加到客户身上?我会试试的。 是的,setup_future_usage 会自动将卡附加到客户。

以上是关于Stripe——confirmCardPayment 后,如何将新卡附加给客户?的主要内容,如果未能解决你的问题,请参考以下文章

Stripe、Stripe Payments、Connect、关联账户、拆分支付

Stripe v3 中的 Stripe.card.validateCardNumber() 等价物

使用 Angular2 和 stripe.js 导入 Stripe

Stripe Connect:在Stripe Connect中,谁将支付Stripe费用,如何确定?

没有适合 Stripe 的构造函数

如何在 IOS 中使用 STRIPE API 创建 STRIPE 客户?