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

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

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

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

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

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

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

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

Запросить

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

Способ URI запроса
ПОСТ https://collections.mp.microsoft.com/v6.0/collections/query

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

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

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

Параметр Тип Описание Обязательное поле
Бенефициаров список<ИдентификацияПользователя> Список объектов UserIdentity, представляющих пользователей, запрашиваемых для продуктов. Дополнительные сведения см. в таблице ниже. Да
токен продолжения строка Если существует несколько наборов продуктов, текст ответа возвращает маркер продолжения при достижении ограничения страницы. Укажите этот маркер продолжения здесь в последующих вызовах для получения оставшихся продуктов. нет
максРазмерСтраницы число/номер Максимальное количество продуктов, возвращаемых в одном ответе. Значение по умолчанию и максимальное значение — 100. нет
измененоПосле дата/время Если указано, служба возвращает только продукты, которые были изменены после этой даты. нет
parentProductId (идентификатор родительского продукта) строка Если указано, служба возвращает только надстройки, соответствующие указанному приложению. нет
идентификаторы продукта SKU список<ProductSkuId> Если задано, служба возвращает только продукты, применимые к предоставленным парам product/SKU. Дополнительные сведения см. в таблице ниже. нет
типы продуктов Строка списка<> Указывает, какие типы продуктов возвращаются в результатах запроса. Поддерживаемые типы продуктов: Application, Durable, Game и UnmanagedConsumable. Да
тип действительности строка Если задано значение All, будут возвращены все продукты для пользователя, включая просроченные элементы. Если задано значение "Допустимый", возвращаются только продукты, допустимые на данный момент времени (то есть они имеют активное состояние, дату < начала и дату окончания).> нет

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

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

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

Параметр Тип Описание Обязательное поле
productId строка Идентификатор Магазина для продукта в каталоге Microsoft Store. Пример идентификатора магазина для продукта — 9NBLGGH42CFD. Да
skuId строка Идентификатор магазина для номера SKU продукта в каталоге 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"
}

Ответ

Текст ответа

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

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

Параметр Тип Описание Обязательное поле
дата приобретения дата/время Дата, по которой пользователь приобрел элемент. Да
идентификатор кампании строка Идентификатор кампании, предоставленный во время покупки этого элемента. нет
devOfferId строка Идентификатор предложения из покупки в приложении. нет
Дата окончания дата/время Дата окончания элемента. Да
данные выполнения Строка списка<> Н/П нет
токенПредложенияВПриложении строка Строка идентификатора продукта, указанная разработчиком, назначенная элементу в Центре партнеров. Пример идентификатора продукта — product123. нет
идентификатор_элемента строка Идентификатор, определяющий этот элемент коллекции из других элементов, принадлежащих пользователю. Этот идентификатор является уникальным для каждого продукта. Да
localTicketReference строка Идентификатор ранее предоставленного localTicketReference в тексте запроса. Да
дата изменения дата/время Дата последнего изменения этого элемента. Да
номерЗаказа строка При наличии идентификатор заказа, в котором получен этот элемент. нет
идентификаторЭлементаЗаказа строка Если этот элемент присутствует, строка определенного порядка, для которого получен этот элемент. нет
тип собственности строка Строка OwnedByBeneficiary. Да
productId строка Идентификатор Магазина для продукта в каталоге Microsoft Store. Пример идентификатора магазина для продукта — 9NBLGGH42CFD. Да
Тип продукта строка Один из следующих типов продуктов: Application, Durable и UnmanagedConsumable. Да
страна покупки строка Н/П нет
покупатель IdentityContractV6 Если он присутствует, это представляет удостоверение покупателя элемента. Дополнительные сведения об этом объекте см. ниже. нет
количество число/номер Количество элемента. В настоящее время это всегда будет 1. нет
skuId строка Идентификатор Магазина для номера SKU продукта в каталоге Microsoft Store. Пример идентификатора магазина для номера SKU — 0010. Да
тип SKU строка Тип номера SKU. Возможные значения включают пробную версию, полную версию и аренду. Да
Дата начала дата/время Дата, когда элемент начинает быть допустимым. Да
статус строка Состояние элемента. Возможные значения: активные, просроченные, отозванные и запрещенные. Да
Теги Строка списка<> Н/П Да
transactionId гид Идентификатор транзакции в результате покупки этого элемента. Можно использовать для создания отчетов об элементе в качестве выполненного. Да

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

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

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

HTTP/1.1 200 OK
Content-Length: 7241
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
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"
    }
  ]
}