Stripe的Rail's Checkout指南代码说明

时间:2015-09-06 19:01:49

标签: ruby-on-rails stripe-payments

我目前正在查看Stripe中的以下guide,并遇到了这段代码。

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无法在任何地方使用。

完成指南后,我注意到该行,该应用程序在结账时仍能正常工作。

有人可以解释为什么这条线被包含在第一位,甚至需要它?

1 个答案:

答案 0 :(得分:2)

在调用Stripe的API时,您需要提供密钥,以便Stripe可以识别您的身份。

因此,Stripe Ruby gem在内部使用Stripe.api_key代表您进行API调用。

令您惊讶的是,当您对此行发表评论时,您的应用会发挥作用,因为如果您未指定密钥,则所有API调用都将失败,但出现以下异常:

  

Stripe::AuthenticationError:未提供API密钥。使用“Stripe.api_key =”设置API密钥。您可以从Stripe Web界面生成API密钥。有关详细信息,请参阅https://stripe.com/api,如果您有任何疑问,请发送电子邮件至support@stripe.com。

请注意,Checkout会在成功将卡片详细信息转换为令牌时显示绿色复选标记。这并不意味着收费已经创造了!这可能就是为什么您认为评论Stripe.api_key无效,但如果您在信息中心中检查logs,则应该会看到令牌创建请求后面没有收费创建请求(因为没有你的API密钥,Stripe无法告诉你发出请求的人!)。