我正在尝试测试立即确认 PaymentIntent 的 Stripe API 代码。我验证了我的 stripe 帐户处于测试模式,我正在使用测试密钥,并且我正在使用 stripe docs 指定的测试令牌。但是,无论我尝试哪个测试令牌,我都会收到一条错误消息,指出“没有这样的确认令牌:'tok_visa'”。
这是我正在测试的方法
StripeConfiguration.ApiKey = apiKey;
var paymentIntentService = new PaymentIntentService();
paymentIntent = await paymentIntentService.CreateAsync(new PaymentIntentCreateOptions
{
Confirm = true,
ConfirmationToken = "tok_visa",
Amount = 1200,
Currency = "usd",
AutomaticPaymentMethods = new PaymentIntentAutomaticPaymentMethodsOptions
{
Enabled = true,
AllowRedirects = "never"
},
});
我在这里遗漏了什么吗?我已经重新阅读了文档,但找不到上面的代码不起作用的任何原因。
您尝试使用的测试值 (
tok_visa
) 是传统测试 Token,代表 Visa 测试卡。 您不应该使用此旧值,因为使用代币并直接创建费用已被弃用。
现代的等价物是
pm_card_visa
,它代表测试 Visa 付款方式。
但是,还有另一个问题:您尝试使用
tok_visa
作为 确认令牌,这是一个完全不同的概念/对象。 确认令牌没有特殊的测试模式值。
听起来您正在执行完全服务器端操作,不涉及客户端,因此使用确认令牌没有意义。 相反,请尝试将付款意图上的 payment_method
pm_card_visa
并查看是否按预期工作。如果涉及客户端,请查看
Stripe 在服务器上完成付款的指南,其中确实涉及确认令牌,但要求您在确认服务器端之前在客户端创建它们。