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.com
de 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. | Sí |
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. | Sí |
identityValue | string | Clave de identificador de Microsoft Store que representa la identidad del usuario para el que quiere notificar un producto consumible como cumplido. | Sí |
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. | Sí |
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. |