Quando usar restoreCompletedTransactions para compras no aplicativo?

Para um aplicativo básico com compras não consumíveis no aplicativo, alguém descobriu as práticas recomendadas para usar o SKPaymentQueue?restoreCompletedTransactions?

Observações

Eu sei que é recomendado sempre registrar um observador de transações para receber transações pendentes que retornam ao aplicativo, mas essa é uma pergunta diferente. Parece querestoreCompletedTransactions é algo que o aplicativo precisa decidir ativamente quando ligar para pesquisar todas as compras que o cliente já fez.

Pelo que posso dizer, o método é projetado para recuperar compras que podem ter sido perdidas. Por exemplo, um cliente pode instalar ou mover um aplicativo para um novo dispositivo de modo que os registros locais de pagamentos anteriores do aplicativo sejam perdidos ou redefinidos.

Preocupações

O que não está claro para mim é como detectar automaticamente essa condição (por exemplo, como decidir quando pesquisar por compras ausentes) de maneira confiável. Eu não quero estragar tudo e arriscar negar ao cliente o acesso à funcionalidade pela qual eles já pagaram.

Ao mesmo tempo, não quero ligarrestoreCompletedTransactions cada vez que o aplicativo é lançado apenas para ser seguro e, basicamente, receber de volta transações que já conheço 99,9% do tempo. (Exceto para compras no aplicativo, meu aplicativo realmente não requer conectividade de rede.)

Notas

A documentação da Apple esclarece que os clientes não são cobrados novamente por compras não consumadas que já tenham feito. Se eles tentarem voltar a comprar, uma transação de pagamento ainda será enviada para o aplicativo.

Na pior das hipóteses, um cliente poderia recuperar as compras dessa maneira, mas eu ainda gostaria de evitar percorrê-las por um caminho que lembra a compra de algo pelo qual elas já pagaram.

questionAnswers(3)

yourAnswerToTheQuestion