亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用定期計費模型更新 SCA 的 Stripe 付款

使用定期計費模型更新 SCA 的 Stripe 付款

翻過高山走不出你 2023-07-19 10:20:37
您的輸入是灰度圖像。所以只有純白色才會變成黑色,其他一切都會變成白色。我對 opencv 不熟悉,所以這可能行不通。但值得一試。int invertedPixel = (0xFFFFFF - pixel) | 0xFF000000;bitmapCopy.setPixel(x,y, invertedPixel);719043  我目前正在將我的應用程序從使用 Stripe Charges API 遷移到使用 Stripe PaymentIntents API,以便遵守 SCA 法規。我的應用程序是具有定期計費模型的訂閱服務,因此我通常遵循遷移文檔的“Gym Membership”示例,并查看其他相關文檔和參考資料。我在前端使用 Stripe Elements 在自定義表單上捕獲付款詳細信息等,然后使用 Stripe 付款令牌發送到我的后端以進行進一步處理(同步)。前端更新很簡單,我沒有任何問題,但我對后端更新有點困惑。我可以在文檔中找到的所有代碼示例(通常都很棒)顯示了如何將Charge調用轉換為PaymentIntent調用,例如這個舊的 Charge 調用:Map<String, Object> chargeParams = new HashMap<String, Object>();chargeParams.put("amount", 1099);chargeParams.put("currency", "eur");chargeParams.put("source", request.token_id);Charge.create(chargeParams);...使用 PaymentIntents API 變成這樣:Map<String, Object> createPaymentIntentParams = new HashMap<String, Object>();createPaymentIntentParams.put("currency", "eur");createPaymentIntentParams.put("amount", 1099);createPaymentIntentParams.put("confirm", true);createPaymentIntentParams.put("confirmation_method", "manual");createPaymentIntentParams.put("payment_method", request.paymentMethodId);intent = PaymentIntent.create(createPaymentIntentParams);因此,如果客戶需要額外授權(如狀態所示PaymentIntent),該請求將被退回給客戶,并且 Stripe SDK 將處理額外的安全措施。但我的應用程序沒有Charge以這種方式使用調用。它通??雌饋硐襁@樣:Map<String, Object> srchOpts = new HashMap<>();srchOpts.put("email", userEmail);   List<Customer> matchingCustomers = Customer.list(srchOpts).getData();Customer customer = null;Subscription subscription = null;if ( matchingCustomers.isEmpty() ){    Map<String, Object> params = new HashMap<String, Object>();    params.put("email", userEmail);    params.put("source", stripeToken);    customer = Customer.create(params); // potential SCA rejection ??}新Customer創建、新PaymentSource創建和新Subscription創建調用是否會被 SCA 拒絕,此時我必須返回客戶進行進一步身份驗證?如果是這樣,我如何檢查 Customer 和 PaymentSource 調用是否有必要這樣做,以及如何獲取所需的客戶端秘密令牌發送回前端?訂閱對象確實提供對SetupIntent具有狀態和客戶端密鑰的對象的訪問,所以我是否必須檢查和使用這些?
查看完整描述

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。


查看完整回答
反對 回復 2023-07-19
  • 1 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號