我目前正在查看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
无法在任何地方使用。
完成指南后,我注意到该行,该应用程序在结账时仍能正常工作。
有人可以解释为什么这条线被包含在第一位,甚至需要它?
答案 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无法告诉你发出请求的人!)。