Compartir a través de


Notificar productos consumibles como completados

Usa este método en la API de recopilación de Microsoft Store para informar de un producto consumible como cumplido para un cliente determinado. Para que un usuario pueda volver a comprar un producto consumible, la aplicación o el servicio deben notificar el producto consumible como cumplido para ese usuario.

Hay dos maneras de usar este método para notificar un producto consumible como cumplido:

  • Proporcione el identificador de elemento del consumible (tal como se devuelve en el parámetro itemId de una consulta para productos) y un identificador de seguimiento único que proporcione. Si se usa el mismo identificador de seguimiento para varios intentos, se devolverá el mismo resultado incluso si el elemento ya se ha consumido. Si no está seguro de si una solicitud de consumo se realizó correctamente, el servicio debe volver a enviar las solicitudes con el mismo identificador de seguimiento. El identificador de seguimiento siempre estará vinculado a esa solicitud de consumo y se puede volver a enviar indefinidamente.
  • Proporcione el identificador de producto (tal como se devuelve en el parámetro productId de una consulta para productos) y un identificador de transacción que se obtiene de uno de los orígenes enumerados en la descripción del parámetro transactionId en la sección cuerpo de la solicitud siguiente.

La biblioteca Microsoft.StoreServices proporciona la funcionalidad de este método a través de la API StoreServicesClient.CollectionsConsumeAsync.

Requisitos previos

Para usar este método, necesitará:

  • Un token de acceso de Azure AD que tiene el valor https://onestore.microsoft.comde URI de audiencia .
  • Clave de identificador de Microsoft Store que representa la identidad del usuario para el que quiere notificar un producto consumible como cumplido.

Para obtener más información, consulte Administración de derechos de producto desde un servicio.

Solicitar

Sintaxis de la solicitud

Método URI de solicitud
PUBLICAR https://collections.mp.microsoft.com/v6.0/collections/consume

Encabezado de solicitud

Encabezado Tipo Descripción
Autorización string Necesario. Token de acceso de Azure AD con el formato Token<de portador>.
Host string Debe establecerse en el valor collections.mp.microsoft.com.
Content-Length number Este encabezado especifica la longitud del cuerpo de la solicitud.
Content-Type string Especifica el tipo de solicitud y respuesta. Actualmente, el único valor admitido es application/json.

Cuerpo de la solicitud

Parámetro Tipo Descripción Obligatorio
beneficiario UserIdentity Usuario para el que se consume este elemento. Para más información, vea la tabla siguiente.
itemId string Valor itemId devuelto por una consulta para productos. Uso de este parámetro con trackingId No
trackingId guid Identificador de seguimiento único proporcionado por el desarrollador. Use este parámetro con itemId. No
productId string Valor productId devuelto por una consulta para productos. Uso de este parámetro con transactionId No
transactionId guid Valor de identificador de transacción que se obtiene de uno de los siguientes orígenes. Use este parámetro con productId. No

El objeto UserIdentity contiene los parámetros siguientes.

Parámetro Tipo Descripción Obligatorio
identityType string Especifique el valor de cadena b2b.
identityValue string Clave de identificador de Microsoft Store que representa la identidad del usuario para el que quiere notificar un producto consumible como cumplido.
localTicketReference string Identificador solicitado para la respuesta devuelta. Se recomienda usar el mismo valor que la notificación userIden la clave de identificador de Microsoft Store.

Ejemplos de solicitud

En el ejemplo siguiente se usa itemId y 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"
}

En el ejemplo siguiente se usa productId y 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"
}

Respuesta

No se devolverá ningún contenido si el consumo se ejecutó correctamente.

Ejemplo de respuesta

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

Códigos de error

Código Error Código de error interno Descripción
401 No autorizado AuthenticationTokenInvalid El token de acceso de Azure AD no es válido. En algunos casos, los detalles del ServiceError contendrán más información, como cuando el token ha expirado o falta la notificación appid .
401 No autorizado PartnerAadTicketRequired No se pasó un token de acceso de Azure AD al servicio en el encabezado de autorización.
401 No autorizado InconsistentClientId La notificación clientId de la clave de identificador de Microsoft Store en el cuerpo de la solicitud y la notificación appid del token de acceso de Azure AD en el encabezado de autorización no coinciden.