You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移动端Stripe 3DS2认证流程实现疑问(后端主导模式)

解决方案:后端主导流程下的Stripe 3DS2认证实现

核心思路

要保持后端主导支付流程、移动端仅调用API不集成Stripe SDK,3DS2认证可通过Stripe生成的托管认证页面完成:后端收到payment_intent.requires_action事件后,提取认证跳转链接返回给移动端,移动端用WebView打开该链接完成认证,全程无需移动端接入Stripe SDK。


关键步骤(已切换为on-session支付前提)

  1. 后端创建并确认PaymentIntent
    创建时必须设置confirm: true(on-session支付标识),绑定已保存的PaymentMethod和Customer,同时指定认证完成后的跳转地址:

    const stripe = require('stripe')('sk_test_xxx');
    
    const paymentIntent = await stripe.paymentIntents.create({
      amount: 1000, // 单位:最小货币单位(如10美元=1000美分)
      currency: 'usd',
      customer: 'cus_xxx', // 已绑定PaymentMethod的用户Customer ID
      payment_method: 'pm_xxx', // 用户已保存的PaymentMethod ID
      confirm: true, // 开启on-session支付
      setup_future_usage: 'off_session', // 可选:若后续需离线支付,提前标记
      return_url: 'https://your-backend.com/payment-callback', // 支持后端API或移动端Deep Link(如yourapp://payment-result)
      use_stripe_sdk: false, // 强制生成跳转链接,而非依赖SDK处理
    });
    
  2. 后端处理3DS2认证触发事件
    通过WebHook监听payment_intent.requires_action事件,提取Stripe生成的认证跳转链接并推送给移动端:

    // WebHook事件处理逻辑
    if (event.type === 'payment_intent.requires_action') {
      const paymentIntent = event.data.object;
      const authRedirectUrl = paymentIntent.next_action.redirect_to_url.url;
      // 通过API接口或推送通知将链接返回给移动端
      notifyMobileApp(paymentIntent.id, authRedirectUrl);
    }
    
  3. 移动端处理认证流程

    • 收到后端返回的链接后,打开内置WebView加载认证页面
    • 用户在WebView完成3DS2身份验证(如验证码、指纹识别等)
    • 认证完成后,Stripe自动跳转至设置的return_url:
      • 若为后端API:后端通过WebHook确认支付状态后,通知移动端结果
      • 若为移动端Deep Link:移动端监听链接,主动调用后端API查询最终支付状态

注意事项

  • 严格使用on-session支付:off-session模式不支持3DS认证,confirm: true是核心前提
  • WebHook配置完整:需监听payment_intent.succeeded、payment_intent.failed等事件,及时更新订单状态
  • WebView兼容性:需开启JavaScript支持,否则3DS2认证页面无法正常交互
  • 结果校验:移动端不能仅依赖跳转判断支付结果,必须调用后端API确认最终状态,避免网络异常导致的状态不一致

内容的提问来源于stack exchange,提问作者derek z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 16:27:39