Ruby on rails 未经授权-未提供有效的API密钥

Ruby on rails 未经授权-未提供有效的API密钥,ruby-on-rails,stripe-payments,activemerchant,Ruby On Rails,Stripe Payments,Activemerchant,我一直在关注Ryan Bates的Railscast“集成活动商户”,在对它的工作进行了一些调整之后,或者至少我没有收到Rails中的任何错误。当我检查我的条带帐户中的日志时,我看到以下内容: 键入:“无效的\u请求\u错误”消息:“无法使用可发布的API密钥进行此API调用。请使用机密API密钥。 这是一个未经授权的401-未提供有效的API密钥。错误 在我的开发环境中,我有以下代码。我仔细检查了这些键,看看它们是否混淆了 ActiveMerchant::Billing::Base.mode

我一直在关注Ryan Bates的Railscast“集成活动商户”,在对它的工作进行了一些调整之后,或者至少我没有收到Rails中的任何错误。当我检查我的条带帐户中的日志时,我看到以下内容:

键入:“无效的\u请求\u错误”
消息:“无法使用可发布的API密钥进行此API调用。请使用机密API密钥。

这是一个未经授权的
401-未提供有效的API密钥。
错误

在我的开发环境中,我有以下代码。我仔细检查了这些键,看看它们是否混淆了

ActiveMerchant::Billing::Base.mode = :test
::GATEWAY = ActiveMerchant::Billing::StripeGateway.new(

  :login => 'pk_test_yfredactedredactedfA',
  :password => 'sk_test_Rrredactedredacted2J')
Development.log显示:

Processing by OrdersController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"ZWredactedredactedredactedredactedad4=", "order"=>{"first_name"=>"", "last_name"=>"", "email"=>"", "address_1"=>"", "address_2"=>"", "city"=>"", "postal_code"=>"", "country_code"=>"United Kingdom", "card_number"=>"", "security_code"=>"", "card_expires_on(3i)"=>"1", "card_expires_on(2i)"=>"5", "card_expires_on(1i)"=>"2014"}, "commit"=>"Confirm and pay"}
[1m[36mProduct Load (0.1ms)[0m  [1mSELECT "products".* FROM "products" WHERE "products"."id" = ? LIMIT 1[0m  [["id", 2]]
[1m[35m (0.1ms)[0m  begin transaction
[1m[36mSQL (0.4ms)[0m  [1mINSERT INTO "orders" ("created_at", "updated_at") VALUES (?, ?)[0m  [["created_at", Tue, 06 May 2014 11:05:16 UTC +00:00], ["updated_at", Tue, 06 May 2014 11:05:16 UTC +00:00]]
[1m[36m (6.1ms)[0m  [1mcommit transaction[0m
[1m[35m (0.2ms)[0m  SELECT SUM("products"."price") AS sum_id FROM "products" WHERE "products"."id" IN (2)
虽然我不确定它是否有用

谢谢

根据:

除了现场和测试模式, 还有两种类型的密钥secretpublishible密钥

可发布的API密钥仅用于通过Stripe标识您的帐户,它们不是秘密。换句话说,它们可以安全地发布在Stripe.js javascript代码或Android或iPhone应用程序中。可发布的密钥只能创建令牌

SecretAPI密钥永远不应发布,并且必须在您自己的服务器上保密。这些密钥可以执行任何API请求,无限制地进行条带化

您永远不需要同时使用它们,您可以使用其中一个。您发布的错误状态为:

无法使用可发布的API密钥进行此API调用。请使用机密API密钥

您可以将键与前几个字符区分开来:

pk_test_... - publishable key for test mode
sk_test_... - secret key for test mode
因此,您需要在提供可发布密钥之前提供密钥。在ActiveMerchant中使用密钥:

transaction = ActiveMerchant::Billing::StripeGateway.new(:login => STRIPE_SECRET_KEY)

(注意,没有
:密码
给定。)

开发日志上怎么说,你能发布它吗?如果这些密钥是真的,我建议你现在就更改它们(不要再公开发布)。我认为它们不太可能都包含“redactedredacted”我的坏消息,我没有意识到:(