Declarar produtos consumíveis como providenciados
Use esse método na API da coleção da Microsoft Store para declarar um produto consumível como providenciado para um determinado cliente. Para que um usuário possa recomprar um produto consumível, seu aplicativo ou serviço deve declarar que o produto consumível já foi providenciado para esse usuário.
Há duas maneiras de usar esse método para declarar um produto consumível como providenciado:
- Forneça a ID do item do produto consumível (conforme retornado no parâmetro itemId de uma consulta por produtos) e uma ID de rastreamento exclusivo que você forneça. Se a mesma ID de rastreamento for usada em várias tentativas, o mesmo resultado será retornado mesmo se o item já tiver sido consumido. Se você não tiver certeza se uma solicitação de produto consumível foi bem-sucedida, o serviço deve reenviar as solicitações de produto consumível com a mesma ID de rastreamento. A ID de rastreamento sempre será vinculada a essa solicitação de produto consumível e poderá ser reenviada indefinidamente.
- Forneça a ID do produto (como retornado no parâmetro productId de uma consulta por produtos) e uma ID de transação que é obtida de uma das fontes listadas na descrição do parâmetro transactionId na seção do corpo da solicitação abaixo.
A biblioteca Microsoft.StoreServices fornece a funcionalidade desse método por meio da API StoreServicesClient.CollectionsConsumeAsync.
Pré-requisitos
Para usar esse método, você precisará:
- Um token de acesso do Azure AD com o URI de audiência
https://onestore.microsoft.com
. - Uma chave ID da Microsoft Store que representa a identidade do usuário para o qual você quer declarar um produto consumível como providenciado.
Para obter mais informações, consulte Gerenciar direitos a produtos de um serviço.
Solicitação
Sintaxe da solicitação
Método | URI da solicitação |
---|---|
POST | https://collections.mp.microsoft.com/v6.0/collections/consume |
Cabeçalho da solicitação
parâmetro | Tipo | Descrição |
---|---|---|
Autorização | string | Obrigatórios. O token de acesso Azure AD notoken> de portador< do formulário. |
Host | string | Deve ser definido como o valor collections.mp.microsoft.com. |
Content-Length | número | O tamanho do corpo da solicitação. |
Tipo de conteúdo | string | Especifica o tipo de solicitação e resposta. Atualmente, o único valor com suporte é application/json. |
Corpo da solicitação
Parâmetro | Type | Descrição | Obrigatório |
---|---|---|---|
beneficiary | UserIdentity | O usuário para o qual este item está sendo consumido. Para obter mais informações, confira a tabela a seguir. | Sim |
itemId | string | O valor itemID retornado por uma consulta por produtos. Use esse parâmetro com trackingId | Não |
trackingId | guid | Uma ID de rastreamento exclusiva fornecida pelo desenvolvedor. Use esse parâmetro com itemId. | Não |
productId | string | O valor de productId retornado por uma consulta por produtos. Use esse parâmetro com transactionId | Não |
transactionId | guid | Um valor de ID de transação que é obtido de uma das seguintes fonte. Use esse parâmetro com productId.
|
Não |
O objeto UserIdentity contém os parâmetros a seguir.
Parâmetro | Type | Descrição | Obrigatório |
---|---|---|---|
identityType | string | Especifique o valor de cadeia de caracteres b2b. | Sim |
identityValue | string | Uma chave ID da Microsoft Store que representa a identidade do usuário para o qual você quer declarar um produto consumível como providenciado. | Sim |
localTicketReference | string | O identificador solicitado para resposta retornada. Recomendamos que você use o mesmo valor do que a declaraçãouserId na chave ID da Microsoft Store. | Sim |
Exemplos de solicitação
O exemplo a seguir usa itemId e 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"
}
O exemplo a seguir usa productId e 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"
}
Resposta
Nenhum conteúdo será retornado se o consumo for executado com êxito.
Exemplo de resposta
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
Códigos do Erro
Código | Erro do | Código de erro interno | Descrição |
---|---|---|---|
401 | Não Autorizado | AuthenticationTokenInvalid | O token de acesso do Azure AD é inválido. Em alguns casos, os detalhes de ServiceError irão conter mais informações, como quando o token está expirado ou falta a declaração appid. |
401 | Não Autorizado | PartnerAadTicketRequired | Um token de acesso do Azure AD não foi passado para o serviço no cabeçalho de autorização. |
401 | Não Autorizado | InconsistentClientId | A declaração clientId na chave de ID da Microsoft Store no corpo da solicitação e a declaração appid no token de acesso do Azure AD no cabeçalho de autorização não coincidem. |
Tópicos relacionados
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de