Partager via


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.comde 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.