1 回答
TA贡献1853条经验 获得超9个赞
唯一需要 SCA 的时间是当您尝试付款时。收集客户的付款详细信息(并可选择将其保存为新客户)后,您要求 Stripe 完成付款。然后 Stripe 将联系客户的银行并询问是否可以付款或是否需要额外的身份验证。
如果银行表示不需要额外的费用,则付款成功,一切顺利。
如果银行表示需要 3DS 检查,那么您需要让客户完成 3DS 流程,这本质上是一个 2FA 步骤,以确保请求付款的人也是持卡人。
如果您的客户仍在“会话中”(例如仍在您的网站上),您可以将新创建的 PaymentIntent 的客户端密钥传递到您的前端,并使用 Stripe.js 完成 2FA 步骤并验证付款。
如果您的客户处于“非会话状态”(例如,这是定期订阅,并且他们不在您的网站上),那么您必须向您的客户发送电子邮件,让他们回到您的网站上执行 3DS 步骤(或者您可以使用 Stripe 的托管发票页面)。
在您的情况下,当您创建订阅时(假设您没有使用试用期),Stripe 将创建一个发票,并附加自动创建的 PaymentIntent。您可以通过Subscriptionlatest_invoice
上的参数访问此 Invoice 。如果需要 3DS 步骤,PaymentIntent 将具有该状态,这意味着您需要让客户返回“会话”以完成付款。requires_action
在这种情况下,通过托管发票页面,Stripe 将自动向您的用户发送电子邮件,以便他们可以完成付款。如果没有托管发票页面,您将必须构建自己的实现才能让您的用户返回“会话中”。
仅当您实际尝试将资金从一个地方转移到另一个地方时,您才需要在创建客户或付款方式时执行 3DS。
添加回答
举报