Pour une application de base durables avec les achats in-app, personne n'a jamais trouvé de meilleures pratiques pour l'utilisation de SKPaymentQueue de l' restoreCompletedTransactions
?
Observations
Je sais qu'il est recommandé de toujours enregistrer une transaction d'observateur à recevoir opérations en cours qui font leur chemin de retour à l'application, mais cela est une autre question. Il ressemble restoreCompletedTransactions
est quelque chose que l'application a activement décider quand faire appel à un sondage pour tous les achats, le client a déjà fait.
À partir de ce que je peux dire, la méthode est conçue pour récupérer les achats qui peuvent avoir été perdus. Par exemple, un client peut installer ou de déplacer une application vers un nouvel appareil de telle manière que l'application locale de dossiers de paiements de perte ou de réinitialisation.
Préoccupations
Ce n'est pas clair pour moi, c'est comment faire pour détecter automatiquement cette condition (c'est à dire la façon de déterminer quand un sondage pour le manque d'achats) d'une façon fiable. Je ne veux pas le visser et risque de refuser un client d'accéder à la fonctionnalité qu'ils ont déjà payé.
En même temps, je ne veux pas l'appeler restoreCompletedTransactions
chaque fois que l'application est lancée juste pour être sûr et fondamentalement revenir transactions, je sais déjà à propos de 99,9% du temps. (Sauf pour les in-app achats, mon application n'a pas vraiment besoin de toute la connectivité du réseau.)
Notes
La documentation d'Apple précise que les clients ne sont pas facturés à nouveau pour tout achats durables qu'ils ont déjà faites. Si ils essaient de ré-achat, l'opération de paiement est encore soi-disant envoyé à l'application.
Le pire des cas, un client peut récupérer les achats de cette façon, mais je voudrais encore pour éviter de marcher vers le bas un chemin qui ressemble à ré-achat de quelque chose qu'ils ont déjà payé.