Signaler le traitement de la commande d’un produit consommable
Utilisez cette méthode dans l’API de collection du Microsoft Store pour signaler un produit consommable comme rempli pour un client donné. Avant qu’un utilisateur puisse racheter un produit consommable, votre application ou service doit signaler le produit consommable tel qu’il est rempli pour cet utilisateur.
Il existe deux façons d’utiliser cette méthode pour signaler un produit consommable comme rempli :
- Indiquez l’ID d’élément du consommable (tel qu’il est retourné dans le paramètre itemId d’une requête pour les produits) et un ID de suivi unique que vous fournissez. Si le même ID de suivi est utilisé pour plusieurs tentatives, le même résultat est retourné même si l’élément est déjà consommé. Si vous n’êtes pas certain si une demande d’utilisation a réussi, votre service doit soumettre à nouveau les demandes avec le même ID de suivi. L’ID de suivi est toujours lié à cette demande de consommation et peut être remis indéfiniment.
- Indiquez l’ID de produit (tel qu’il est retourné dans le paramètre productId d’une requête pour les produits) et un ID de transaction obtenu à partir de l’une des sources répertoriées dans la description du paramètre transactionId dans la section corps de la demande ci-dessous.
La bibliothèque Microsoft.StoreServices fournit les fonctionnalités de cette méthode via l’API StoreServicesClient.CollectionsConsumeAsync.
Prérequis
Pour utiliser cette méthode, vous aurez besoin des éléments suivants :
- Jeton d’accès Azure AD qui a la valeur
https://onestore.microsoft.com
de l’URI d’audience . - Clé d’ID du Microsoft Store qui représente l’identité de l’utilisateur pour lequel vous souhaitez signaler un produit consommable tel qu’il est rempli.
Pour plus d’informations, consultez Gérer les droits de produit à partir d’un service.
Requête
Syntaxe de la requête
Method | URI de demande |
---|---|
POST | https://collections.mp.microsoft.com/v6.0/collections/consume |
En-tête de requête
En-tête | Type | Description |
---|---|---|
Autorisation | string | Obligatoire. Jeton d’accès Azure AD au format porteur<jeton>. |
Host | string | Doit être défini sur la valeur collections.mp.microsoft.com. |
Longueur-contenu | nombre | Longueur du corps de la demande. |
Type de contenu | string | Spécifie le type de demande et de réponse. Actuellement, la seule valeur prise en charge est application/json. |
Corps de la demande
Paramètre | Type | Description | Obligatoire |
---|---|---|---|
bénéficiaire | UserIdentity | Utilisateur pour lequel cet élément est consommé. Pour plus d’informations, consultez le tableau suivant. | Oui |
itemId | string | Valeur itemId retournée par une requête pour les produits. Utiliser ce paramètre avec trackingId | Non |
trackingId | guid | ID de suivi unique fourni par le développeur. Utilisez ce paramètre avec itemId. | Non |
productId | string | Valeur productId retournée par une requête pour les produits. Utiliser ce paramètre avec transactionId | Non |
transactionId | guid | Valeur d’ID de transaction obtenue à partir de l’une des sources suivantes. Utilisez ce paramètre avec productId.
|
Non |
L’objet UserIdentity contient les paramètres suivants.
Paramètre | Type | Description | Obligatoire |
---|---|---|---|
identityType | string | Spécifiez la valeur de chaîne b2b. | Oui |
identityValue | string | Clé d’ID du Microsoft Store qui représente l’identité de l’utilisateur pour lequel vous souhaitez signaler un produit consommable tel qu’il est rempli. | Oui |
localTicketReference | string | Identificateur demandé pour la réponse retournée. Nous vous recommandons d’utiliser la même valeur que la revendication userIddans la clé d’ID du Microsoft Store. | Oui |
Exemples de requête
L’exemple suivant utilise itemId et 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"
}
L’exemple suivant utilise productId et 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
Aucun contenu n’est retourné si la consommation a été exécutée correctement.
Exemple de réponse
HTTP/1.1 204 No Content
Content-Length: 0
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: e488cd0a-9fb6-4c2c-bb77-e5100d3c15b1
MS-CV: 5.1
MS-ServerId: 030011326
Date: Tue, 22 Sep 2015 20:40:55 GMT
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 ServiceError contiennent plus d’informations, par exemple lorsque le jeton a expiré 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. |