Я использую gem stripe_event с stripe webhook.
Мой начальный код:
config / initializers / stripe.rb
StripeEvent.configure do |events|
events.subscribe 'checkout.session.completed', StripeCheckoutSessionService.new
end
app / services / stripe_checkout_session_service. rb
class StripeCheckoutSessionService
def call(event)
order = Order.find_by(checkout_session_id: event.data.object.id)
order.update(state: "paid")
end
end
Моя проблема в том, что если порядок равен нулю, у меня ошибка 500, и вместо этого я хочу получить ошибку 422.
Я пытаюсь это сделать:
app / services / stripe_checkout_session_service.rb
class StripeCheckoutSessionService
def call(event)
order = Order.find_by(checkout_session_id: event.data.object.id)
if order
order.update(state: "paid")
head :accepted
else
head :unprocessable_entity
end
end
end
заголовок не распознается службой, вместо этого я пытаюсь вернуть строку и вернуть заголовок непосредственно в блок, но сейчас я заблокирован ...
У кого-нибудь есть идеи для меня?