Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Use esse método na API de compra da Microsoft Store para conceder um aplicativo ou complemento gratuito (também conhecido como produto no aplicativo ou IAP) a um determinado usuário.
Atualmente, você só pode conceder produtos gratuitos. Se o serviço tentar usar esse método para conceder um produto que não é gratuito, esse método retornará um erro.
Pré-requisitos
Para usar esse método, você precisará:
- Um token de acesso do Azure AD que possui o valor URI do público-alvo
https://onestore.microsoft.com
. - Uma chave de ID da Microsoft Store que representa a identidade do usuário para o qual você deseja conceder um produto gratuito.
Para obter mais informações, consulte Gerir direitos de produtos a partir de um serviço.
Solicitação
Sintaxe da solicitação
Método | Solicitar URI |
---|---|
Publicação | https://purchase.mp.microsoft.com/v6.0/purchases/grant |
Cabeçalho da solicitação
Cabeçalho | Tipo | Descrição |
---|---|---|
Autorização | corda | Obrigatório O token de acesso do Azure AD no formato Bearer<token>. |
Anfitrião | corda | Deve ser definido com o valor purchase.mp.microsoft.com. |
Tamanho do conteúdo | número | O comprimento do corpo do pedido. |
Tipo de conteúdo | corda | Especifica o tipo de solicitação e resposta. Atualmente, o único valor suportado é application/json. |
Corpo de solicitação
Parâmetro | Tipo | Descrição | Obrigatório |
---|---|---|---|
Id de disponibilidade | corda | O ID de disponibilidade do produto a ser concedido a partir do catálogo da Microsoft Store. | Sim |
b2bChave | corda | A chave de ID da Microsoft Store que representa a identidade do usuário para o qual você deseja conceder um produto. | Sim |
devOfferId | corda | Um ID de oferta especificado pelo desenvolvedor que aparecerá no item Coleção após a compra. | |
Idioma | corda | O idioma do usuário. | Sim |
mercado | corda | O mercado do utilizador. | Sim |
ID do Pedido | Identificador Globalmente Único (GUID) | Um GUID gerado para o pedido. Esse valor deve ser exclusivo para o usuário, mas não é necessário que seja exclusivo em todos os pedidos. | Sim |
productId | corda | O ID da loja para o produto no catálogo da Microsoft Store. Um exemplo de ID de loja para um produto é 9NBLGGH42CFD. | Sim |
quantidade | Int | A quantidade a comprar. Atualmente, o único valor suportado é 1. Se não for especificado, o padrão será 1. | Não |
skuId | corda | O ID da loja para o SKU do produto no catálogo da Microsoft Store. Um exemplo de ID de loja para uma SKU é 0010. | Sim |
Exemplo de solicitação
POST https://purchase.mp.microsoft.com/v6.0/purchases/grant HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJK……
Content-Length: 1863
Content-Type: application/json
{
"b2bKey" : "eyJ0eXAiOiJK……",
"availabilityId" : "9RT7C09D5J3W",
"productId" : "9NBLGGH5WVP6",
"skuId" : "0010",
"language" : "en-us",
"market" : "us",
"orderId" : "3eea1529-611e-4aee-915c-345494e4ee76",
}
Resposta
Corpo da resposta
Parâmetro | Tipo | Descrição | Obrigatório |
---|---|---|---|
contexto do cliente | ClientContextV6 | Informações contextuais do cliente para este pedido. Isso será atribuído ao clientID valor do token do Azure AD. | Sim |
data de criação | datetimeoffset | A hora em que a ordem foi criada. | Sim |
código da moeda | corda | Código de moeda para o montante total e o montante total de impostos . Não aplicável para itens gratuitos. | Sim |
Nome amigável | corda | O nome amigável para a ordem. N/D para pedidos realizados usando a API de compra da Microsoft Store. | Sim |
éPIObrigatório | Booleano | Indica se um instrumento de pagamento (PI) é necessário como parte da ordem de compra. | Sim |
Idioma | corda | O ID de idioma do pedido (por exemplo, "en"). | Sim |
mercado | corda | A identificação de mercado da ordem (por exemplo, "EUA"). | Sim |
ID do Pedido | corda | Um ID que identifica a ordem de um usuário específico. | Sim |
orderLineItems | lista<OrderLineItemV6> | A lista de itens do pedido. Normalmente, há uma linha de item por pedido. | Sim |
orderState | corda | O estado da ordem. Os estados válidos são de Edição, de Verificação, de Pendência, de Compra, de Reembolso, de Estorno, e de Cancelamento. | Sim |
tempoFinalDeValidadeDoPedido | corda | A última vez que o preço do pedido é válido antes de ser enviado. N/D para aplicações gratuitas. | Sim |
horaDeInícioDaValidadeDoPedido | corda | O preço do pedido é válido antes de ser enviado pela primeira vez. N/D para aplicações gratuitas. | Sim |
comprador | IdentidadeV6 | Um objeto que descreve a identidade do comprador. | Sim |
Montante Total | decimais | O valor total da compra de todos os itens no pedido, incluindo impostos. | Sim |
valorTotalAntesDeImpostos | decimais | Valor total de compra de todos os itens no pedido antes de impostos. | Sim |
totalCobradoCsvTopOffPI | decimais | Se utilizar um instrumento de pagamento separado e um valor armazenado (CSV), o montante será cobrado do CSV. | Sim |
valorTotalDeImposto | decimais | O valor total do imposto para todas as linhas de itens. | Sim |
O objeto ClientContext contém os seguintes parâmetros.
Parâmetro | Tipo | Descrição | Obrigatório |
---|---|---|---|
cliente | corda | O ID do cliente que criou o pedido. | Não |
O objeto OrderLineItemV6 contém os seguintes parâmetros.
O objeto IdentityV6 contém os seguintes parâmetros.
Parâmetro | Tipo | Descrição | Obrigatório |
---|---|---|---|
tipo de identidade | corda | Contém o valor "pub". | Sim |
identityValue | corda | O valor da cadeia de caracteres do publisherUserId da chave de ID da Microsoft Store especificada. | Sim |
Exemplo de resposta
Content-Length: 1203
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: c1bc832c-f742-47e4-a76c-cf061402f698
MS-CV: XjfuNWLQlEuxj6Mt.8
MS-ServerId: 030032362
Date: Tue, 13 Oct 2015 21:21:51 GMT
{
"clientContext": {
"client": "86b78998-d05a-487b-b380-6c738f6553ea"
},
"createdTime": "2015-10-13T21:21:51.1863494+00:00",
"currencyCode": "USD",
"isPIRequired": false,
"language": "en-us",
"market": "us",
"orderId": "3eea1529-611e-4aee-915c-345494e4ee76",
"orderLineItems": [{
"availabilityId": "9RT7C09D5J3W",
"beneficiary": {
"identityType": "pub",
"identityValue": "user1"
},
"billingState": "Charged",
"currencyCode": "USD",
"description": "Jewels, Jewels, Jewels - Consumable 2",
"fulfillmentDate": "2015-10-13T21:21:51.639478+00:00",
"fulfillmentState": "Fulfilled",
"isPIRequired": false,
"isTaxIncluded": true,
"lineItemId": "2814d758-3ee3-46b3-9671-4fb3bdae9ffe",
"listPrice": 0.0,
"payments": [],
"productId": "9NBLGGH5WVP6",
"productType": "UnmanagedConsumable",
"quantity": 1,
"retailPrice": 0.0,
"revenueRecognitionState": "None",
"skuId": "0010",
"taxAmount": 0.0,
"taxType": "NoApplicableTaxes",
"title": "Jewels, Jewels, Jewels - Consumable 2",
"totalAmount": 0.0
}],
"orderState": "Purchased",
"orderValidityEndTime": "2015-10-14T21:21:51.1863494+00:00",
"orderValidityStartTime": "2015-10-13T21:21:51.1863494+00:00",
"purchaser": {
"identityType": "pub",
"identityValue": "user1"
},
"testScenarios": "None",
"totalAmount": 0.0,
"totalTaxAmount": 0.0
}
Códigos de erro
Código | Erro | Código de erro interno | Descrição |
---|---|---|---|
401 | Não autorizado | Token de Autenticação Inválido | O token de acesso do Azure AD é inválido. Em alguns casos, os detalhes do ServiceError conterão mais informações, como quando o token expirou ou a reivindicação appid está em falta. |
401 | Não autorizado | ParceiroAadTicketNecessário | 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 (ID de Cliente Inconsistente) | 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. |
400 | Pedido Inválido | ParâmetroInválido | Os detalhes contêm informações sobre o corpo da solicitação e quais campos têm um valor inválido. |