我正在为我的网店尝试这个 Stripe 快速结帐,表单看起来很好,但是当重定向并运行 charges#create 时,我收到一条错误消息,提示 未提供 API key 。使用“Stripe.api_key =”设置您的 API key 。 据我所知,我已经在 stripe.rb
中设置了它 Rails.configuration.stripe = {
:publishable_key => Rails.application.secrets.stripe_publishable_key,
:secret_key => Rails.application.secrets.stripe_secret_key
}
Stripe.api_key = Rails.application.secrets.stripe_secret_key
错误出现在charges_controller.rb
class ChargesController < ApplicationController
require 'stripe'
def index
render :new
end
def new
end
def create
# Amount in cents
@amount = 500
customer = Stripe::Customer.create(
:email => params[:stripeEmail],
:source => params[:stripeToken]
)
charge = Stripe::Charge.create(
:customer => customer.id,
:amount => @amount,
:description => 'Rails Stripe customer',
:currency => 'usd'
)
rescue Stripe::CardError => e
flash[:error] = e.message
redirect_to new_charge_path
end
end
这也是我如何设置我的 secrets.yml
shared:
stripe_api_key: sk_test_####################
stripe_publishable_key: pk_test_###############
secret_key_base: ##############################
这是一个 gif,显示当我在 strip 支付 session 中点击支付时会发生什么:imgur gif
最佳答案
尝试在 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]
我用过的其他
看你需要设置 strip STRIPE_PUBLISHABLE_KEY
& STRIPE_SECRET_KEY
为了安全地设置这些 key ,您可以使用 figaro gem
安装 Figaro gem 后,将在 config
目录中创建一个名为 application.yml
的文件,您可以像这样设置 key
STRIPE_PUBLISHABLE_KEY: pk_xxxxxxxxxxxxxxxxxxxx
STRIPE_SECRET_KEY: sk_xxxxxxxxxxxxxxxxxxxxxxx
然后在 config/initializers/
中更新你的 stripe.rb
Rails.configuration.stripe = {
:publishable_key => ENV['STRIPE_PUBLISHABLE_KEY'],
:secret_key => ENV['STRIPE_SECRET_KEY']
}
Stripe.api_key = Rails.configuration.stripe[:secret_key]
就是这样,你已经做到了。
关于ruby-on-rails - Ruby on Rails - Stripe - 未提供 API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49613647/