我正在使用Rails 5,Ruby 2.4.0和stripe
gem构建应用程序。
我有一个产品支架,当我创建一个产品时,如果它保存我希望它然后将产品发送到条带并在那里创建产品,并将条带产品ID返回到产品记录。
它自己保存的产品,因为我可以在控制台中查询它并且它出现在索引页面上,但是当它发送到条带时我得到以下错误。
我的ApplicationController文件:
class ApplicationController < ActionController::Base
require "stripe"
protect_from_forgery with: :exception
end
我的FULL条带初始化文件: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]
我的产品控制器创建操作:
def create
@product = Product.new(product_params)
respond_to do |format|
if @product.save
format.html { redirect_to @product, notice: 'Product was successfully created.' }
format.json { render :show, status: :created, location: @product }
product = Stripe::Product.create({
name: @product.prod_name,
type: @product.prod_type,
statement_descriptor: @product.statement_descriptor,
unit_label: @product.unit_label,
product_status: @product.product_status
})
else
format.html { render :new }
format.json { render json: @product.errors, status: :unprocessable_entity }
end
end
end
这里的任何帮助都会非常感激,因为我对条纹的经验很少,我似乎无法解决这个问题!
答案 0 :(得分:2)
您需要配置STRIPE_PUBLISHABLE_KEY
&amp; STRIPE_SECRET_KEY
到您的config/application.yml
文件
您需要设置条带STRIPE_PUBLISHABLE_KEY
& STRIPE_SECRET_KEY
以安全地设置这些密钥,您可以在安装Figaro gem之后使用figaro gem
,然后在config
目录中创建一个名为application.yml
的文件你可以像这样设置你的钥匙
STRIPE_PUBLISHABLE_KEY: pk_test_xxxxxxxxxx
STRIPE_SECRET_KEY: pk_test_xxxxxxxxxxxxx
然后更新stripe.rb
内的config/initializers/
Rails.configuration.stripe = {
:publishable_key => ENV['STRIPE_PUBLISHABLE_KEY'],
:secret_key => ENV['STRIPE_SECRET_KEY']
}
Stripe.api_key = Rails.configuration.stripe[:secret_key]
就是这样,你做到了。
答案 1 :(得分:0)
您需要将可发布密钥和密钥设置为环境变量(或硬编码)