Stripe::AuthenticationError Не указан ключ API
Работаю с Rails 6.1.3, Ruby 3.0 + Stripe, но я продолжаю получать эту ошибку, даже если думаю, что правильно включил все ключи:
конфигурация> инициализаторы> stripe.rb
Rails.configuration.stripe = {
:publishable_key => Rails.application.secrets.publishable_key,
:secret_key => Rails.application.secrets.secret_key
}
Stripe.api_key = Rails.configuration.stripe[:secret_key]
приложение> secrets.yml
development:
publishable_key: "pk_test_51ILY7..."
secret_key: "sk_test_51ILY7..."
В терминале, как только я вызываю EDITOR=nano rails credentials: edit, я вижу вот что:
stripe:
development:
publishable_key: 'pk_test_51ILY7...'
secret_key: 'sk_test_51ILY7...'
production:
publishable_key: 'pk_live_51ILY7...'
secret_key: 'sk_live_51ILY7...'
И ошибка, которую я вижу в своем терминале Rails
Started POST "/checkout/create_order" for ::1 at 2021-02-22 18:25:10 +0100
Processing by CheckoutController#create_order as JS
Parameters: {"authenticity_token"=>"[FILTERED]", "id"=>"1"}
Order Load (0.9ms) SELECT "orders".* FROM "orders" WHERE "orders"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
↳ app/controllers/checkout_controller.rb:6:in `create_order'
Completed 500 Internal Server Error in 24ms (ActiveRecord: 0.9ms | Allocations: 1751)
Stripe::AuthenticationError (No API key provided. Set your API key using "Stripe.api_key = <API-KEY>". You can generate API keys from the Stripe web interface. See https://stripe.com/api for details, or email support@stripe.com if you have any questions.):
Есть идеи, в чем проблема?
Спасибо
2 ответа
Вам необходимо убедиться, что переменные среды действительно инициализируются. Возможно ли, что контроллер работает без
stripe.rb
инициализация?
Вы можете распечатать
p Stripe.api_key
в качестве диагностики в обработчике запросов, чтобы убедиться, что он настроен. Однако убедитесь, что он нигде не регистрируется, и предпочитайте использовать тестовый ключ.
Возможно, возникла проблема с вашими переменными среды, попробуйте следующее в файле Stripe.rb:
module YourApp
class Application < Rails::Application
config.after_initialize do
# initialization code goes here
Stripe.api_key = Rails.application.credentials[:stripe][:secret]
end
end
end
Также не забудьте добавить ключи API в файл учетных данных с помощью редактора VIM. В вашем терминале введите: EDITOR = vim rails credentials: edit, а затем добавьте свой секретный и открытый ключи API:
Надеюсь, поможет.