2015-09-06 67 views
1

我目前正在從Stripe中查找以下guide,並遇到了這段代碼。Stripe's Rail的Checkout指南代碼澄清

Rails.configuration.stripe = { 
    :publishable_key => ENV['stripe_test_publishable_key'], 
    :secret_key  => ENV['stripe_test_secret_key'] 
} 

Stripe.api_key = Rails.configuration.stripe[:secret_key] 

我想我明白上半部分在說什麼,但究竟是Stripe.api_key = Rails.configuration.stripe[:secret_key]在做什麼?做了一個快速CTRL + F之後,Stripe.api_key不會在任何地方使用。

完成指南後,我注意到該行和應用程序在檢出時仍然正常工作。

有人可以解釋爲什麼該行被列入第一位,它甚至需要嗎?

+0

'可發佈的API'鍵僅用於識別您的Stripe賬號,它們不是祕密。換句話說,他們可以安全地發佈在Stripe.js JavaScript代碼等地方或Android或iPhone應用程序中。可發佈的密鑰只能創建令牌。 '祕密API'鍵絕不應該發佈,並且必須保密在您自己的服務器上。這些密鑰可以不受限制地對Stripe執行任何API請求。參考:https://stripe.com/docs/tutorials/dashboard – Athar

回答

2

在調用Stripe的API時,您需要提供您的密鑰,以便Stripe能識別您。

因此Stripe.api_keyStripe Ruby gem在內部用於代表您進行API調用。

這是令人驚訝的是你的應用程序時,你對此有何評論這條線的工作,因爲如果你不指定鍵,所有的API調用將失敗,但以下情況除外:

Stripe::AuthenticationError:沒有API密鑰提供。使用「Stripe.api_key =」設置您的API密鑰。您可以從Stripe Web界面生成API密鑰。詳情請參閱https://stripe.com/api,如果您有任何疑問,請發送郵件至[email protected]

請注意,Checkout將在成功將卡片詳細信息轉換爲令牌時顯示綠色複選標記。這並不意味着收費已經創建完畢!這可能是爲什麼你認爲註釋掉Stripe.api_key沒有任何作用,但是如果你在儀表板中檢查了logs,你應該看到創建請求後沒有收到創建請求(因爲沒有你的API密鑰,Stripe沒有告訴你是誰提出了請求!)。