У меня возникли проблемы с получением данных из Stripe в мое приложение rails. Это странно, потому что он только начал ломаться в эти выходные, и я не знаю, почему. Откат кода к предыдущему коммиту, когда я точно знаю, на каких страницах работал этот код, не сработал. В этом предыдущем коммите код все еще не работает. Кроме того, я не изменил код. Я пытаюсь понять, что не так. Я определил, в какой строке кода возникла проблема, но я не уверен, что происходит.
Ранее в представлении у нас был следующий код. Этот код работал до этих выходных.
<%= @stripe_details[:active_card][:type] %>, ending in <%= @stripe_details[:active_card][:last4] %><br/>
Это поддерживалось следующим кодом в контроллере:
if current_user.stripe_id
@stripe_details = Stripe::Customer.retrieve(current_user.stripe_id).to_hash
end
Изучив документацию по API Stripe, выяснилось, что проблема в том, что Stripe не возвращает active_card. Он возвращает default_card. Однако, когда я переключил код на следующее:
<%= @stripe_details[:default_card][:type] %>, ending in <%= @stripe_details[:default_card][:last4] %><br/>
Я получил ошибку: не могу преобразовать символ в целое число.
Я понятия не имею, что происходит, потому что, как я уже сказал, версия в начале поста работала без проблем, пока вдруг не перестала. Возможно, стоит упомянуть, что то, что казалось потенциально триггерным событием для этого, заключалось в том, что я случайно отправил и развернул код с тестовыми ключами API вместо живых ключей, а учетная запись пользователя была создана с живыми ключами. Однако я уловил это и изменил коды на правильные живые ключи, и эта проблема начала возникать. (Когда использовались неправильные ключи, я получал ошибку о том, что клиент не существует в тестовой версии базы данных Stripe.)
Я просто озадачен тем, а) как наш код работал, когда мы вызывали не ту вещь из API (я унаследовал этот код) и б) почему он перестал работать и как заставить его работать снова. Что сломано? Спасибо.