Я пытаюсь получить веб-крючок Stripe для события payment_succeeded
в подписке.Я хочу убедиться, что оплата прошла успешно, прежде чем я изменю данные на моем сервере, которые указывают на подписку Stripe.
Это выглядит так:
stripe_response = @purchase_service.charge_stripe
purchase = @purchase_service.create_purchases(stripe_response)
Итак, в первой строке мой purchase_service
- это полоса зарядки.Во второй строке я создаю новую запись Subscription
и использую ответ Stripe для установки stripe_subscription_id
на новую запись.
Моя проблема в том, что как только заряд Stripe проходит, половинавремя, когда наступает событие invoice.payment_succeeded
для подписки Stripe до того, как в записи подписки моего сервера будет установлено значение stripe_subscription_id
.Так что в моем контроллере webhooks, когда я пытаюсь найти свою подписку по stripe_subscription_id
, она еще не была установлена.
Я попытался обернуть его в блок начала / восстановления и повторить попытку, если не удается найти подписку.Но все, что делает, это делает действие покупки более продолжительным.Поэтому я предполагаю, что это означает, что действие webhook прерывает действие моего контроллера и обрабатывается в том же потоке выполнения?(поправьте меня, если я ошибаюсь)
Если это так, как лучше всего убедиться, что действие webhook запускается отдельно?Я попытался запустить его в новом потоке, но все, что он делает - работает отдельно с теми же данными, что и при создании нового потока.Я знаю, что это, вероятно, параллелизм 101, но я никогда не тратил время на слишком глубокое погружение.Это то, что я могу исправить во время выполнения?Или мне нужно перенастроить мой сервер?(Пума)