Запрос продуктов
Используйте этот метод в 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"
}
]
}
Связанные темы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по