Запрос продуктов

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

Этот метод вызывается вашей службой в ответ на сообщение из вашего приложения. Ваша служба не должна регулярно опрашивать всех пользователей в расписании.

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

Предварительные требования

Для использования этого метода вам понадобится:

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

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

Запрос

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

Метод Универсальный код ресурса (URI) запроса
POST https://collections.mp.microsoft.com/v6.0/collections/query

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

Заголовок Тип Описание
Авторизация строка Обязательный. Маркер доступа Azure AD в видемаркера>носителя<.
Узел строка Должен иметь значение collections.mp.microsoft.com.
Content-Length number Длина текста запроса.
Content-Type строка Указывает тип запросов и ответов. На данный момент единственным поддерживаемым значением является application/json.

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

Параметр Тип Описание Обязательно
beneficiaries list<UserIdentity> Список объектов UserIdentity, представляющих пользователей, которым запрашиваются продукты. Дополнительные сведения см. в таблице ниже. Да
continuationToken строка Если имеется несколько наборов продуктов, то по достижении лимита для страницы тело ответа возвращает маркер продолжения. Укажите здесь этот маркер продолжения, чтобы в последующих вызовах получить информацию об оставшихся продуктах. Нет
maxPageSize number Максимальное количество продуктов, возвращаемых в одном ответе. Стандартное и максимальное значение — 100. Нет
modifiedAfter DATETIME Если параметр указан, служба возвращает только продукты, которые были изменены после этой даты. Нет
parentProductId строка Если параметр указан, служба возвращает только надстройки, которые соответствуют указанному приложению. Нет
productSkuIds list<ProductSkuId> Если параметр указан, служба возвращает только продукты, соответствующие предоставленным парам «продукт — SKU». Дополнительные сведения см. в таблице ниже. Нет
productTypes строка списка<> Указывает типы продуктов, возвращаемые в результатах запроса. Поддерживаемые типы продуктов: Application, Durable, Game и UnmanagedConsumable. Да
validityType строка Если выбрано значение All, возвращаются все продукты пользователя, в том числе продукты с истекшим сроком. Если выбрано значение Valid, возвращаются только продукты, действительные на данный момент (то есть в активном состоянии, с датой начала < ранее текущего момента и датой окончания > позднее текущего момента). Нет

Объект UserIdentity содержит следующие параметры.

Параметр Тип Описание Обязательно
identityType строка Укажите строковое значение b2b. Да
identityValue строка Ключ идентификатора Microsoft Store, представляющий пользователя, продукты которого вы хотите запросить. Да
localTicketReference строка Запрошенный идентификатор для возвращаемых продуктов. Элементы, возвращаемые в теле ответа, будут иметь соответствующее значение параметра localTicketReference. Рекомендуется использовать то же значение, что и в утверждении userId в ключе идентификатора Microsoft Store. Да

Объект ProductSkuId содержит следующие параметры.

Параметр Тип Описание Обязательно
productId строка Код продукта в Store в каталоге Microsoft Store. Пример кода продукта в Магазине: 9NBLGGH42CFD. Да
skuId строка Код SKU продукта в Store в каталоге Microsoft Store. Пример кода продукта в Магазине для номера SKU: 0010. Да

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

POST https://collections.mp.microsoft.com/v6.0/collections/query HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1Q…….
Host: collections.mp.microsoft.com
Content-Length: 2531
Content-Type: application/json

{
  "maxPageSize": 100,
  "beneficiaries": [
    {
      "localTicketReference": "1055521810674918",
      "identityValue": "eyJ0eXAiOiJ……",
      "identityType": "b2b"
    }
  ],
  "modifiedAfter": "\/Date(-62135568000000)\/",
  "productSkuIds": [
    {
      "productId": "9NBLGGH5WVP6",
      "skuId": "0010"
    }
  ],
  "productTypes": [
    "UnmanagedConsumable"
  ],
  "validityType": "All"
}

Ответ

Текст ответа

Параметр Тип Описание Обязательно
continuationToken строка Если имеется несколько наборов продуктов, то по достижении лимита для страницы возвращается этот маркер. Вы можете указать маркер продолжения в последующих вызовах для извлечения остальных продуктов. Нет
items CollectionItemContractV6 Массив продуктов для указанного пользователя. Дополнительные сведения см. в таблице ниже. Нет

Объект CollectionItemContractV6 содержит следующие параметры.

Параметр Тип Описание Обязательно
acquiredDate DATETIME Дата приобретения элемента пользователем. Да
campaignId строка Идентификатор кампании, предоставленный во время покупки для этого элемента. Нет
devOfferId строка Идентификатор предложения покупки из приложения. Нет
endDate DATETIME Дата окончания срока действия элемента. Да
fulfillmentData строка списка<> Н/Д Нет
inAppOfferToken строка Указанная разработчиком строка идентификатора продукта, назначенная элементу в Центре партнеров. Пример идентификатора продукта — product123. Нет
itemId строка Идентификатор, отличающий этот элемент коллекции от других элементов, принадлежащих пользователю. Этот идентификатор уникален для каждого продукта. Да
localTicketReference строка Идентификатор ранее предоставленного в тексте запроса параметра localTicketReference. Да
modifiedDate DATETIME Дата последнего изменения элемента. Да
orderId строка Если он указан, идентификатор заказа, из которого был получен данный элемент. Нет
orderLineItemId строка Если указан, означает позицию конкретного заказа данного элемента. Нет
ownershipType строка Строка OwnedByBeneficiary. Да
productId строка Код продукта в Store для продукта в каталоге Microsoft Store. Пример кода продукта в Магазине: 9NBLGGH42CFD. Да
productType строка Один из следующих типов продукта: Application, Durable и UnmanagedConsumable. Да
purchasedCountry строка Н/Д Нет
purchaser IdentityContractV6 Если он указан, означает удостоверение покупателя элемента. Сведения для этого объекта см. ниже. Нет
quantity number Количество экземпляров элемента. На данный момент это значение всегда составляет 1. Нет
skuId строка Код продукта в Store для SKU продукта в каталоге Microsoft Store. Пример кода продукта в Магазине для номера SKU: 0010. Да
skuType строка Тип SKU. Возможные значения включают Trial, Full и Rental. Да
startDate DATETIME Дата, начиная с которой элемент действителен. Да
status строка Состояние элемента. Возможные значения включают Active, Expired, Revoked и Banned. Да
tags строка списка<> Н/Д Да
transactionId guid Идентификатор транзакции в результате покупки элемента. Может использоваться для объявления элемента в качестве выполненного. Да

Объект IdentityContractV6 содержит следующие параметры.

Параметр Тип Описание Обязательно
identityType строка Содержит значение pub. Да
identityValue строка Строковое значение publisherUserId конкретного ключа идентификатора Microsoft Store. Да

Пример ответа

HTTP/1.1 200 OK
Content-Length: 7241
Content-Type: application/json
MS-CorrelationId: 699681ce-662c-4841-920a-f2269b2b4e6c
MS-RequestId: a9988cf9-652b-4791-beba-b0e732121a12
MS-CV: xu2HW6SrSkyfHyFh.0.1
MS-ServerId: 020022359
Date: Tue, 22 Sep 2015 20:28:18 GMT

{
  "items" : [
    {
      "acquiredDate" : "2015-09-22T19:22:51.2068724+00:00",
      "devOfferId" : "f9587c53-540a-498b-a281-8a349491ed47",
      "endDate" : "9999-12-31T23:59:59.9999999+00:00",
      "fulfillmentData" : [],
      "inAppOfferToken" : "consumable2",
      "itemId" : "4b8fbb13127a41f299270ea668681c1d",
      "localTicketReference" : "1055521810674918",
      "modifiedDate" : "2015-09-22T19:22:51.2513155+00:00",
      "orderId" : "4ba5960d-4ec6-4a81-ac20-aafce02ddf31",
      "ownershipType" : "OwnedByBeneficiary",
      "productId" : "9NBLGGH5WVP6",
      "productType" : "UnmanagedConsumable",
      "purchaser" : {
        "identityType" : "pub",
        "identityValue" : "user123"
      },
      "skuId" : "0010",
      "skuType" : "Full",
      "startDate" : "2015-09-22T19:22:51.2068724+00:00",
      "status" : "Active",
      "tags" : [],
      "transactionId" : "4ba5960d-4ec6-4a81-ac20-aafce02ddf31"
    }
  ]
}