Manipular transações IAP canceladas

Estou usando o StoreKit para compras no aplicativo. Estou descobrindo que a API é peculiar em seu comportamento quando o usuário pressiona o botão "Cancelar".

Por exemplo, se eu pressionar Cancelar na tela "Confirme sua compra no aplicativo", recebo umaSKPaymentTransactionStateFailed transação comerror.code == SKErrorPaymentCancelled como eu esperava.

Mas se eu pressionar Comprar e pressionar Cancelar, recebo umFailed transação comerror.code == 0. Oerror.localizedDescription é "Não é possível conectar à iTunes Store", o que é claramente uma mentir

É tentador tratar tudoFailed transações como cancelamentos ignoráveis, mas também posso ver claramente que, se o dispositivo estiver offline no modo avião, recebo umaFailed transação sem pop-up de alerta; Eu realmente deveria notificar o usuário para explicar o problema nesse caso.

Notei que MKStoreKit assume que todas as falhas são cancelamentos.MKStoreManager 'sfailedTransaction método nunca é chamado;MKStoreObserver sempre chamatransactionCanceled para todosFailed transações. OMKStoreManager.h comentáriosrecommend nenhuma mensagem de erro paratransactionCanceled, o que faz sentido, mas quem notificará o usuário sobreFailed transações não canceladas?

Qual é a melhor prática para lidar com essas falhas? Devo engolir erros? Sempre mostrar um erro, mesmo que seja redundante?

questionAnswers(5)

yourAnswerToTheQuestion