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

Stripe Connect Direct Charge出现Invalid token ID报错如何解决?

问题原因

核心原因是 Stripe 卡片令牌(token)存在账户归属限制,一个令牌仅能在生成它时对应的 Stripe 账户下使用,跨账户调用会直接返回 Invalid token Id 报错。你遇到的问题大概率属于以下几类情况:

  • 生成令牌时传入的 Connect 账户 ID 和服务端创建 paymentIntent 时传入的 Connect 账户 ID 不一致,存在拼写错误、多空格、参数传递格式错误的问题
  • 你使用的 Connect 账户未完成激活流程,或未开通卡支付权限,导致平台侧生成的令牌无法被该 Connect 账户识别
  • 你用的 stripe-expo 版本对 stripeAccount 请求头的传递存在兼容性问题,导致实际生成令牌时没有带上该参数,最终生成的令牌归属你的平台主账户而非目标 Connect 账户
解决方案

你可以按照以下步骤逐一排查修复:

  1. 优先校验参数一致性
    打印客户端生成令牌时传入的 stripeAccount 值,和服务端创建 paymentIntent 时传入的 stripeAccount 值,确保二者完全一致,没有多余的特殊字符或空格。
  2. 调整 paymentIntent 创建参数的令牌传入方式
    不推荐在 payment_method_data.card.token 字段传入令牌,你可以直接将令牌ID赋值给 payment_method 字段,同时移除内层的 payment_method_data.card 配置,修改后的代码示例如下:
stripe.paymentIntents
    .create({
      amount: 1000,
      application_fee_amount: 100,
      confirm: true,
      currency: "gbp",
      description: "payment",
      payment_method_types: ["card"],
      payment_method: customerCard.id, // 直接传入生成的token ID即可
      return_url: "你的支付完成回调地址" // confirm设为true时必须传入该参数
    }, { stripeAccount: "实际的Connect账户ID"})
  1. 验证令牌实际归属
    拿到生成的令牌ID后,可以先调用 Stripe 令牌查询接口,确认令牌的归属账户是否为目标 Connect 账户,排查客户端库是否正确传递了 stripeAccount 参数。
  2. 检查 Connect 账户状态
    登录 Stripe 后台,确认目标 Connect 账户已经完成全部 KYC 验证,且卡支付功能处于启用状态。

内容的提问来源于stack exchange,提问作者Mark Reiner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:15:04