2012-05-21 23 views
16

Estoy trabajando con un cliente para crear una aplicación de quiosco que utiliza suscripciones de renovación automática. No puedo entender la lógica correcta para esto. Entiendo las compras integradas en la aplicación, pero nunca antes me he equivocado con una suscripción.¿Cuál es la lógica detrás de la suscripción de renovación automática en iOS

Parece que no puedo entender esto. Parece que Apple quiere esto tan difícil como sea posible.

Quiero tener una aplicación que ofrezca una revista nueva todos los meses como compra única, no consumible, o permitirles 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 lanza para ver si la suscripción es actual? Después de la compra inicial, ¿de dónde provienen los recibos de renovación?

Busqué en Urban Airship, que parece hacer un seguimiento de esto para usted, pero no encontré una aplicación de muestra o un tutorial para implementar las suscripciones. ¿Hay otros servicios como este?

+0

¿Cómo te las arreglaste con identificadores de productos con suscripción? –

Respuesta

29

Quiero tener una aplicación que ofrezca una revista nueva todos los meses como compra única, no consumible, o permitirles suscribirse.

Creo que Apple creó compras directas en la aplicación para su situación. La analogía de la renovación automática es la suscripción a una revista en la que 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 a NYTimes, donde al final de la suscripción NYTimes le factura un año más para mantener activa la suscripción.

De manera similar, con iTunes auto-renovable, Apple facturará a los usuarios suscritos cuando caduque su suscripción a menos que el usuario haya cancelado la suscripción 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 sigue siendo válida antes de otorgarle acceso al contenido de quiosco actual de los meses. En otras palabras, desbloquea el contenido después de verificar el recibo de suscripción del usuario.

Almacena el recibo actual del usuario que obtienes de iTunes en algún lugar (por ejemplo, NSUserDefaults) después de que lo obtienes 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 de su aplicación, en caso de que tengan un nuevo dispositivo o reinstalen su aplicación desde cero.

Acepto que la documentación de Apple deja mucho que desear. Nos tomó un par de semanas de trabajo tedioso para que esto funcione para nuestra aplicación. Parece que otras personas están pasando una cantidad similar de tiempo para hacer que su trabajo también. Por lo tanto, tómese su tiempo o aprovéchese de esta tarea si no puede permitirse el lujo de gastar el tiempo para aprenderla.

Eche un vistazo a In-app programing guide 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 2011: "Compra integrada en la aplicación para iOS y Mac OS X" y "Novedades en la publicación de aplicaciones" también nos fueron útiles.

Otros enlaces útiles son:

  1. The limited world of auto-renewable subscriptions,
  2. In App Purchases: A Full Walkthrough,
  3. Verifying Apple App Store Receipts For In App Purchases With PHP and cURL y
  4. All About In-App Purchases Part 3: Anti-Piracy Measures.

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 haber ahorrado un montón de investigación y ensayo y error para que el suyo funcione. Buena suerte.

+0

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

+0

Obtiene el recibo devuelto a los métodos de delegado de SKPcompra, al igual que los recibos no consumibles. Verifica el resultado de la llamada y quita el recibo si la suscripción es exitosa. – Sunny

+0

Entonces, ¿es como hacer una nueva compra o la compra de renovación solo se sienta en el servidor de iTunes esperando que el usuario vuelva a iniciar sesión y la aplicación la vea? Gracias de nuevo por la excelente información. – Brodie

Cuestiones relacionadas