Ruby on rails 缺少Rails的stripeapi密钥

Ruby on rails 缺少Rails的stripeapi密钥,ruby-on-rails,ruby,api,stripe-payments,Ruby On Rails,Ruby,Api,Stripe Payments,我们面临着一个关于条带API密钥的问题。到目前为止,我所做的是: 设置environment/*.rb以使用常数使用适当的条带键 创建了一个config/initializers/stripe.rb行stripe.api\u key=stripe\u SECRET 使用rails控制台,设置并显示STRIPE\u PUBLIC和STRIPE\u SECRET常量条带\u公共=>“pk\u测试\uuuxxxxx” 但是,一旦这些事情就绪,使用浏览器调用Stripe的API将导致: Stripe

我们面临着一个关于条带API密钥的问题。到目前为止,我所做的是:

  • 设置environment/*.rb以使用常数使用适当的条带键
  • 创建了一个
    config/initializers/stripe.rb
    stripe.api\u key=stripe\u SECRET
  • 使用rails控制台,设置并显示
    STRIPE\u PUBLIC
    STRIPE\u SECRET
    常量<代码>条带\u公共=>“pk\u测试\uuuxxxxx”
但是,一旦这些事情就绪,使用浏览器调用Stripe的API将导致:

Stripe::AuthenticationError in some_controller#some_action

No API key provided. Set your API key using "Stripe.api_key = <API-KEY>". You can generate API keys from the Stripe web interface. See https://stripe.com/api for details, or email support@stripe.com if you have any questions.
Stripe::AuthenticationError in some_controller#some_action
没有提供API密钥。使用“Stripe.API_key=”设置API密钥。您可以从Stripe web界面生成API密钥。看见https://stripe.com/api 如需了解详细信息,请发送电子邮件support@stripe.com如果你有任何问题。

使用web控制台gem,我们可以看出
STRIPE\u SECRET
STRIPE\u PUBLIC
在网站中为零。但是每次我们运行
rails控制台
时,我们都会从常量中获取密钥。

我认为您遇到的问题正在发生,因为如果您设置密钥的方式不正确

您不能期望使用rails控制台设置的内容对web应用程序可用。Rails控制台作为自己独特的进程启动,它不与浏览器启动和访问的web进程共享任何内容


如果希望该密钥可用于web应用程序,请尝试将其设置为环境变量,并在stripe.rb文件中相应地读取该密钥

我解决了我的问题。在设置环境变量之前,运行rails服务器的终端已经打开

因此,运行source~/.bashrc(对我来说)或使用新的终端对我来说是可行的


真诚地感谢每一位试图帮助我们的人

我们没有通过
rails控制台设置API键。设置api密钥的行是Stripe.api_key=Stripe_SECRET
,设置Stripe_SECRET的行取决于环境。因此,
environments/development.rb
有一行
STRIPE\u SECRET=ENV['TEST\u STRIPE\u SECRET']
您是否在同一环境中运行这两行?也许您已经将密钥添加到了“environments/development.rb”中,但没有添加到“environments/production.rb”?
environments/production.rb
具有
STRIPE\u SECRET=ENV['LIVE\u STRIPE\u SECRET']
和一个公开版本
environments/development.rb
environments/test.rb
都有
STRIPE\u SECRET=ENV['test\u STRIPE\u SECRET']
和一个公开版本。