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。
添加回答
舉報