¿Cuál es la lógica detrás de la suscripción de renovación automática en iOS?
in-app-purchase subscription (1)
Estoy trabajando con un cliente para crear una aplicación de quiosco que utilice suscripciones de renovación automática. Parece que no puedo entender la lógica correcta para esto. Entiendo las compras dentro de la aplicación, pero nunca antes he jugado con una suscripción.
Parece que no puedo envolver mi cabeza haciendo un seguimiento de esto. Parece que Apple quiere esto lo más difícil posible.
Quiero tener una aplicación que ofrezca una nueva revista cada mes como una compra única, no consumible, o permitirles que se suscriban.
Entiendo el concepto de validar el recibo cuando se compra la suscripción, pero ¿qué sucede después de eso? ¿La aplicación vuelve a revisar la suscripción cada vez que se inicia para ver si la suscripción es actual? Después de la compra inicial, ¿de dónde vienen los recibos de renovación?
Busqué en Urban Airship, que parece hacer un seguimiento de esto por usted, pero no encontré una aplicación o tutorial de ejemplo para implementar las suscripciones. ¿Hay otros servicios como este?
Quiero tener una aplicación que ofrezca una nueva revista cada mes como una compra única, no consumible, o permitirles que se suscriban.
Creo que Apple creó compras auto-renovables dentro de la aplicación para su situación. La analogía para auto-renovable es la suscripción a la revista donde la suscripción se renueva al final de cada período de suscripción. Por ejemplo, puede tener una suscripción de un año de NYTimes, donde al final de la suscripción, NYTimes le facturará un año más para que la suscripción continúe.
Del mismo modo, con iTunes auto-renovable, Apple facturará a los usuarios suscritos cuando caduque su suscripción, a menos que el usuario cancele la suscripción antes del período de vencimiento. Para trabajar correctamente, usted, el desarrollador, deberá consultar con iTunes para ver si la suscripción del usuario sigue siendo válida antes de otorgarle acceso al contenido del quiosco de periódicos de los meses actuales. En otras palabras, desbloquea el contenido después de verificar el recibo de suscripción del usuario.
Almacena el recibo actual del usuario que obtiene de iTunes en algún lugar (por ejemplo, NSUserDefaults) después de que lo obtiene de Apple. Para verificar si el recibo del usuario todavía está activo, debe enviar el recibo almacenado a Apple para su verificación.
Por cierto, debería tener una forma para que los usuarios restauren sus recibos desde su aplicación, en caso de que tengan un nuevo dispositivo o reinstalen su aplicación desde cero.
Estoy de acuerdo en que la documentación de Apple deja mucho que desear. Nos llevó un par de semanas de trabajo tedioso lograr que esto funcionara para nuestra aplicación. Parece que otras personas están gastando una cantidad similar de tiempo para hacer que el suyo también funcione. Por lo tanto, tómese su tiempo o realice una fuente externa de esta tarea si no puede darse el lujo de pasar el tiempo para aprenderla.
Echa un vistazo a la guía de programación en la aplicación para obtener una descripción de cómo se supone que funcionan las cosas. Los dos videos que compramos en la aplicación de la WWDC 2011: "La compra dentro de la aplicación para iOS y Mac OS X" y "Lo nuevo en la publicación de aplicaciones" también nos resultaron útiles.
Otros enlaces útiles incluyen:
- El limitado mundo de las suscripciones auto-renovables ,
- En compras de aplicaciones: Un recorrido completo ,
- Verificación de recibos de la tienda de aplicaciones de Apple para compras integradas con PHP y cURL y
- Todo sobre las compras dentro de la aplicación Parte 3: Medidas contra la piratería .
Necesitará el método de código -createEncodedString en el último enlace para enviar correctamente su recibo a un servidor para su verificación.
Con estos enlaces, espero haberte ahorrado un montón de investigación y prueba y error para que el tuyo funcione. Buena suerte.