【问题标题】:Paypal environment variables credentialsPaypal 环境变量凭据
【发布时间】:2020-04-10 21:07:06
【问题描述】:

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

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

【问题讨论】:

    标签: ruby-on-rails ruby paypal


    【解决方案1】:

    您可以将您的凭据添加到 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
    

    然后在 initializers 文件夹中创建一个 paypal.rb 文件

    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]
    

    这样,在切换到开发到生产时,您不需要更改任何代码。

    【讨论】:

      【解决方案2】:

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

      EDITOR=nano rails credentials:edit

      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/environments/production.rb

      PAYPAL_CLIENT_ID = Rails.application.credentials.dig(:production, paypal, :client_id)
      PAYPAL_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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-10
        • 1970-01-01
        • 2014-12-29
        • 2020-12-21
        • 2012-01-22
        • 2020-08-13
        • 2021-10-22
        • 1970-01-01
        相关资源
        最近更新 更多