¿Cuál es la lógica detrás de la suscripción de renovación automática en iOS?

Estoy trabajando con un cliente para crear una aplicación de quiosco que use suscripciones de renovación automática. Parece que no puedo encontrar la lógica correcta para esto. Entiendo las compras dentro de la aplicación, pero nunca antes me había metido con una suscripción.

Parece que no puedo envolver mi cabeza haciendo un seguimiento de esto. Parece que Apple quiere que esto sea lo más difícil posible.

Quiero tener una aplicación que ofrezca una revista nueva cada mes como una compra única, no consumible, o que les permita suscribirse.

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 verificar la suscripción cada vez que se inicia para ver si la suscripción está actualizada? 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 de muestra o un tutorial para implementar las suscripciones. ¿Hay otros servicios como este?

preguntado el 21 de mayo de 12 a las 18:05

¿Cómo se las arregló con ID de producto con suscripción? -

1 Respuestas

Quiero tener una aplicación que ofrezca una revista nueva cada mes como una compra única, no consumible, o que les permita suscribirse.

Creo que Apple creó compras dentro de la aplicación con renovación automática precisamente para su situación. La analogía de la renovación automática es la suscripción a una 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 factura otro año para mantener la suscripción.

De manera similar, con la renovación automática de iTunes, Apple facturará a los usuarios suscritos cuando su suscripción expire, a menos que el usuario se dé de baja antes del período de vencimiento. Para que funcione correctamente, usted, el desarrollador, deberá consultar con iTunes para ver si la suscripción del usuario aún es válida antes de otorgarle acceso al contenido del puesto de periódicos del mes actual. En otras palabras, desbloqueas 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 obtenerlo de Apple. Para verificar si el recibo del usuario aún está activo, debe enviar el recibo almacenado a Apple para su verificación.

Por cierto, debe tener una forma para que los usuarios restablezcan 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 tomó un par de semanas de trabajo tedioso hacer que esto funcionara para nuestra aplicación. Parece que otras personas están gastando una cantidad similar de tiempo para hacer que las suyas también funcionen. Por lo tanto, tómese su tiempo o subcontrate esta tarea si no puede permitirse el lujo de dedicar tiempo a aprenderla.

Echa un vistazo a 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 de compra en la aplicación de la WWDC de 2011: "Compra en la aplicación para iOS y Mac OS X" y "Novedades en la publicación de aplicaciones" también nos resultaron útiles.

Otros enlaces útiles incluyen:

  1. El mundo limitado de las suscripciones auto renovables,
  2. Compras en la aplicación: un recorrido completo,
  3. Verificación de los recibos de la App Store de Apple para compras dentro de la aplicación con PHP y cURL y
  4. Todo sobre las compras dentro de la aplicación Parte 3: Medidas contra la piratería.

Necesitará el método code -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.

Respondido el 27 de enero de 14 a las 07:01

Muchas gracias por la información. Sus pocos párrafos hacen un mejor trabajo al explicar esto que los documentos de Apple. Veré sus enlaces por la mañana, pero la única pregunta que tengo: cuando la aplicación verifica si el recibo actual es válido, ¿de dónde provienen los datos del recibo? ¿Es similar a simplemente hacer una nueva compra, o hay algún método que solicite un recibo actual de alguna manera? - Brodie

Obtiene el recibo devuelto a los métodos delegados de SKPurchase, al igual que los recibos no consumibles. Verifica el resultado de la llamada y retira el recibo si la suscripción es exitosa. - Soleada

Entonces, es como hacer una nueva compra, o la compra de renovación simplemente se queda en el servidor de iTunes esperando que el usuario inicie sesión nuevamente y que la aplicación la vea. Gracias de nuevo por la gran información. - Brodie

Las compras de renovación generalmente ocurren antes de que caduque la suscripción actual. Las nuevas compras se actualizan periódicamente en el dispositivo, generalmente no deterministas (por lo que puedo decir de mis pruebas o de leer las numerosas historias de problemas de otras personas que prueban). Pero se actualiza. Otra forma de forzar una actualización es hacer que el usuario realice una operación de restauración (recuerde que mencioné anteriormente que debe darle al usuario una forma de restaurar). - Soleada

@Sunny ¿Puedes ayudarme con el enlace? stackoverflow.com/questions/16102282/… - Ajay Sharma

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.