【问题标题】:Stripe "Invalid API Key Provided"条带“提供的 API 密钥无效”
【发布时间】:2013-10-07 03:09:40
【问题描述】:
我完全遵循了 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: ***********_***
任何想法为什么会发生这种情况?
【问题讨论】:
标签:
ruby-on-rails
stripe-payments
【解决方案1】:
您需要插入您的可发布密钥和秘密密钥; pk_foo 和 sk_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。
【解决方案2】:
您可能会检查的另一件事是您使用的 API 密钥实际上是正确的。发生在我身上的是,我正在扫描 Stripe Dashboard 中的键和我的 .env 文件中的键,并根据它们的开始和结束方式快速判断它们是相同的。它们看起来都是这样的,除了第三个字符之外,每个字符都相同:
sk_test_******************************D6D
无论出于何种原因,当 Stripe 滚动一个新密钥时,它们几乎保持不变。
简而言之,不要相信你的眼睛,并确保密钥实际上是相同的。