Отчет о потребляемых продуктах в виде выполненных
Используйте этот метод в API коллекции Microsoft Store, чтобы сообщить о потребляемом продукте как выполненном для данного клиента. Прежде чем пользователь сможет повторно выкупить потребляемый продукт, приложение или служба должны сообщить о потребляемом продукте, как выполнено для этого пользователя.
Этот метод можно использовать двумя способами, чтобы сообщить о потребляемом продукте как выполненном:
- Укажите идентификатор элемента используемого (возвращаемого в параметре itemId запроса для продуктов) и уникальный идентификатор отслеживания, предоставленный вами. Если для нескольких попыток используется один и тот же идентификатор отслеживания, возвращается тот же результат, даже если элемент уже используется. Если запрос на использование выполнен успешно, служба должна повторно отправить запросы с тем же идентификатором отслеживания. Идентификатор отслеживания всегда будет привязан к запросу на использование и может быть повторно указан на неопределенный срок.
- Укажите идентификатор продукта (как возвращается в параметре productId запроса на продукты) и идентификатор транзакции, полученный из одного из источников, перечисленных в описании параметра transactionId в разделе текста запроса ниже.
Библиотека Microsoft.StoreServices предоставляет функциональные возможности этого метода через API StoreServicesClient.CollectionsConsumeAsync.
Необходимые компоненты
Чтобы использовать этот метод, вам потребуется:
- Маркер доступа Azure AD, имеющий значение
https://onestore.microsoft.com
URI аудитории. - Ключ идентификатора Microsoft Store, представляющий удостоверение пользователя, для которого требуется сообщить о используемом продукте, как выполнено.
Дополнительные сведения см. в разделе "Управление правами на продукты из службы".
Запросить
Синтаксис запроса
Способ | URI запроса |
---|---|
POST | https://collections.mp.microsoft.com/v6.0/collections/consume |
Заголовок запроса
Верхний колонтитул | Тип | Описание |
---|---|---|
Авторизация | строка | Обязательный. Маркер доступа Azure AD в маркере> носителя<формы. |
Хост | строка | Необходимо задать значение collections.mp.microsoft.com. |
content-length: 0 | number | Длина текста запроса. |
Тип контента | строка | Указывает тип запроса и ответа. В настоящее время единственным поддерживаемым значением является application/json. |
Текст запроса
Параметр | Тип | Описание | Обязательное поле |
---|---|---|---|
бенефициар | UserIdentity | Пользователь, для которого используется этот элемент. Дополнительные сведения приведены в таблице ниже. | Да |
itemId | строка | Значение itemId , возвращаемое запросом на продукты. Использование этого параметра с trackingId | No |
trackingId | guid | Уникальный идентификатор отслеживания, предоставляемый разработчиком. Используйте этот параметр с itemId. | No |
productId | строка | Значение productId, возвращаемое запросом на продукты. Использование этого параметра с transactionId | No |
transactionId | guid | Значение идентификатора транзакции, полученное из одного из следующих источников. Используйте этот параметр с productId.
|
No |
Объект UserIdentity содержит следующие параметры.
Параметр | Тип | Описание | Обязательное поле |
---|---|---|---|
identityType | строка | Укажите строковое значение b2b. | Да |
identityValue | строка | Ключ идентификатора Microsoft Store, представляющий удостоверение пользователя, для которого вы хотите сообщить о потребляемом продукте в виде выполненного. | Да |
localTicketReference | строка | Запрошенный идентификатор возвращаемого ответа. Рекомендуется использовать то же значение, что и утверждение userIdв ключе идентификатора Microsoft Store. | Да |
Примеры запросов
В следующем примере используется itemId и trackingId.
POST https://collections.mp.microsoft.com/v6.0/collections/consume HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1…..
Host: collections.mp.microsoft.com
Content-Length: 2050
Content-Type: application/json
{
"beneficiary": {
"localTicketReference": "testreference",
"identityValue": "eyJ0eXAiOi…..",
"identityType": "b2b"
},
"itemId": "44c26106-4979-457b-af34-609ae97a084f",
"trackingId": "44db79ca-e31d-49e9-8896-fa5c7f892b40"
}
В следующем примере используется productId и transactionId.
POST https://collections.mp.microsoft.com/v6.0/collections/consume HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1……
Content-Length: 1880
Content-Type: application/json
Host: collections.md.mp.microsoft.com
{
"beneficiary" : {
"localTicketReference" : "testReference",
"identityValue" : "eyJ0eXAiOiJ…..",
"identitytype" : "b2b"
},
"productId" : "9NBLGGH5WVP6",
"transactionId" : "08a14c7c-1892-49fc-9135-190ca4f10490"
}
Response
Содержимое не будет возвращено, если потребление было выполнено успешно.
Пример ответа
HTTP/1.1 204 No Content
Content-Length: 0
MS-CorrelationId: 386f733d-bc66-4bf9-9b6f-a1ad417f97f0
MS-RequestId: e488cd0a-9fb6-4c2c-bb77-e5100d3c15b1
MS-CV: 5.1
MS-ServerId: 030011326
Date: Tue, 22 Sep 2015 20:40:55 GMT
Коды ошибок
Код | Ошибка | Код внутренней ошибки | Description |
---|---|---|---|
401 | Не авторизовано | AuthenticationTokenInvalid | Недопустимый маркер доступа Azure AD. В некоторых случаях сведения о ServiceError будут содержать дополнительные сведения, например, когда срок действия маркера истек или утверждение appid отсутствует. |
401 | Не авторизовано | PartnerAadTicketRequired | Маркер доступа Azure AD не был передан службе в заголовке авторизации. |
401 | Не авторизовано | НесогласованныйClientId | Утверждение clientId в ключе идентификатора Microsoft Store в тексте запроса и утверждение appid в маркере доступа Azure AD в заголовке авторизации не совпадает. |