Octroyer des produits gratuits
Utilisez cette méthode dans l’API d’achat du Microsoft Store pour accorder une application ou un module complémentaire gratuit (également appelé produit in-app ou IAP) à un utilisateur donné.
Actuellement, vous ne pouvez octroyer que des produits gratuits. Si votre service tente d’utiliser cette méthode pour octroyer un produit qui n’est pas gratuit, cette méthode retourne une erreur.
Prérequis
Pour utiliser cette méthode, vous devez disposer des éléments suivants :
- Jeton d’accès Azure AD qui a la valeur
https://onestore.microsoft.com
d’URI d’audience . - Une clé d’ID du Microsoft Store qui représente l’identité de l’utilisateur auquel vous souhaitez accorder un produit gratuit.
Pour plus d’informations, consultez Gérer les droits d’utilisation d’un produit à partir d’un service.
Requête
Syntaxe de la requête
Méthode | URI de demande |
---|---|
POST | https://purchase.mp.microsoft.com/v6.0/purchases/grant |
En-tête de requête
En-tête | Type | Description |
---|---|---|
Autorisation | string | Obligatoire. Jeton d’accès Azure AD sous la formeJeton> du porteur<. |
Host | string | Doit être défini sur la valeur purchase.mp.microsoft.com. |
Content-Length | nombre | Longueur du corps de la demande. |
Content-Type | string | Spécifie le type de requête et de réponse. Actuellement, la seule valeur prise en charge est application/json. |
Corps de la demande
Paramètre | Type | Description | Obligatoire |
---|---|---|---|
availabilityId | string | ID de disponibilité du produit à accorder à partir du catalogue du Microsoft Store. | Oui |
b2bKey | string | Clé d’ID du Microsoft Store qui représente l’identité de l’utilisateur auquel vous souhaitez accorder un produit. | Oui |
devOfferId | string | ID d’offre spécifié par le développeur qui s’affiche dans l’élément de collection après l’achat. | |
langage | string | Langue de l’utilisateur. | Oui |
market | string | Marché de l’utilisateur. | Oui |
orderId | guid | GUID généré pour la commande. Cette valeur doit être propre à l’utilisateur, mais il n’est pas impératif qu’elle soit unique dans toutes les commandes. | Oui |
productId | string | ID store du produit dans le catalogue du Microsoft Store. Un exemple d’ID store pour un produit est 9NBLGGH42CFD. | Oui |
quantité | int | Quantité à acheter. Actuellement, la seule valeur prise en charge est 1. Si cet argument n'est pas spécifié, la valeur par défaut est 1. | Non |
skuId | string | ID du Store pour la référence SKU du produit dans le catalogue du Microsoft Store. Un exemple d’ID de magasin pour une référence SKU est 0010. | Oui |
Exemple de requête
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",
}
response
Response body
Paramètre | Type | Description | Obligatoire |
---|---|---|---|
clientContext | ClientContextV6 | Informations contextuelles client de cette commande. Ce paramètre est affecté à la valeur clientID du jeton Azure AD. | Oui |
createdtime | datetimeoffset | Heure de création de la commande. | Oui |
currencyCode | string | Code devise pour totalAmount et totalTaxAmount. Non applicable pour les articles gratuits. | Oui |
friendlyName | string | Nom convivial de la commande. N/A pour les commandes passées à l’aide de l’API d’achat du Microsoft Store. | Oui |
isPIRequired | boolean | Indique si un instrument de paiement (PI) est nécessaire dans le cadre de la commande d’achat. | Oui |
langage | string | ID de langue de la commande (par exemple, « fr »). | Oui |
market | string | ID de marché de la commande (par exemple, « FR »). | Oui |
orderId | string | ID qui identifie la commande d’un utilisateur particulier. | Oui |
orderLineItems | list<OrderLineItemV6> | Liste des articles de la commande. En règle générale, il y a un article par commande. | Oui |
orderState | string | État de la commande. Les états valides sont Editing, CheckingOut, Pending, Purchased, Refunded, ChargedBack et Cancelled. | Oui |
orderValidityEndTime | string | Dernière fois que la tarification de la commande a été valide avant sa soumission. Non applicable pour les applications gratuites. | Oui |
orderValidityStartTime | string | Première fois que la tarification de la commande a été valide avant sa soumission. Non applicable pour les applications gratuites. | Oui |
purchaser | IdentityV6 | Objet qui décrit l’identité de l’acheteur. | Oui |
totalAmount | Décimal | Montant total d’achat TTC de tous les articles de la commande. | Oui |
totalAmountBeforeTax | Décimal | Montant total d’achat HT de tous les articles de la commande. | Oui |
totalChargedToCsvTopOffPI | Décimal | Si vous utilisez un instrument de paiement (PI) et une valeur de stockage (CSV) distincts, le montant est facturé au format CSV. | Oui |
totalTaxAmount | Décimal | Montant total des taxes de tous les articles. | Oui |
L’objet ClientContext contient les paramètres ci-dessous.
Paramètre | Type | Description | Obligatoire |
---|---|---|---|
client | string | ID client qui a créé la commande. | Non |
L’objet OrderLineItemV6 contient les paramètres ci-dessous.
Paramètre | Type | Description | Obligatoire |
---|---|---|---|
agent | IdentityV6 | Dernier agent à avoir modifié l’article. Pour plus d’informations sur cet objet, voir le tableau ci-dessous. | Non |
availabilityId | string | ID de disponibilité du produit à acheter dans le catalogue du Microsoft Store. | Oui |
beneficiary | IdentityV6 | Identité du bénéficiaire de la commande. | Non |
billingState | string | État de facturation de la commande. Défini sur Charged lorsque la commande est terminée. | Non |
campaignId | string | ID campagne de cette commande. | Non |
currencyCode | string | Code de devise utilisé pour les détails de prix. | Oui |
description | string | Description localisée de l’article. | Oui |
devofferId | string | ID d’offre de la commande particulière, le cas échéant. | Non |
fulfillmentDate | datetimeoffset | Date du traitement de la commande. | Non |
fulfillmentState | string | État du traitement de la commande de cet article. Défini sur Fulfilled lorsque le traitement est effectué. | Non |
isPIRequired | boolean | Indique si un instrument de paiement est requis pour cet article. | Oui |
isTaxIncluded | boolean | Indique si les taxes sont comprises dans les détails de la tarification de l’article. | Oui |
legacyBillingOrderId | string | ID de facturation hérité. | Non |
lineItemId | string | ID de l’article de cette commande. | Oui |
listPrice | Décimal | Prix catalogue de l’article de cette commande. | Oui |
productId | string | ID store du produit qui représente l’élément de ligne dans le catalogue du Microsoft Store. Un exemple d’ID de magasin pour un produit est 9NBLGGH42CFD. | Oui |
productType | string | Type du produit. Les valeurs prises en charge sont Durable, Application et UnmanagedConsumable. | Oui |
quantité | int | Quantité de l’article commandé. | Oui |
retailPrice | Décimal | Prix de vente au détail de l’article commandé. | Oui |
revenueRecognitionState | string | État de prise en compte de revenu. | Oui |
skuId | string | ID store pour la référence SKU de l’élément de ligne dans le catalogue microsoft Store. Un exemple d’ID de magasin pour une référence SKU est 0010. | Oui |
taxAmount | Décimal | Montant des taxes de l’article. | Oui |
taxType | string | Type de taxe pour les taxes applicables. | Oui |
Intitulé | string | Titre localisé de l’article. | Oui |
totalAmount | Décimal | Montant total TTC d’achat de l’article. | Oui |
L’objet IdentityV6 contient les paramètres ci-dessous.
Paramètre | Type | Description | Obligatoire |
---|---|---|---|
identityType | string | Contient la valeur "pub". | Oui |
identityValue | string | Valeur de chaîne de publisherUserId à partir de la clé d’ID du Microsoft Store spécifiée. | Oui |
Exemple de réponse
Content-Length: 1203
Content-Type: application/json
MS-CorrelationId: fb2e69bc-f26a-4aab-a823-7586c19f5762
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
}
Codes d’erreur
Code | Error | Code d’erreur interne | Description |
---|---|---|---|
401 | Non autorisé | AuthenticationTokenInvalid | Le jeton d’accès Azure AD n’est pas valide. Dans certains cas, les détails de l’erreur ServiceError contiennent plus d’informations, par exemple lorsque le jeton est arrivé à expiration ou que la revendication appid est manquante. |
401 | Non autorisé | PartnerAadTicketRequired | Un jeton d’accès Azure AD n’a pas été transmis au service dans l’en-tête d’autorisation. |
401 | Non autorisé | InconsistentClientId | La revendication clientId dans la clé d’ID du Microsoft Store dans le corps de la demande et la revendication appid dans le jeton d’accès Azure AD dans l’en-tête d’autorisation ne correspondent pas. |
400 | BadRequest | InvalidParameter | Les détails contiennent des informations relatives au corps de la requête et aux champs comprenant une valeur non valide. |
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour