ios - buttons - ionic toolbar
¿Utiliza in_app o latest_receipt_info para obtener el último recibo para transacciones de estilo iOS 7 renovables automáticamente? (4)
Para verificar que una suscripción auto renovable no haya caducado, verifique el elemento latest_receipt_info
.
Esto es lo que actualmente (2017-08-09) está documentado oficialmente en los elementos in_app
y latest_receipt_info
:
in_app
En el archivo JSON, el valor de esta clave es una matriz que contiene todos los recibos de compra en la aplicación basados en las transacciones de compra en la aplicación presentes en los datos de recibos de la base de entrada 64. Para recibos que contengan suscripciones renovables automáticamente, verifique el valor de la clave latest_receipt_info para obtener el estado de la renovación más reciente.
( source )
latest_receipt_info
Solo se devuelve para recibos que contengan suscripciones auto-renovables. Para recibos de transacciones de estilo iOS 6, esta es la representación JSON del recibo de la renovación más reciente. Para recibos de aplicaciones de estilo iOS 7, el valor de esta clave es una matriz que contiene todas las transacciones de compra dentro de la aplicación. Esto excluye las transacciones de un producto consumible que su aplicación haya marcado como finalizadas.
( source )
Estoy intentando verificar que la compra de una aplicación automática renovable no haya caducado en el lado del servidor (no en un dispositivo).
Estoy usando el recibo Grand Unified de Apple (transacciones de estilo iOS 7). La respuesta devuelta por Apple contiene elementos in_app
y latest_receipt_info
con una matriz de recibos. El elemento JSON in_app
contiene recibos MENOS que latest_receipt_info
. Esperaba que ambos elementos contuvieran el mismo número o recibos.
Además, esperaba que el elemento in_app
contuviera TODOS los recibos. Sin embargo, parece que latest_receipt_info
realidad contiene todos los recibos. La documentación de Apple parece sugerir el uso de in_app
para encontrar el último recibo.
Estoy sorprendido de ver latest_receipt_info
porque la documentación de Apple indica que este elemento es "Solo se devuelve para recibos de transacciones del estilo iOS 6 para suscripciones auto-renovables". (no iOS 7+).
¿Qué elemento JSON debo iterar para encontrar el último recibo para transacciones de estilo iOS 7 auto renovables: in_app
o latest_receipt_info
?
Solo quería dejar claro que solo el campo latest_receipt_info
está devolviendo el último recibo renovado. Esto se basa en lo que realmente estamos recibiendo de Apple.
La documentación relevante está aquí en la página 21.
Aunque indica que los campos latest_receipt
y latest_receipt_info
son "Solo devueltos para recibos de transacciones del estilo de iOS 6 para suscripciones auto-renovables", hemos encontrado que se devuelven en nuestros recibos de iOS 7. El campo in_app
dentro del objeto de receipt
también se devuelve con datos casi idénticos, pero no contiene la información de recibo más reciente, que es la que le interesa en el caso de una renovación automática.
La documentación anterior deja bastante claro el uso de in_app
. Tenga en cuenta que la línea "Las claves no documentadas a continuación están reservadas para el uso de Apple y su aplicación las debe ignorar" en la documentación. Entonces, aunque el recibo decodificado tiene latest_receipt_info
, debemos ignorarlo.
Pero estoy de acuerdo, la documentación es muy deficiente y eso me pone nervioso. Déjeme saber cómo fue su experiencia con la verificación de recibos de estilo iOS 7 en producción.
This es la discusión más reciente y clara sobre esto. Espero que esto ayude.