Я использую Stripe для обработки платежей по подписке.У меня есть PaymentsController
, который обрабатывает, когда пользователь вводит данные своей кредитной карты.Stripe создает пользователя и присоединяет к нему подписку.Камень Stripe обрабатывает эти сетевые запросы.Тем не менее, я хотел бы отобразить ошибку json, если Stripe обнаружит ошибку в любой момент во время запроса на создание пользователя или присоединение подписки.Есть ли способ обрабатывать ошибки сетевых запросов по гемам?
payment_controller.rb
class Api::V1::PaymentsController < ApplicationController
before_action :authenticate_user!
def create
Stripe.api_key = ENV['STRIPE_SECRET_KEY_TEST']
// render an error if there is an issue creating a customer
customer = Stripe::Customer.create({
email: current_user.email,
source: request.params[:id]
})
stripe_plan = ENV['STRIPE_PLAN_ID_TEST']
// render an error if there is an issue creating a subscription
subscription = Stripe::Subscription.create({
customer: customer.id,
items: [{ plan: stripe_plan }],
})
current_user.subscription_plan = 1
current_user.save
if current_user.save
render json: { 'success': true }, status: 200
else
render json: { 'error': 'Some error with saving user here' }, status: 500
end
end
end