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

测试环境下Stripe测试令牌无法使用问题排查

问题分析与解决方案

你遇到的核心问题是错误使用了ConfirmationToken参数——这个参数并非用来传递支付令牌(如tok_visa),而是用于后续确认已创建的PaymentIntent时的临时令牌。

正确实现方式

当你通过CreateAsync并设置Confirm = true来立即确认PaymentIntent时,应该使用PaymentMethod参数指定测试支付令牌,而非ConfirmationToken。修改后的代码如下:

StripeConfiguration.ApiKey = apiKey;

var paymentIntentService = new PaymentIntentService();
paymentIntent = await paymentIntentService.CreateAsync(new PaymentIntentCreateOptions
{
    Confirm = true,
    PaymentMethod = "tok_visa", // 替换为PaymentMethod参数
    Amount = 1200,
    Currency = "usd",
    AutomaticPaymentMethods = new PaymentIntentAutomaticPaymentMethodsOptions
    {
        Enabled = true,
        AllowRedirects = "never"
    },
});

报错原因说明

ConfirmationToken的作用是:当你先创建未确认的PaymentIntent(不设置Confirm = true),前端通过Stripe.js的confirmPayment等方法获取确认令牌后,后端调用ConfirmAsync时传入该令牌完成确认。它和支付令牌(tok_xxx)是完全不同的概念,因此传入tok_visa会触发“找不到该确认令牌”的错误。

额外注意事项

  • 若启用了AutomaticPaymentMethods,也可以不手动指定PaymentMethod,Stripe会自动处理测试环境的支付流程;但如果需要明确指定测试支付方式,仍需将对应tok_xxx令牌传入PaymentMethod参数。
  • 你的测试密钥和测试模式配置已验证无误,无需调整这部分内容。

内容的提问来源于stack exchange,提问作者Steven Garcia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:53:09