条纹“提供的API密钥无效”

时间:2013-10-07 03:09:41

标签: ruby-on-rails stripe-payments

我完全遵循Stripe的Rails教程(https://stripe.com/docs/checkout/guides/rails)(复制和粘贴代码),但是当我运行rails

PUBLISHABLE_KEY=pk_foo SECRET_KEY=sk_bar rails s 

然后转到localhost:3000 / charge / new并填写带有测试卡数据的字段(卡号“4242 4242 4242 4242”),但我得到了

Invalid API Key provided: ***********_***

为什么会发生这种情况?

2 个答案:

答案 0 :(得分:5)

您需要插入您的可发布密钥和密钥; pk_foosk_bar是占位符。 (与API文档不同,Checkout教程不使用您帐户中的信息。)

您可以从“帐户”的API Keys标签中获取这些内容。

即。对于Sk123456的密钥和pk_987654的可发布密钥,您需要发出:

PUBLISHABLE_KEY=pk_987654 SECRET_KEY=Sk123456 rails s

如果仍然无法解决问题:

  • 两个密钥来自同一环境(测试还是直播)?偶尔人们将两者混合在一起。
  • 如果您加载Rails控制台而不是Rails服务器,是否可以使用ENV['PUBLISHABLE_KEY']ENV['SECRET_KEY']访问这些环境变量?
  • 如果您使用多个API,则可能会发生某种冲突;您可以尝试将命令行和代码调整为STRIPE_PUBLISHABLE_KEY和STRIPE_SECRET_KEY。

答案 1 :(得分:0)

您可能要检查的另一件事是您使用的 API 密钥实际上是正确的。发生在我身上的是我正在扫描 Stripe Dashboard 中的键和我的 .env 文件中的键,并根据它们的开始和结束方式快速判断它们是相同的。它们看起来都像这样,除了第三个字符外,每个字符都相同:

sk_test_******************************D6D

无论出于何种原因,当 Stripe 推出新密钥时,他们几乎保持不变。

简而言之,不要相信你的眼睛,并确保密钥实际上相同。