Я пытаюсь интегрировать API-интерфейс Stripe в проект Rails. Но мне интересно, почему у меня произошел сбой APIConnectionError, когда я проверил, что мое подключение к Интернету в порядке.APIConnectionError with Stripe API
В users_controller.rb
:
def charge
token = params["stripeToken"]
customer = Stripe::Customer.create(
source: token,
plan: 'mysubscriptionlevel1',
email: current_user.email
)
current_user.subscription.stripe_user_id = customer.id
current_user.subscription.active = true
current_user.subscription.save
redirect_to users_info_path
end
В /views/users/_form.html.erb
, у меня есть форма POST-ки на путь /users/charge
URL.
<h4>Begin your £9.99 a month subscription</h4>
<form action="https://stackoverflow.com/users/charge" method="POST" id="payment-form">
<span class="payment-errors"></span>
И в моем routes.rb
файл, у меня есть:
post '/users/charge', to: 'users#charge'
В config/initializer/stripe.rb
, я обязательно полоской и положил ключ API в файле .env.
require "stripe"
Stripe.api_key = ENV["STRIPE_API_KEY"]
Я также включил stripe
камень в моей Gemfile:
gem 'stripe', :git => 'https://github.com/stripe/stripe-ruby'
gem 'dotenv-rails', :groups => [:development, :test]
Я не уверен, что мне не хватает, и это ошибка, которую я получаю, когда я называю charge
действие в users_controller.rb
:
Stripe::APIConnectionError (Unexpected error communicating when trying to connect to Stripe. You may be seeing this message because your DNS is not working. To check, try running 'host stripe.com' from the command line.
(Network error: Failed to open TCP connection to : (getaddrinfo: nodename nor servname provided, or not known))):
что это значит в DNS не работает, и как я могу отладить, просто выдав «хост stripe.com»
любой шанс, что вы находитесь за брандмауэром? – shivam
Спасибо, в этом была проблема. Я переключил прокси-сервер, и он работает сейчас. –