ruby-on-rails - Ruby on Rails - Stripe - 未提供 API key

标签 ruby-on-rails ruby stripe-payments

我正在为我的网店尝试这个 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/

相关文章:

ruby-on-rails - 如何使用 simple_form 在日期时间字段中仅设置小时?

ruby-on-rails - Sublime Text 2 : How to set up consistent syntax highlighting for Guardfile?

ruby-on-rails - 在vps切片上运行的Ruby on Rails

Ruby:重写 puts 方法

swift - Stripe 集成问题

javascript - 是否可以禁用整个主体(包括内部 iFrame)的填写付款表格?

stripe-payments - strip redirect_uri将不起作用

javascript - haml 模板中的 JS 语句

ruby - 如何有条件地跳过 Cucumber 中的场景?

ruby-on-rails - Rspec 如何 stub 在方法中创建的对象