Carga útil para desarrolladores

La carga útil para desarrolladores se utilizó históricamente para diversos fines, por ejemplo, la prevención de fraudes y la atribución de compras al usuario correcto. Con las versiones 2.2 y posteriores de la biblioteca de Facturación Google Play, los casos de uso previstos anteriores que se basaban en la carga útil del desarrollador ahora se admiten totalmente en otras partes de la biblioteca.

Con esta compatibilidad, dimos de baja la carga útil para desarrolladores, comenzando con la versión 2.2 de la biblioteca de Facturación Google Play. Los métodos asociados con la carga útil del desarrollador dejaron de estar disponibles en la versión 2.2 y se quitaron en la versión 3.0. Ten en cuenta que tu app puede seguir recuperando la carga útil para desarrolladores de las compras realizadas con versiones anteriores de la biblioteca o mediante el AIDL.

Para obtener una lista detallada de los cambios, consulta las notas de la versión 2.2 de la Biblioteca de Facturación Google Play y las notas de la versión 3.0 de la Biblioteca de Facturación Google Play.

Verificación de compras

Para garantizar que las compras sean auténticas y no falsificadas ni repetidas, Google recomienda usar el token de compra (que se obtiene del método getPurchaseToken() en el objeto Purchase) junto con las APIs de Google Play Developer para verificar que las compras sean auténticas. Para obtener más información, consulta Cómo combatir los casos de fraude y abuso.

Atribución de compra

Muchas apps, en especial los juegos, deben garantizar que una compra se atribuya correctamente al personaje o avatar del juego, o al perfil de usuario de la app que inició la compra. A partir de la versión 2.2 de la Biblioteca de Facturación Google Play, tu app puede pasar identificadores de cuenta y perfil ofuscados a Google cuando se inicia el diálogo de compra y hacer que se devuelvan cuando se recupera una compra.

Usa los parámetros setObfuscatedAccountId() y setObfuscatedProfileId() en BillingFlowParams y recupéralos con el método getAccountIdentifiers() en el objeto Purchase.

Cómo asociar metadatos con una compra

Google te recomienda que almacenes los metadatos de una compra en un servidor de backend seguro que mantengas por tu cuenta. Estos metadatos de compra deben asociarse con el token de compra obtenido con getPurchaseToken en el objeto Purchase. Estos datos se pueden conservar pasando el token de compra y los metadatos a tu backend cuando se llama a tu PurchasesUpdatedListener después de una compra exitosa.

Para garantizar que los metadatos estén asociados si se interrumpe el flujo de compra, almacénalos en tu servidor de backend con el ID de cuenta, el SKU y la marca de tiempo del usuario antes de iniciar el diálogo de compra.

Si se interrumpe el flujo de compra antes de que se llame a PurchasesUpdatedListener, la app descubrirá la compra una vez que se reanude y llame a BillingClient.queryPurchasesAsync(). Luego, podrás enviar los valores recuperados de los objetos getPurchaseTime(), getSku() y getPurchaseToken() de Purchase a tu servidor de backend para buscar metadatos, asociar los metadatos con el token de compra y seguir procesando la compra. Ten en cuenta que la marca de tiempo que almacenaste inicialmente no coincidirá de forma exacta con el valor del getPurchaseTime() del objeto Purchase, por lo que deberás compararlos de manera aproximada. Por ejemplo, puedes verificar si los valores se encuentran dentro de un cierto período entre sí.