Синхронизирующие полоски веб-хуков и сохранение изменений в базе данных - PullRequest
0 голосов
/ 01 мая 2019

У меня есть веб-приложение asp.net, которое использует Stripe для обработки платежей по подписке.Я сталкиваюсь со сценарием, в котором Stripe отправляет события webhook, прежде чем я сохраню изменения в своей базе данных, поэтому, когда я начинаю обрабатывать webhooks, мои данные не синхронизируются.Например:

  1. Обновление пользователя с бесплатного до платного плана
  2. Я вызываю конечную точку подписки на обновления Stripe, чтобы изменить пользователя с бесплатного на платный план
  3. Успешный платеж с помощью чередования полосwebhook
  4. Мое приложение обрабатывает webhook, и я успешно обнаружил объект подписки в моей базе данных, но он еще не настроен на новый план
  5. Обновление подписки Call to Stripe на шаге 2 возвращается какУспешно, и мое приложение обновляет базу данных, назначая ее новому плану

Итак, проблема в том, что веб-зацепки Stripe запускаются до завершения вызова подписки на обновление.Я не хочу обновлять свою базу данных до тех пор, пока не вернется вызов, чтобы убедиться, что моя база данных не вышла из синхронизации.

Моя текущая идея - ставить в очередь события Stripe webhook по мере их поступления и обрабатывать их посленекоторая задержкаНо возникает несколько вопросов:

  1. Как долго я устанавливаю задержку для?
  2. Как узнать, когда я обрабатываю веб-крюк, что исходный вызов завершен, и моя база данных имеетбыл обновлен?
  3. Есть ли другие ошибки, о которых я не думал?
...