Signaler le traitement de la commande d’un produit consommable

Utilisez cette méthode dans l’API de collection du Microsoft Store pour signaler qu’un produit consommable a été rempli pour un client donné. Pour qu’un utilisateur puisse racheter un produit consommable, votre application ou votre service doit indiquer que la commande de ce produit a été traitée pour cet utilisateur.

Vous pouvez utiliser cette méthode pour indiquer que la commande d’un produit consommable a été traitée de deux façons :

  • Indiquez l’ID d’article du produit consommable (tel qu’il est retourné dans le paramètre itemId d’une demande de 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’article est déjà consommé. Si vous ne savez pas si une demande de consommation a abouti, votre service doit de nouveau la soumettre avec le même ID de suivi. L’ID de suivi sera toujours lié à cette demande de consommation et peut être soumis indéfiniment.
  • Indiquez l’ID produit (tel qu’il est retourné dans le paramètre productId d’une demande de produits) et un ID de transaction qui est obtenu à partir de l’une des sources indiquées dans la description du paramètre transactionId dans la section Corps de la requête 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 devez disposer des éléments suivants :

  • Jeton d’accès Azure AD qui a la valeur https://onestore.microsoft.comURI d’audience .
  • Une clé d’ID du Microsoft Store qui représente l’identité de l’utilisateur pour lequel vous souhaitez signaler un produit consommable comme rempli.

Pour plus d’informations, consultez Gérer les droits de produit à partir d’un service.

Requête

Syntaxe de la requête

Méthode 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 sous la formeJeton> du porteur<.
Host string Doit être défini sur la valeur collections.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
beneficiary UserIdentity L’utilisateur pour lequel cet élément est utilisé. 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 qui est obtenue à partir de l’une des sources suivantes. Utilisez ce paramètre avec productId. Non

L’objet UserIdentity contient les paramètres ci-dessous.

Paramètre Type Description Obligatoire
identityType string Spécifiez la valeur 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 comme étant rempli. Oui
localTicketReference string Identificateur demandé pour la réponse retournée. Nous vous recommandons d’utiliser la même valeur que la revendicationuserId dans la clé d’ID du Microsoft Store. Oui

Exemples de demande

L’exemple suivant utilise les paramètres 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 les paramètres 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 l’utilisation a été exécutée correctement.

Exemple de réponse

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

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.