Rails 5 Stripe :: AuthenticationError - 创建产品

时间:2018-04-08 02:00:42

标签: ruby-on-rails stripe-payments

我正在使用Rails 5,Ruby 2.4.0和stripe gem构建应用程序。

我有一个产品支架,当我创建一个产品时,如果它保存我希望它然后将产品发送到条带并在那里创建产品,并将条带产品ID返回到产品记录。

它自己保存的产品,因为我可以在控制台中查询它并且它出现在索引页面上,但是当它发送到条带时我得到以下错误。

Stripe Authentication Error

我的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

这里的任何帮助都会非常感激,因为我对条纹的经验很少,我似乎无法解决这个问题!

2 个答案:

答案 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)

您需要将可发布密钥和密钥设置为环境变量(或硬编码)