Rails& Heroku | Stripe :: AuthenticationError(未提供API密钥)

时间:2015-08-22 19:24:49

标签: ruby-on-rails heroku stripe-payments

我在尝试处理付款时收到此错误,但我无法查看我出错的地方:

配置/初始化/ stripe.rb

Rails.configuration.stripe = {
  :publishable_key => ENV['stripe_publishable_key'],
  :secret_key      => ENV['stripe_api_key']
}

Stripe.api_key = Rails.configuration.stripe[:secret_key]

application.yml(figaro):

production:
  stripe_api_key: XXXXXX
  stripe_publishable_key: XXXXXX

然后我跑了" figaro heroku:set -e production"我收到显示所有正确设置键的成功消息。

我错过了什么?

编辑:添加了heroku仪表板截图

enter image description here

1 个答案:

答案 0 :(得分:0)

在stripe.rb文件中,最后一行应查找[:stripe_api_key]而不是[:secret_key],因此应为:

 Select distinct tblProducts.Id, Name, Description
    from tblProducts
    inner join tblProductSales
    on tblProducts.Id= tblProductSales.ProductId

更改它,它应该可以工作。

(我知道这是一个老问题,但是我想在搜索此主题时回答它)。

注意-现在Rails 5.2文件看起来像这样:

config / initializers / stripe.rb

Stripe.api_key = Rails.configuration.stripe[:stripe_api_key]

只需确保密钥名称(即[:stripe_publishable_key]与您的certificate.yml.enc文件中的名称匹配。就我而言,我为每个密钥都添加了条带,以便可以清楚地查找到我要查找的可发布和私有密钥..但这只是我:)

我的credintials.yml.enc文件如下:

Rails.configuration.stripe = {
  :publishable_key => Rails.application.credentials.stripe[:stripe_publishable_key],    
  :secret_key => Rails.application.credentials.stripe[:stripe_secret_key]    
}    
Stripe.api_key = Rails.application.credentials.stripe[:stripe_secret_key]

希望这对以后的人有帮助。