Ruby on rails 条纹';s轨';s结帐指南代码说明

Ruby on rails 条纹';s轨';s结帐指南代码说明,ruby-on-rails,stripe-payments,Ruby On Rails,Stripe Payments,我目前正在查看Stripe中的以下内容,并发现了这段代码 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中的以下内容,并发现了这段代码

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\u key=Rails.configuration.Stripe[:secret\u key]到底在做什么?快速按CTRL+F组合键后,
Stripe.api\u键
不会在任何地方使用

在完成指南后,我评论了这句话,并且该应用程序在签出时仍然可以正常工作


有人能解释一下为什么这一行被包括在第一位,它甚至是必要的吗?

在调用Stripe的API时,您需要提供您的密钥,以便Stripe能够识别您

因此,
Stripe.api_key
由内部使用,以代表您进行api调用

令人惊讶的是,当您注释这一行时,您的应用程序会正常工作,因为如果您不指定密钥,所有API调用都会失败,出现以下异常:

条带::AuthenticationError
:未提供API密钥。使用“Stripe.API_key=”设置API密钥。您可以从Stripe web界面生成API密钥。有关详细信息,请参阅,或发送电子邮件support@stripe.com如果你有任何问题


请注意,当它成功地将卡详细信息转换为令牌时,将显示绿色复选标记。这并不意味着电荷已经产生了!这可能就是为什么您认为注释掉
Stripe.api_key
没有效果,但是如果您在仪表板中查看,您应该会看到令牌创建请求后面没有费用创建请求(因为没有api密钥,Stripe无法判断是您发出了请求!).

可发布的API
密钥仅用于用Stripe标识您的帐户,它们不是秘密。换句话说,它们可以安全地发布在Stripe.js JavaScript代码或Android或iPhone应用程序中。可发布密钥只能创建令牌
Secret API
密钥永远不应发布,并且必须在您自己的服务器上保密。这些密钥可以不受限制地执行任何对条带化的API请求。参考: