条纹"提供的API密钥无效"

red*_*gem 4 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 
Run Code Online (Sandbox Code Playgroud)

并转到localhost:3000/charge/new并填写测试卡数据字段(卡号"4242 4242 4242 4242"),但我得到了

Invalid API Key provided: ***********_***
Run Code Online (Sandbox Code Playgroud)

任何想法为什么会这样?

col*_*inm 6

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

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

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

PUBLISHABLE_KEY=pk_987654 SECRET_KEY=Sk123456 rails s
Run Code Online (Sandbox Code Playgroud)

如果仍然无效,有几件事要检查:

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