Stripe:“您的请求处于测试模式,但使用了非测试卡”

Posted

技术标签:

【中文标题】Stripe:“您的请求处于测试模式,但使用了非测试卡”【英文标题】:Stripe: "Your request was in test mode but used a non test card" 【发布时间】:2014-08-23 22:07:38 【问题描述】:

我最近切换了我的 Stripe 帐户,并且在此过程中也从测试切换到了实时。当我提交真实的信用卡付款时,我一直收到 Stripe 的错误消息:

StripeResponse.error.message = "Your request was in test mode but used a non test card"

检查变量:

$ heroku config -r production
>> ...
STRIPE_API_KEY:              sk_live_XXXXXXXXXXXXXX
STRIPE_PUBLIC_KEY:           pk_live_XXXXXXXXXXXXXX

这些键的值与我的 Stripe 设置中的值匹配。我的 Stripe 仪表板也切换为实时状态。我的应用程序中似乎有一些我在测试时遗留下来的东西,但我无法弄清楚它是什么。

什么可以告诉 Stripe 我处于测试模式?

【问题讨论】:

【参考方案1】:

确保您使用的是实时 API 密钥

heroku run console

一旦连接到控制台

puts Stripe.api_key

输出是否与您的实时 API 密钥匹配?

【讨论】:

我已经在我的 Heroku 设置中检查了它,它确实是 live api 和可发布的密钥。仪表板有可能是错误的吗? 澄清了我原来的问题。 更新 API 密钥后是否重新启动了 Heroku dynos(或重新部署)? 我在调试过程中重新部署了大约十几次,所以是的。 也许它使用了其他地方的硬编码密钥?您是否已验证 Stripe.api_key 在 heroku 控制台中显示正确的密钥?

以上是关于Stripe:“您的请求处于测试模式,但使用了非测试卡”的主要内容,如果未能解决你的问题,请参考以下文章

Stripe、Stripe Payments、Connect、关联账户、拆分支付

Stripe v3 中的 Stripe.card.validateCardNumber() 等价物

使用 Angular2 和 stripe.js 导入 Stripe

Stripe Connect:在Stripe Connect中,谁将支付Stripe费用,如何确定?

没有适合 Stripe 的构造函数

如何在 IOS 中使用 STRIPE API 创建 STRIPE 客户?