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


Отчет о потребляемых продуктах в виде выполненных

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

Этот метод можно использовать двумя способами, чтобы сообщить о потребляемом продукте как выполненном:

  • Укажите идентификатор элемента используемого (возвращаемого в параметре itemId запроса для продуктов) и уникальный идентификатор отслеживания, предоставленный вами. Если для нескольких попыток используется один и тот же идентификатор отслеживания, возвращается тот же результат, даже если элемент уже используется. Если запрос на использование выполнен успешно, служба должна повторно отправить запросы с тем же идентификатором отслеживания. Идентификатор отслеживания всегда будет привязан к запросу на использование и может быть повторно указан на неопределенный срок.
  • Укажите идентификатор продукта (как возвращается в параметре productId запроса на продукты) и идентификатор транзакции, полученный из одного из источников, перечисленных в описании параметра transactionId в разделе текста запроса ниже.

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

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

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

  • Маркер доступа Azure AD, имеющий значение https://onestore.microsoft.comURI аудитории.
  • Ключ идентификатора 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 в заголовке авторизации не совпадает.