Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cuál es el propósito de la "carga útil del desarrollador"? Para qué se puede usar?

Los documentos Android dicen que su significado es "información suplementaria acerca de un pedido", pero al mismo tiempo también dice que no lo use para enviar "datos o contenido real".

Entonces, ¿cuál es el propósito de esta "carga útil del desarrollador"? ¿Por qué existe esta función? ¿Puede describir un ejemplo práctico del mundo real de cómo puedo utilizarlo en mi propia implementación de facturación en la aplicación?

  • No se puede realizar la compra en la aplicación de Android con la cuenta de prueba "El editor no puede comprar este elemento"
  • Google IAP devuelve un símbolo de compra corto para la verificación
  • ¿Cómo probar fácilmente las compras en la aplicación sin publicarlas o firmarlas primero?
  • Falla en la facturación de la aplicación en la nueva versión de mi aplicación
  • Error de configuración de Sandbox en la aplicación de Android en un ID de Gmail concreto
  • Tarjeta de crédito para la prueba de Google Play
  • ¿Cómo calcular los ingresos potenciales de usar AdMob en la aplicación?
  • IAB firmó datos sin órdenes en él
  • 4 Solutions collect form web for “¿Cuál es el propósito de la "carga útil del desarrollador"? Para qué se puede usar?”

    Como mencionó aromero el campo de carga útil del desarrollador es limitado en tamaño. Es por eso que los docs recomiendan no usar esta clave para enviar datos o contenido.

    Lo que debe hacer es guardar el contenido en una base de datos en algún lugar (por ejemplo, en el dispositivo del usuario o en su propio servidor) y, a continuación, colocar el índice del registro en el campo de carga útil del desarrollador. Cuando lo recibe de nuevo mediante la intención de difusión PURCHASE_STATE_CHANGED , puede asociarlo con los datos de su base de datos.

    Tenga en cuenta que la carga útil del desarrollador no se envía por el mercado cuando se utiliza cualquiera de los identificadores de prueba de ítem android. Usted tiene que estar usando reales en los artículos de compra de la aplicación.

    Además, de acuerdo con esto (no lo he verificado todavía), no recibirás el desarrollo de developerPayload en DEBUG MODE. Debe firmar su aplicación en RELEASE MODE para recibir el proceso de desarrollo de developerPayload.

    Por último, como comentó a continuación, el JSONObject devuelto (en respuesta a GetPurchaseInformation) ya incluye orderId, productId, purchaseTime y más. Por lo tanto, la "carga útil del desarrollador" debería utilizarse para cualquier cosa, pero para identificar la compra … es decir, la respuesta es lo contrario de lo que se ha sugerido a continuación. Lo que se puede utilizar la "carga útil del desarrollador" es añadir alguna información que no esté en el JSONObject , como los detalles adicionales del comprador (por ejemplo, la ubicación GPS si está activada, la marca y el modelo del dispositivo, etc.).

    La respuesta aceptada es engañosa y el último párrafo es claramente incorrecto. Esto es lo que la documentación oficial tiene que decir al respecto.

    Debe pasar un token de cadena que ayude a su aplicación a identificar al usuario que realizó la compra, para que posteriormente pueda verificar que se trata de una compra legítima por parte de ese usuario. Para los artículos consumibles, puede utilizar una cadena generada aleatoriamente, pero para los artículos no consumibles debe utilizar una cadena que identifique de forma exclusiva al usuario.

    Cuando regrese la respuesta de Google Play, asegúrese de verificar que la cadena de carga útil del desarrollador coincida con el token que envió anteriormente con la solicitud de compra. Como precaución adicional de seguridad, debe realizar la verificación en su propio servidor seguro.

    La carga útil puede ayudarle a evitar identificar a los usuarios que eludieron el API de Google Play Service o su aplicación de alguna manera enviando la carga útil al servidor donde puede comprobar si este usuario alguna vez ha comprado el elemento. Presumiblemente evadir el GPS obtendrá su aplicación engañada con el certificado de compra. Pero si tiene todos los ID de usuario de las personas que realmente compraron el artículo ahorrado en su servidor, sería fácil validar la compra basándose en el ID de usuario. El problema aquí – google hizo imposible confiar en él a menos que tengas todos tus usuarios "logueados" de alguna manera.

    Los documentos proporcionan un ejemplo real:

    Una cadena especificada por el desarrollador que se puede especificar al realizar una solicitud REQUEST_PURCHASE. Este campo se devuelve en la cadena JSON que contiene información de transacción para un pedido. Puede utilizar esta tecla para enviar información suplementaria con una orden. Por ejemplo, puede utilizar esta tecla para enviar claves de índice con un pedido, lo cual es útil si está utilizando una base de datos para almacenar información de compra. Le recomendamos que no utilice esta tecla para enviar datos o contenido.

    Puede utilizar este campo para identificar el elemento que el usuario está comprando. Cuando emite una solicitud REQUEST_PURCHASE , puede poner información adicional utilizando DEVELOPER_PAYLOAD . Cuando obtenga la respuesta de PURCHASE_STATE_CHANGED , recibirá esta información en el campo developerPayload para que pueda identificar el pedido.

    Este campo está limitado a 256 caracteres y no está encriptado (puede comprobar la firma), no pretende almacenar contenido real.

    Espero que esto sea de ayuda:

    Recomendación de seguridad: Cuando envíe una solicitud de compra, cree un token de cadena que identifique de forma exclusiva esta solicitud de compra e incluya este token en el archivo de desarrollo de desarrollador . Puede utilizar una cadena generada aleatoriamente como símbolo. Cuando reciba la respuesta de compra de Google Play, asegúrese de comprobar la firma de datos devueltos, el ID de pedido y la cadena de código de desarrollo del desarrollador. Para mayor seguridad, debe realizar la comprobación en su propio servidor seguro. Asegúrese de verificar que el ID del pedido es un valor único que no ha procesado previamente y que la cadena del valor de desarrollo del programa compara el símbolo que envió anteriormente con la solicitud de compra.

    Más información aquí.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.