Ruby on rails 贝宝环境变量凭证

Ruby on rails 贝宝环境变量凭证,ruby-on-rails,ruby,paypal,Ruby On Rails,Ruby,Paypal,如何为PayPal凭据设置环境变量? 我找了很多,但没有任何线索。 这是中的代码 贝宝 PayPal::SDK.load("config/paypal.yml", Rails.env) PayPal::SDK.logger = Rails.logger merchant_id = "sts9n" public_key = "3jnfbc24f76" private_key = "a0167fd52cf3857e" 您只需将密钥添加到rails凭据: EDITOR=nano-rails凭证:编辑

如何为PayPal凭据设置环境变量? 我找了很多,但没有任何线索。 这是中的代码 贝宝

PayPal::SDK.load("config/paypal.yml", Rails.env)
PayPal::SDK.logger = Rails.logger
merchant_id = "sts9n"
public_key = "3jnfbc24f76"
private_key = "a0167fd52cf3857e"

您只需将密钥添加到rails凭据:

EDITOR=nano-rails凭证:编辑

production:
  paypal:
     client_id: 'qwertzuiop'
     client_secret: 'poiuztrewq'
然后在
config/paypal.yml
中使用此凭据:

[…]
production:
  mode: live
  client_id: <%= Rails.application.credentials.dig(:production, paypal, :client_id) %>
  client_secret: <%= Rails.application.credentials.dig(:production, paypal, :client_secret) %>
config/paypal.yml

[…]
production:
  mode: live
  client_id: PAYPAL_CLIENT_ID
  client_secret: PAYPAL_CLIENT_SECRET

您可以将凭据添加到credentials.yml,如下所示

EDITOR=nano rails credentials:edit
在凭证文件中添加PayPal密钥,如下所示

paypal: 
 development:
  client_id: "sdsdsdvsdvsv"
  client_secret: "sdfsdsdv"
 production:
  client_id: 'sdsdsdvsdvsv'
  client_secret: 'sdsdsdvsdvsv'
然后在配置文件中创建一个名为paypal.YML的YML文件

development:
  client_id: <%= Rails.application.credentials.paypal[:development][:client_id] %>
  client_secret: <%= Rails.application.credentials.paypal[:development][:client_secret] %>

production:
  client_id: <%= Rails.application.credentials.paypal[:production][:client_id] %>
  client_secret: <%= Rails.application.credentials.paypal[:production][:client_secret] %>
  mode: live
这样,当切换到开发到生产时,您不需要更改任何代码

development:
  client_id: <%= Rails.application.credentials.paypal[:development][:client_id] %>
  client_secret: <%= Rails.application.credentials.paypal[:development][:client_secret] %>

production:
  client_id: <%= Rails.application.credentials.paypal[:production][:client_id] %>
  client_secret: <%= Rails.application.credentials.paypal[:production][:client_secret] %>
  mode: live
paypal_config_file = File.join(Rails.root,'config','paypal.yml')
raise "#{paypal_config_file} is missing!" unless File.exists? paypal_config_file
paypal_config = YAML.load(ERB.new(File.read(Rails.root.join('config','paypal.yml'))).result)[Rails.env].symbolize_keys

CLIENT_ID = paypal_config[:client_id]
CLIENT_SECRET = paypal_config[:client_secret]