2011-04-04 17 views
24

tengo unas pocas preguntas conectados a Android facturación en la aplicación:facturación integrada en aplicaciones de seguridad y Diseño preguntas

  1. ¿Es posible hacer una compra de aplicación no de mercado? Entiendo que sería una vulnerabilidad, pero no tengo la oportunidad de averiguar si es posible o no.

  2. ¿Cómo puedo obtener el estado de compra para un producto en particular? Por lo que yo entiendo, se puede hacer utilizando la solicitud RESTORE_TRANSACTIONS, pero no se recomienda su uso con mucha frecuencia. Eso no es un problema teórico. Mi aplicación permite a los usuarios comprar contenido utilizando la facturación integrada en la aplicación. El contenido se puede descargar desde un servidor, y el servidor debe permitir la descarga de contenido solo si fue comprado. Pero no puede verificar si el contenido fue comprado o no sin usar una respuesta firmada de Android Market.

  3. ¿Cómo puedo obtener el precio y la descripción de un artículo de Android Market? Parece que sé la respuesta y es "no hay manera de que se pueda hacer", pero tal vez estoy equivocado. Sería muy útil tener la posibilidad de recuperar el precio del artículo.

Me resulta muy interesante cómo resolvió/resolverá estos problemas en sus aplicaciones. La respuesta a cualquiera de estas preguntas será apreciada.

Respuesta

21

En orden:

1- Nope. El proceso de facturación en la aplicación es parte de Market. Si la aplicación proviene de otra parte, no hay forma de que Market verifique el origen/autenticidad de la aplicación.

2- Es su responsabilidad almacenar el estado de compra de un producto en particular. Del doc:

Debe configurar una base de datos u otro mecanismo para almacenar la información de compra de los usuarios.

RESTORE_TRANSACTIONS debe reservarse para reinstalaciones o instalaciones por primera vez en un dispositivo.

3- Lamentablemente, en este momento tienes razón. ¡Presente una solicitud de función!

Mientras tanto, una opción es configurar un sitio web con appengine, almacenar listados de todos sus contenidos & precios allí, y luego sincronizar manualmente los precios listados en su servidor appengine con los precios actualizados en Market. Luego, haz que tu aplicación de Android obtenga los datos del servidor de App Engine. Esto es mucho mejor que los valores de precios de codificación rígida en la aplicación en sí, ya que no es necesario que todos actualicen la aplicación de inmediato para ver precios precisos cada vez que cambie algo. La única advertencia de este método es que si el usuario se encuentra en un país diferente, la facturación integrada en la aplicación mostrará un precio aproximado en su moneda original, y no hay manera de que usted determine exactamente qué precio se le mostrará.

Relacionado, uno de los Promotores de Android ofrece una charla sobre LVL/IAP en IO, llamada "Evadiendo Piratas y Deteniendo Vampiros usando la Biblioteca de Verificación de Licencias, Factura en la Aplicación y App Engine". - Definitivamente valdría la pena mirar cuando lanzan los videos de la sesión en el sitio web.

+0

Gracias por su respuesta! Tengo alguna pregunta adicional. 1) ¿Qué ocurre si mi aplicación se descompila, se modifica y se vuelve a compilar? Será una aplicación no comercial entonces. ¿La facturación en la aplicación dejará de funcionar?2) Es imposible tener un esquema de compra segura cuando almacena información sobre compras en una base de datos. Entonces, estoy desarrollando una aplicación que recibe el archivo de licencia de un servidor y lo reviso localmente. Mi servidor necesita algunos datos firmados para generar una licencia. No puedo pedirle una licencia porque será la vulnerabilidad de un servidor. ¿Cómo debo implementar esto usando la implementación actual de facturación en la aplicación? – Michael

+0

Market realiza un control de firma basado en la clave que utilizó para firmar la aplicación cuando la cargó en el mercado. Dado que la versión modificada no se firmaría con su clave, el mercado la rechazaría. Sin embargo, no hay nada que impida que un atacante determinado modifique el archivo .apk, de modo que omita por completo el proceso IAP y asuma que ha comprado todo. El enlace que proporcioné tiene un enlace a una sección de "seguridad" que cubre la protección contra este tipo de cosas. Para responder a su segunda pregunta, busque en LVL (biblioteca de verificación de licencias). Eso debería cubrir tus necesidades. –

+0

Uso la facturación en la aplicación para comprar contenido que se descarga desde un servidor. Incluso si .apk se modifica, el contenido no se puede descargar sin comprarlo. E incluso si se copia, no se puede usar sin el archivo de licencia. Ciertamente, la verificación de la licencia también se puede modificar, pero es otro problema. No estoy seguro de que Android Market verifique la firma de la aplicación, pero preferiría que sí. ¿Qué pasa con los documentos? Leí toda la documentación de facturación en la aplicación y todo el código fuente de la muestra. Pero las cosas que pregunto no están cubiertas allí. Y LVL no me ayudará porque no se puede usar para vender contenido. – Michael

Cuestiones relacionadas