2012-06-25 12 views
5

Necesito establecer una variable global cuando un usuario realiza una compra desde la aplicación. Podría usar NSUserDefaults, y simplemente tener una clave llamada "Purchased", pero eso no parece muy seguro.Compras integradas de iOS: la mejor manera de saber si el usuario ha comprado

¿Cuál es la mejor manera de almacenar datos de manera segura para que yo sepa si los usuarios han realizado o no una compra?

Por ejemplo, en una vista particular, necesito saber si mostrar o no un botón "Comprar". Obviamente, debería estar oculto si ya hicieron la compra.

Respuesta

3

Para datos seguros, debe usar el llavero iOS. Aquí está la documentación:

http://developer.apple.com/library/mac/#documentation/Security/Conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html

Espero que esto ayude.

+0

No creo que esto ayude en iOS. – soleil

+1

Claro que sí. El llavero existe en iOS, y es la manera nativa más segura de almacenar datos. Un usuario no podría editar estos datos fácilmente, por lo que almacenar los datos en el llavero es el mejor y más seguro método. – C0deH4cker

0

No es necesario almacenar esa información. Hay un método para restaurar todas las compras del usuario. Busque restoreCompletedTransactions.

Puede verificar todas las compras del usuario en su vista y luego mostrar el botón "Comprar" para todos los artículos que todavía se pueden comprar.

ACTUALIZACIÓN:

Oh! No entiendo bien tu pregunta. El método anterior obtendrá las compras que el usuario haya realizado en caso de una reinstalación de la aplicación, por ejemplo. Con respecto a su pregunta, está completamente bien almacenar información relativa a los productos comprados en NSUserDefaults para darle al usuario los bienes, niveles o lo que haya pagado.

Recomiendo this tutorial paso a paso que me ayudó a implementar compras en la aplicación para responder a todas sus preguntas.

+0

¿Esto funcionará incluso si el usuario no está conectado a internet? – soleil

+0

No, no lo hará, pero el usuario no podrá comprar nada ni recuperar ninguna otra información, como los precios, por lo que no tiene sentido mostrar qué artículos se pueden comprar. Si no hay conexión a Internet, solo notifique al usuario y mantenga sus botones desactivados. –

+0

Sí, pero si realizan una compra un día y vuelven a la aplicación un tiempo después y no tienen una conexión, la interfaz debería poder mostrarles que ya hicieron la compra y permitirles usar el nueva funcionalidad. Tengo que ser capaz de almacenar eso de alguna manera. – soleil

Cuestiones relacionadas