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

iOS端Stripe Connect集成报错:payment_intent资源不存在

Stripe Connect iOS端payment_intent不存在问题排查方案

核心问题定位方向

1. 未正确关联Connect账户

Android端通常会在支付流程中明确指定关联的Connect账户,但iOS端容易遗漏该关键配置:

  • 后端创建Payment Intent时,必须在请求头中携带Stripe-Account: {{CONNECT_ACCOUNT_ID}},或在请求体中设置on_behalf_of参数,确保Intent归属目标Connect账户。
  • iOS前端确认支付时,需在参数中补充Connect账户ID:
    let paymentIntentParams = STPPaymentIntentParams(clientSecret: "你的ClientSecret")
    paymentIntentParams.stripeAccount = "目标Connect账户ID"
    STPPaymentHandler.shared().confirmPayment(withParams: paymentIntentParams, authenticationContext: self) { status, intent, error in
        // 支付结果处理逻辑
    }
    

2. Client Secret不匹配

  • 确保iOS端使用的Client Secret是后端针对同一Connect账户生成的,避免复用Android端的旧Secret或错误账户生成的Secret。
  • 检查后端逻辑,禁止缓存或重复使用Client Secret,每次支付请求都要生成对应新的Secret。

3. SDK版本或权限问题

  • 升级iOS端Stripe SDK到最新稳定版:
    pod update Stripe
    
  • 确认Connect账户已启用payment_intents权限,后端使用的API密钥具备操作目标Connect账户Payment Intent的权限(优先使用全权限Secret Key测试)。

Android端配置参考(对比排查)

Android端正确关联Connect账户的典型代码:

val paymentIntentParams = PaymentIntentParams.create("你的ClientSecret")
val stripe = Stripe(context, "发布密钥")
stripe.confirmPayment(
    activity,
    paymentIntentParams,
    options = PaymentOptions.Builder()
        .setStripeAccount("目标Connect账户ID")
        .build()
)

验证步骤

  1. 抓包iOS端支付请求,确认请求头是否包含Stripe-Account参数。
  2. 在Stripe后台搜索报错的Payment Intent ID(pi_3LNYx8QQGw6fEJWk06RcezpX),查看其归属账户、状态及创建日志,确认是否与当前使用的Connect账户一致。

内容的提问来源于stack exchange,提问作者Julien Attard

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 08:45:33