2010-03-16 5 views
3

Nous essayons de mettre en œuvre un service d'abonnement avec achat in-app dans notre application. Le problème est que notre service ne nécessite pas de compte d'utilisateur pour la dernière année de service. Les utilisateurs utilisent simplement ce service avec des publicités affichées. Nous voulons leur donner un abonnement où ils peuvent acheter par exemple, 3 mois pour faire enlever la publicité.Est-il possible de lier un abonnement à un compte iTunes avec un achat intégré?

Comment cela peut-il être fait? Nous devrons en faire un consommable parce que c'est un abonnement. Mais nous ne saurions pas quand l'abonnement se termine.

  • Nous ne pouvons pas enregistrer l'état localement parce que l'utilisateur peut réinstaller l'application
  • Nous ne pouvons pas enregistrer l'état sur le serveur et l'attacher à leur appareil parce que parfois l'utilisateur change dispositif
  • Nous n'avons pas de compte utilisateur pour lier l'abonnement et nous ne voulons pas introduire un système de compte utilisateur qui gâcherait l'expérience.

Existe-t-il un moyen d'associer l'achat à leur compte iTunes? Alors qu'il est transporté avec eux quand ils réinstallent ou changent de périphérique?

+0

à quelle fréquence vos utilisateurs vont-ils changer d'appareil dans votre fenêtre de 3 mois? Probablement pas si souvent ... peut-être juste mordre la balle et gérer les demandes de support par e-mail – slf

Répondre

1

Qu'en est-il de l'associer à son compte Facebook ou Twitter? Ensuite, vous avez transformé le "créer un compte" bummer en une fonctionnalité de réseau social.

EDIT:

Ce que vous recherchez est très probablement stocké dans le système à l'échelle porte-clés. Malheureusement, la dernière fois que j'ai vérifié il n'y a aucun accès de développeur disponible à ce trousseau à l'échelle du système, mais je pourrais me tromper. Il vaut probablement la peine de noter que vous pouvez manipuler vos propres groupes d'accès, voir l'exemple GenericKeychain pour plus d'informations à ce sujet.

-1

Votre question est étrange car un achat IS associé au compte utilisateur iTunes. Supposons qu'un utilisateur supprime l'application de son téléphone et la réinstalle, il peut récupérer tous ses abonnements (qui sont stockés du côté Apple sur son compte iTunes).

Ce mécanisme est décrit comme « opérations » dans Recovering le document de la pomme (ce qui est à l'application de soutenir et de mettre en œuvre): http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/StoreKitGuide/MakingaPurchase/MakingaPurchase.html#//apple_ref/doc/uid/TP40008267-CH3-SW2

Vous serez en mesure d'interroger les itunes compte de la utilisateur de votre application, et demander "quels sont les produits actuellement achetés de cet utilisateur?"

Ensuite, lors de la récupération des transactions, vous récupérez la référence à tous les SKPaymentTransaction sur lesquels vous pouvez demander le transactionDate (en tant que propriété). Cela vous donnera l'information QUAND l'utilisateur a acheté votre consommable.

De là, vous pouvez également obtenir le produit qui a été acheté en utilisant aPaymentTransaction.payment.productIdentifier

Si vous savez que cet identifiant de produit est un abonnement pour 3 mois, vous pouvez comparer la date de la transaction et la date actuelle et vérifier si c'est en dessous des 3 mois ou pas.

+0

De l'apple documentatio - "Les abonnements et les produits consommables ne sont pas automatiquement restaurés par Store Store. Pour restaurer ces produits, vous devez enregistrer les transactions sur votre propre serveur quand ils sont achetés et fournissent votre propre mécanisme pour restaurer ces transactions sur les appareils de l'utilisateur. " Votre méthode ne fonctionnera pas avec consommable. Et si vous en faites un non-consommable, ils ne seront pas en mesure d'acheter trois autres méthodes après son expiration. – erotsppa

+0

:/Je ne savais pas cela, merci de mettre en évidence. Cela complexifie énormément les scénarios consommables .... Cela signifie que lorsque vous achetez plusieurs fois le même produit consommable que dans l'achat d'une application, vous n'obtiendrez pas plusieurs instances de SKPaymentTransaction du côté d'Apple. C'est vraiment curieux :( – yonel

0

Vous pouvez essayer d'utiliser cette fonction pour accéder à la iTunesMetadata.plist qui a une clé appleId contenant l'identifiant applestore utilisé pour télécharger l'application.Bien sûr, cela peut être considéré comme non documenté, et Apple ne le respecte pas avec les mises à jour futures ou simplement rejeter votre application.

Questions connexes