Stripe 测试令牌在测试环境中不起作用

问题描述 投票:0回答:1

我正在尝试测试立即确认 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"
    },
});

我在这里遗漏了什么吗?我已经重新阅读了文档,但找不到上面的代码不起作用的任何原因。

c# stripe-payments
1个回答
1
投票

您尝试使用的测试值 (

tok_visa
) 是传统测试 Token,代表 Visa 测试卡。 您不应该使用此旧值,因为使用代币并直接创建费用已被弃用

现代的等价物是

pm_card_visa
,它代表测试 Visa 付款方式。

但是,还有另一个问题:您尝试使用

tok_visa
作为 确认令牌,这是一个完全不同的概念/对象。 确认令牌没有特殊的测试模式值。

听起来您正在执行完全服务器端操作,不涉及客户端,因此使用确认令牌没有意义。 相反,请尝试将付款意图上的 payment_method

 属性设置为 pm_card_visa
 并查看是否按预期工作。

如果涉及客户端,请查看

Stripe 在服务器上完成付款的指南,其中确实涉及确认令牌,但要求您在确认服务器端之前在客户端创建它们。

© www.soinside.com 2019 - 2024. All rights reserved.