Handle canceló las transacciones IAP

Estoy usando StoreKit para compras en la aplicación. Estoy descubriendo que la API es peculiar en su comportamiento cuando el usuario presiona el botón "Cancelar".

Por ejemplo, si presiono Cancelar en la pantalla "Confirme su compra en la aplicación", obtengo unSKPaymentTransactionStateFailed transacción conerror.code == SKErrorPaymentCancelled como era de esperar.

Pero si presiono Comprar y luego presiono Cancelar, obtengo unFailed transacción conerror.code == 0. Loserror.localizedDescription es "No se puede conectar a iTunes Store", lo cual es claramente una mentira.

Es tentador tratar a todosFailed transacciones como cancelaciones ignorables, pero también puedo ver claramente que si el dispositivo está fuera de línea en modo avión, obtengo unFailed transacción sin ventana emergente de alerta; Realmente debería notificar al usuario que explique el problema en ese caso.

Tengo en cuenta que MKStoreKit asume que todas las fallas son cancelaciones. @MKStoreManager 'sfailedTransactionl método @ nunca se llama; @MKStoreObserver siempre llama atransactionCanceled para todosFailed transacciones. LosMKStoreManager.h comentarios recomendar ningún mensaje de error paratransactionCanceled, lo cual tiene sentido, pero luego quién notificará al usuario sobreFailed transacciones no canceladas?

¿Cuál es la mejor práctica para manejar estas fallas? ¿Debo tragar errores? ¿Siempre muestra un error, incluso si es redundante?

Respuestas a la pregunta(5)

Su respuesta a la pregunta