5

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

PUBLISHABLE_KEY=pk_foo SECRET_KEY=sk_bar rails s 

并转到 localhost:3000/charges/new 并使用测试卡数据(卡号“4242 4242 4242 4242”)填写字段,但我得到一个

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

任何想法为什么会发生这种情况?

4

2 回答 2

8

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

您可以从您帐户的API 密钥选项卡中获取它们。

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

PUBLISHABLE_KEY=pk_987654 SECRET_KEY=Sk123456 rails s

如果这仍然不起作用,则需要检查几件事:

  • 两个密钥是否来自同一环境(测试或实时)?有时人们将两者混合在一起。
  • 如果您加载 Rails 控制台而不是 Rails 服务器,您可以使用ENV['PUBLISHABLE_KEY']and访问这些环境变量ENV['SECRET_KEY']吗?
  • 如果您使用多个 API,则可能会发生某种冲突;您可以尝试将命令行和代码调整为 STRIPE_PUBLISHABLE_KEY 和 STRIPE_SECRET_KEY。
于 2013-10-07T15:06:00.640 回答
1

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

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

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

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

于 2021-02-23T17:20:22.063 回答