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:

Файл учетных данных

Надеюсь, поможет.

Другие вопросы по тегам