En este tema, se enumeran y describen los tipos de notificaciones para desarrolladores en tiempo real que puedes recibir de Google Play.
Codificación
Cada publicación realizada en un tema de Cloud Pub/Sub incluye un campo de datos único con codificación base64.
{
"message": {
"attributes": {
"key": "value"
},
"data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
"messageId": "136969346945"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
Una vez que se decodifica el campo de datos con codificación base64, el objeto DeveloperNotification
incluye los siguientes campos:
{
"version": string,
"packageName": string,
"eventTimeMillis": long,
"oneTimeProductNotification": OneTimeProductNotification,
"subscriptionNotification": SubscriptionNotification,
"voidedPurchaseNotification": VoidedPurchaseNotification,
"testNotification": TestNotification
}
Estos campos se describen en la siguiente tabla.
Nombre de la propiedad | Valor | Descripción |
version | string | Es la versión de esta notificación. Inicialmente, es "1.0". Esta versión es distinta del resto de los campos de versión. |
packageName | string | Es el nombre del paquete de la aplicación con la que está relacionada esta notificación (por ejemplo, "com.algo"). |
eventTimeMillis | long | Es la marca de tiempo en la que se produjo el evento, en milisegundos, desde la época. |
subscriptionNotification | SubscriptionNotification | Si este campo está presente, entonces la notificación se relaciona con una suscripción, y este campo contiene información adicional relacionada con la suscripción. Ten en cuenta que este campo es mutuamente excluyente con oneTimeProductNotification, voidedPurchaseNotification y testNotification. |
oneTimeProductNotification | OneTimeProductNotification | Si este campo está presente, entonces la notificación se relaciona con una compra única, y este campo contiene información adicional relacionada con la compra. Ten en cuenta que este campo es mutuamente excluyente con subscriptionNotification, voidedPurchaseNotification y testNotification. |
voidedPurchaseNotification | VoidedPurchaseNotification | Si este campo está presente, entonces la notificación se relaciona con una compra anulada y este campo contiene información adicional relacionada con esa compra. Ten en cuenta que este campo es mutuamente excluyente con oneTimeProductNotification, subscriptionNotification y testNotification. |
testNotification | TestNotification | Si este campo está, esta notificación está relacionada con una publicación de prueba. Solo se envían a través de Google Play Console. Ten en cuenta que este campo es mutuamente excluyente con oneTimeProductNotification, subscriptionNotification y voidedPurchaseNotification. |
SubscriptionNotification
Un objeto SubscriptionNotification
incluye los siguientes campos:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"subscriptionId": string
}
Nombre de la propiedad | Valor | Descripción |
version | string | Es la versión de esta notificación. Inicialmente, es "1.0". Esta versión es distinta del resto de los campos de versión. |
notificationType | int | El objeto notificationType de una suscripción puede tener los siguientes valores:
|
purchaseToken | string | Es el token que se envió al dispositivo del usuario cuando se compró la suscripción. |
subscriptionId | string | Es el ID del producto de la suscripción comprada (por ejemplo, "monthly001"). |
Ejemplo
Este es un ejemplo de una notificación por la compra de una suscripción nueva:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"subscriptionNotification":
{
"version":"1.0",
"notificationType":4,
"purchaseToken":"PURCHASE_TOKEN",
"subscriptionId":"monthly001"
}
}
OneTimeProductNotification
Un objeto OneTimeProductNotification
incluye los siguientes campos:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"sku": string
}
Nombre de la propiedad | Valor | Descripción |
version | string | Es la versión de esta notificación. Inicialmente, será "1.0". Esta versión es distinta del resto de los campos de versión. |
notificationType | int | El tipo de notificación. Puede tener los siguientes valores:
|
purchaseToken | string | Es el token que se envió al dispositivo del usuario en el momento de la compra. |
sku | string | Es el ID del producto único que se compró (por ejemplo, "espada_001"). |
Ejemplo
A continuación, se incluye un ejemplo de una notificación por una nueva compra única:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"oneTimeProductNotification":
{
"version":"1.0",
"notificationType":1,
"purchaseToken":"PURCHASE_TOKEN",
"sku":"my.sku"
}
}
VoidedPurchaseNotification
Un objeto VoidedPurchaseNotification
incluye los siguientes campos:
Nombre de la propiedad |
Valor |
Descripción |
|
|
Es el token asociado con la compra que se anuló. Esta información se proporciona al desarrollador cuando se produce una compra nueva. |
|
|
Es el ID de pedido único asociado con la transacción que se anuló. En el caso de las compras únicas, representa el ID de pedido único generado para la compra. En el caso de las suscripciones con renovación automática, se genera un ID de pedido nuevo para cada transacción de renovación. |
|
|
El
|
|
|
El
Ten en cuenta que cuando la cantidad total restante de una compra con varias cantidades sea
se reembolsó el importe de |
Ejemplo
Este es un ejemplo de una notificación por la compra de una suscripción que se anuló nueva:
{
"version":"1.0",
"packageName":"com.some.app",
"eventTimeMillis":"1503349566168",
"voidedPurchaseNotification":
{
"purchaseToken":"PURCHASE_TOKEN",
"orderId":"GS.0000-0000-0000",
"productType":1
"refundType":1
}
}
Cómo consumir VoidedPurchaseNotification
Cuando tu cliente de RTDN recibe un VoidedPurchaseNotification
, ten en cuenta la siguiente información:
packageName
: Identifica la app.eventTimeMillis
: Informa al desarrollador sobre la hora en que ocurrió el cambio de estado.purchaseToken
: Es el token que se envió al dispositivo del usuario cuando se compró la suscripción.orderId
: Identifica el pedido asociado con la transacción anulada.productType
: Indica si la compra anulada fue una compra directa desde la aplicación o una suscripción.refundType
: Indica el tipo de reembolso que anuló la compra.
Si todo lo que necesitas hacer para los ajustes de derechos es ubicar la compra y el pedido correctos, entonces tienes toda la información que necesitas en este punto. Si quieres obtener más información sobre la compra anulada, consulta la API de Voided Purchases de Google Play, que es un modelo de extracción que proporciona datos adicionales para las compras anuladas entre una marca de tiempo determinada.
Para las compras de varias cantidades anuladas de forma parcial, el campo refundableQuantity
proporcionados por purchases.products
contiene los restantes
cantidad de productos comprados que no se anularon
TestNotification
Un objeto TestNotification
incluye los siguientes campos:
{
"version": string
}
Nombre de la propiedad | Valor | Descripción |
version | string | Es la versión de esta notificación. Inicialmente, es "1.0". Esta versión es distinta del resto de los campos de versión. |
Ejemplo
Este es un ejemplo de una notificación de prueba:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"testNotification":
{
"version":"1.0"
}
}