Поделиться через


Изменение состояния выставления счетов за подписку для пользователя

Используйте этот метод в API покупки Microsoft Store, чтобы изменить состояние выставления счетов надстройки подписки для данного пользователя. Вы можете отменить, продлить, вернуть или отключить автоматическое продление подписки.

Примечание.

Этот метод можно использовать только учетными записями разработчиков, подготовленными корпорацией Майкрософт, чтобы создавать надстройки подписки для приложений универсальная платформа Windows (UWP). Надстройки подписки в настоящее время недоступны для большинства учетных записей разработчиков.

Библиотека Microsoft.StoreServices предоставляет функциональные возможности этого метода через API StoreServicesClient.RecurrenceChangeAysnc.

Необходимые компоненты

Чтобы использовать этот метод, вам потребуется:

  • Маркер доступа Azure AD, имеющий значение https://onestore.microsoft.comURI аудитории.
  • Ключ идентификатора Microsoft Store, представляющий удостоверение пользователя, имеющего право на подписку, которую вы хотите изменить.

Дополнительные сведения см. в разделе "Управление правами на продукты из службы".

Запросить

Синтаксис запроса

Способ URI запроса
POST https://purchase.mp.microsoft.com/v8.0/b2b/recurrences/{recurrenceId}/change

Заголовок запроса

Верхний колонтитул Тип Описание
Авторизация строка Обязательный. Маркер доступа Azure AD в маркере> носителя<формы.
Хост строка Необходимо задать значение purchase.mp.microsoft.com.
content-length: 0 number Длина текста запроса.
Тип контента строка Указывает тип запроса и ответа. В настоящее время единственным поддерживаемым значением является application/json.

Параметры запроса

Имя. Тип Описание Обязательное поле
повторение Идентификатора строка Идентификатор подписки, которую вы хотите изменить. Чтобы получить этот идентификатор, вызовите подписки для пользовательского метода, определите запись текста ответа, представляющую надстройку подписки, которую вы хотите изменить, и используйте значение поля идентификатора для записи. Да

Текст запроса

Поле Тип Описание Обязательное поле
b2bKey строка Ключ идентификатора Microsoft Store, представляющий удостоверение пользователя, подписка которого требуется изменить. Да
changeType строка Одна из следующих строк, идентифицирующая тип изменения, которое вы хотите сделать:
  • Отмена: отменяет подписку.
  • Расширение: расширяет подписку. Если указать это значение, необходимо также включить параметр extensionTimeInDays .
  • Возврат: возвращает подписку клиенту.
  • ToggleAutoRenew: отключает автоматическое продление подписки. Если автоматическое продление в настоящее время отключено для подписки, это значение ничего не делает.
Да
extensionTimeInDays строка Если параметр changeType имеет значение Extend, этот параметр указывает количество дней для расширения подписки. Да, если changeType имеет значение Extend; в противном случае — нет.

Пример запроса

В следующем примере показано, как использовать этот метод для продления срока подписки на 5 дней. Замените значение b2bKey ключом идентификатора Microsoft Store, который представляет удостоверение пользователя, подписка которого требуется изменить.

POST https://purchase.mp.microsoft.com/v8.0/b2b/recurrences/mdr:0:bc0cb6960acd4515a0e1d638192d77b7:77d5ebee-0310-4d23-b204-83e8613baaac/change HTTP/1.1
Authorization: Bearer <your access token>
Content-Type: application/json
Host: https://purchase.mp.microsoft.com

{
  "b2bKey":  "eyJ0eXAiOiJ...",
  "changeType": "Extend",
  "extensionTimeInDays": "5"
}

Response

Этот метод возвращает текст ответа JSON, содержащий сведения о надстройке подписки, которая была изменена, включая все измененные поля. В следующем примере показан текст ответа для этого метода.

{
  "items": [
    {
      "autoRenew":true,
      "beneficiary":"pub:gFVuEBiZHPXonkYvtdOi+tLE2h4g2Ss0ZId0RQOwzDg=",
      "expirationTime":"2017-06-16T03:07:49.2552941+00:00",
      "id":"mdr:0:bc0cb6960acd4515a0e1d638192d77b7:77d5ebee-0310-4d23-b204-83e8613baaac",
      "lastModified":"2017-01-10T21:08:13.1459644+00:00",
      "market":"US",
      "productId":"9NBLGGH52Q8X",
      "skuId":"0024",
      "startTime":"2017-01-10T21:07:49.2552941+00:00",
      "recurrenceState":"Active"
    }
  ]
}

Текст ответа

Текст ответа содержит следующие данные.

Значение Тип Описание
autoRenew Логический Указывает, настроена ли подписка на автоматическое продление в конце текущего периода подписки.
бенефициар строка Идентификатор бенефициара права, связанного с этой подпиской.
expirationTime; строка Дата и время истечения срока действия подписки в формате ISO 8601. Это поле доступно только в тех случаях, когда подписка находится в определенных состояниях. Срок действия обычно указывает, когда истекает текущее состояние. Например, для активной подписки срок действия указывает, когда будет происходить следующее автоматическое продление.
dateTimeWithGrace строка Дата и время истечения срока действия подписки, включая льготный период, в формате ISO 8601. Это значение указывает, когда пользователь потеряет доступ к подписке после автоматического продления подписки.
id строка Идентификатор подписки. Используйте это значение, чтобы указать, какая подписка требуется изменить при вызове изменения состояния выставления счетов подписки для пользовательского метода.
isTrial Логический Указывает, является ли подписка пробной.
lastModified строка Дата и время последнего изменения подписки в формате ISO 8601.
на рынок строка Код страны (в двухбуквном формате ISO 3166-1 alpha-2), в котором пользователь приобрел подписку.
productId строка Идентификатор Магазина для продукта, представляющего надстройку подписки в каталоге Microsoft Store. Пример идентификатора магазина для продукта — 9NBLGGH42CFD.
skuId строка Идентификатор магазина для SKU, представляющего надстройку подписки в каталоге Microsoft Store. Пример идентификатора магазина для номера SKU — 0010.
startTime строка Дата начала и время подписки в формате ISO 8601.
recurrenceState строка Одно из следующих значений:
  • Нет. Это означает бессрочную подписку.
  • Активный: подписка активна, и пользователь имеет право использовать службы.
  • Неактивно: подписка за истекает срок действия, и пользователь отключил параметр автоматического продления для подписки.
  • Отменено: подписка была намеренно прекращена до окончания срока действия, с возвратом средств или без него.
  • InDunning: подписка находится в подземелье (т. е. подписка приближается к истечению срока действия, и корпорация Майкрософт пытается получить средства для автоматического продления подписки).
  • Сбой: период подземления истек, и подписка не смогла продлиться после нескольких попыток.

Примечание.

  • Неактивные/отмененные/сбои — это состояния терминала. Когда подписка входит в одно из этих состояний, пользователь должен повторно выкупить подписку, чтобы активировать ее снова. Пользователь не имеет права использовать службы в этих штатах.
  • При отмене подписки срок действия будет обновлен с датой и временем отмены.
  • Идентификатор подписки останется неизменным в течение всего времени существования. Он не изменится, если параметр автоматического продления включен или отключен. Если пользователь повторно выкупает подписку после достижения состояния терминала, будет создан новый идентификатор подписки.
  • Идентификатор подписки должен использоваться для выполнения любой операции в отдельной подписке.
  • При повторном выкупе подписки после отмены или отмены подписки при запросе результатов для пользователя вы получите две записи: один со старым идентификатором подписки в состоянии терминала и новым идентификатором подписки в активном состоянии.
  • Всегда рекомендуется проверять повторение и истечение срока действия, так как обновления повторения могут быть отложены на несколько минут (или иногда часы).
отмена строка Дата и время отмены подписки пользователя в формате ISO 8601.