iOS sandbox environment renouvellement automatique de l'abonnement

j'ai les questions suivantes concernant iOS auto-renouvelable abonnements

a) les abonnements à renouvellement automatique sont-ils vraiment un renouvellement automatique dans l'environnement du bac à sable? Le problème semble être que les abonnements ne sont pas renouvelés automatiquement bien que la documentation indique que même dans un environnement de bac à sable il devrait se produire 6 fois.

b) est-ce que nous avons besoin d'appeler à nouveau destransactions effectuées pour obtenir un nouveau reçu pour automatiquement prolongé abonnement, Ou is-paymentQueue: updatedTransactions: méthode appelée automatiquement par iOS? (Je suppose que c'est automatiquement appelé sur 'lancer' & 'la rotation de l'arrière-plan' pas sûr)

c) Comment avez-vous traité le même abonnement sur plusieurs appareils? Cela peut être traité par destransactions restorecompleted, mais l'appeler va demander le mot de passe de l'utilisateur, il n'est donc pas très pratique de l'appeler chaque fois que l'application démarre.

23
demandé sur Daniel Galasko 2011-11-07 11:14:54

2 réponses

a) les abonnements à renouvellement automatique ne sont pas uniformes dans l'environnement du bac à sable. Parfois, un abonnement se renouvelle plusieurs fois (environ 5) avant de se terminer. D'autres fois il ne renouvelle pas du tout.

b) (reçus de transactions iOS6 seulement) vous n'avez pas besoin d'appeler restoreCompletedTransactions pour vérifier l'état d'un abonnement si vous stockez des reçus antérieurs (de préférence sur votre serveur). Il suffit de prendre n'importe quel reçu d'abonnement vous avez stocké pour cet utilisateur et le soumettre à L'App Store pour vérification. Ils vous répondront avec le latest_receipt_info incluant le expires_date que vous pouvez utiliser pour déterminer le statut d'abonnement actuel.

c) vous devez inviter nouveaux utilisateurs à "restaurer les achats antérieurs" à quel point vous appelez des transactions restorecompleted. Ensuite, soumettez un de ces reçus (de préférence à partir de votre serveur) à L'App Store pour vérification pour obtenir les détails décodés A propos de la transaction. Cherchez la clé original_transaction_id dans les informations de réception. Cela contiendra toujours l'id de la toute première fois que cet utilisateur a initié un abonnement avec vous. Si vous comparez cette ID à d'autres dans votre système, vous devriez être en mesure de déterminer quels appareils partagent un compte Apple. (Puisque Apple ne vous permet pas de voir L'identifiant Apple D'un utilisateur, c'est la meilleure façon d'identifier un compte qui s'étend sur plusieurs appareils).

similaire à cette question: le renouvellement automatique d'iOS a expiré à la fin de la période d'abonnement actuelle

27
répondu Andrew 2017-05-23 12:26:03

pour ajouter à cela, il semble que la ligne dans la documentation D'Apple est mal interprétée

Le renouvellement de

se fait à un rythme accéléré, et les souscriptions auto-renouvelables renouvellent un maximum de six fois par jour. Cela vous permet de tester comment votre application gère un renouvellement d'Abonnement, une péremption d'abonnement, et un historique d'abonnement qui comprend des lacunes.

cela semble signifier que tous les abonnements par jour ne seront renouvelés que 6 temps. Plutôt que chaque abonnement se renouvellera 6 fois avant d'annuler. Cela m'a jeté pour un certain temps.

Il semble aussi être dans une période de 24 heures. Pas rafraîchissant à un moment donné. Par exemple, j'ai fait un abonnement à 11h qui ne se renouvelle pas. J'en ai fait un de nouveau à 14h qui a été renouvelé 6 fois.

8
répondu AndyRyan 2016-02-18 15:48:13