在移动应用程序中完成 Stripe 3D secure 2 身份验证工作流程

问题描述 投票:0回答:1

我正在使用 Stripe 开发信用卡支付工作流程,并且在 3ds2 中遇到一些问题。我试图让 Backend 处理大部分任务(管理 PaymentMethod、创建和确认 PaymentIntent...),并提供 API 供移动 APP 使用。

在目前的设计中,手机APP端会根据用户输入的卡详细信息生成PaymentMethod,并调用一些API将

pm_id
发送到后端附加给客户(因此用户不需要输入他们的卡信息)每次付款时的卡信息)。当用户想要付款时,他们只需单击移动应用程序中的按钮,后端就会创建一个 PaymentIntent 向客户收费。

在理想情况下,PaymentIntent的创建和确认将由Backend处理。但现在后端也需要支持3D认证,这需要手机APP端的集成。

对于 3DS1 我认为这很简单,当 Web hook 收到

payment_intent.requires_action
时,后端只需发送 API 响应中的
three_d_secure_redirect
链接即可将用户引导至网页。 PaymentIntent 应包含这部分:

"next_action": {
    "type": "use_stripe_sdk",
    "use_stripe_sdk": {
      "source": "...",
      "stripe_js": "https://hooks.stripe.com/redirect/authenticate/...",
      "type": "three_d_secure_redirect"
    }
  },

但是对于 3DS2 我有点困惑,因为我找不到关于 APP 端应如何处理 PaymentIntent 对象中的信息的明确文档,如下所示:

{
  "next_action": {
    "type": "use_stripe_sdk",
    "use_stripe_sdk": {
      "directory_server_encryption": {
        "algorithm": "RSA",
        "certificate": "...",
        "directory_server_id": "A000000003",
        "root_certificate_authorities": [
          "..."
        ]
      },
      "directory_server_name": "visa",
      "merchant": "...",
      "one_click_authn": null,
      "server_transaction_id": "...",
      "three_d_secure_2_source": "...",
      "three_ds_method_url": "",
      "three_ds_optimizations": "kf",
      "type": "stripe_3ds2_fingerprint"
    }
  }
}

我的问题是,有没有办法让移动应用程序(Android 和 IOS)可以根据上述信息生成 3DS2 视图?我应该参考哪些文档。谢谢。

我找到了一些资源(https://www.youtube.com/watch?v=NOceh42ZNEY&t=1s),但大多数都是关于如何让APP端处理大部分支付流程,比如创建PaymentIntent。但我想让后端处理大部分流程,所以APP端不需要直接与Stripe集成,只需要调用API来处理支付即可。

ios kotlin stripe-payments payment-processing 3d-secure
1个回答
0
投票

建议的集成路径是让我们的前端 SDK(例如 Stripe.js)为您处理 3DS 挑战流程。但是,如果您希望自己手动处理重定向,则应在付款意向创建或确认时传递

return_url
参数。然后,响应应包含一个您可以在有效负载中重定向到的 URL,类似于:

next_action: {
    type: 'redirect_to_url',
    redirect_to_url: {
      url: 'https://hooks.stripe.com/...',
      return_url: 'https://x.x'
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.