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


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

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

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

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

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

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

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

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

Запросить

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

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

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

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

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

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

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

Параметр Тип Описание Обязательное поле
identityType строка Укажите строковое значение 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"
}

Response

Текст ответа

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

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

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

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

Параметр Тип Описание Обязательное поле
identityType строка Содержит паб значений. Да
identityValue строка Строковое значение издателяUserId из указанного ключа идентификатора 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"
    }
  ]
}