Определение пользователем изменения параметров автоматического продления раньше времени обновления в приложениях Магазина Windows - PullRequest
0 голосов
/ 24 сентября 2019

Этот вопрос соответствует предоставленным сведениям о пользовательских подписках в Получить подписки для пользователей в Магазине Microsoft. API .

enter image description here Ссылка на изображениевыше, пользователь покупает план подписки monthly auto renewing в день 0, который, как ожидается, будет продлен магазином в день 30. У нас есть задания по обновлению, выполняемые каждые шесть часов, которые выбирают кандидатов, срок действия которых истекает в ближайшие 6 часов или около того.

Итак, где-то на 29-й день будет запущена наша работа по продлению, чтобы проверить, не забрал ли уже магазин пользователя за продление.Во время выполнения задания могут возникать различные состояния сценария:

  1. Подписка пользователя уже продлена для следующего цикла.
  2. Магазин еще не попытался продлить подписку пользователя в Магазине.(маловероятно).
  3. Пользователь решил отключить продление для следующего цикла.
  4. Магазин не смог зарядить пользователя и пытается повторно выставить счет.
  5. Подписка пользователябыл отменен разработчиком (с возмещением или без него).

На основании документации есть два свойства, которые могут помочь нам определить приведенные выше сценарии:

  1. recurrenceState
  2. expirationTime

Исходя из нашего понимания, мы создали эту таблицу для вышеуказанных сценариев:

Case #             Recurrence State           Expiration Time

   1                  Active                     Day 60

   2                  Active                     Day 30

   3                  Active                     Day 30

   4                  InDunning                  Day 30

   5                  Canceled                   Less than day 30

Вопросы

  1. Есть ли способ, которым мы можем различить случаи 2 и 3?

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

  3. Случай 2 маловероятен, поскольку Microsoft Store начинает взимать плату с пользователя за 14 дней до даты продления.В случае сбоя биллинга он переходит в состояние 4. Теперь допустим, что Store взимает плату с пользователя в 14-й день, а он отключает подписку в 20-й день (для следующего цикла), будет ли пользователь возвращен Microsoft и как это отразится на этом состоянии.в ответе API.

PS:

  1. Мы по-прежнему хороши, если нам нужно проверить, истекла ли будущая или текущая дата с текущей даты.

  2. Невозможно, чтобы задание продления, запущенное после 30-го дня, выбрало кандидатов, поскольку наша последующая система автоматически отменит подписку, если она не будет продлена до 30 дня, и мыУ меня нет контроля для изменения этой логики в нисходящей системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...