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
'sfailedTransaction
l 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?