2010-11-16 4 views
1

Je suis en mesure de mettre en œuvre l'achat intégré à l'application avec succès. Je suis également capable d'acheter un produit par achat in-App. Je stocke des informations d'achat dans NSUserDefaluts.So si l'utilisateur de prochaine fois essaie d'acheter le même produit, je suis capable de le gérer localement.Mon problème est si un utilisateur supprime l'application à partir de l'appareil, comment puis-je gérer le re-téléchargement de l'application sans recharger pour le même produit à nouveau.Je sais que si une application a été supprimée de l'appareil ayant dans App acheter, il doit être téléchargé à nouveau.Peut-on montrer un exemple de code pour le même?Comment télécharger une application d'achat intégrée à l'application par programmation

Merci Aditya

Salut Merci pour un reply.I rapides ont mis en œuvre la même chose que vous avez suggested.What je me demande est si je supprime mon application et l'installer à nouveau, je suis invité à acheter Je dois payer à nouveau pour la mise à niveau ou est-il géré à partir du serveur Apple (ie si je mets à jour le même produit, puis-je recharger?) Y at-il un moyen de savoir qu'il a été mis à niveau? ?

+0

Non, vous n'avez pas besoin de payer à nouveau pour la mise à niveau. Au lieu de cela, au premier lancement, vous devriez appeler la méthode que j'ai pointée, pour obtenir d'Apple la liste des achats précédents effectués par l'utilisateur. Cette liste est stockée sur les serveurs d'Apple; La suppression/réinstallation de l'application n'a aucun impact sur cette liste, vous devez donc vous y fier. – Alex

+0

En d'autres termes, la façon dont vous pouvez gérer cela est: - au démarrage de l'application, voir s'il y a des éléments qui doivent encore être achetés dans votre jeu; Si oui, essayez d'obtenir la liste restoreCompletedTransactions d'Apple et mettez à niveau les éléments. De cette façon, vous pouvez gérer à la fois la suppression/réinstallation de l'application, ainsi que l'utilisation de l'application sur plusieurs appareils partagés (vous savez qu'une application peut être utilisée sur 5 appareils du même compte d'utilisateur iTunes). – Alex

+0

Pouvez-vous élaborer un peu sur votre réponse? J'ai eu ce que vous essayez de dire, mais ce serait bien si vous pouvez expliquer un peu en détail. – Aditya

Répondre

6

L'api StoreKit s'en occupe et vous fournit, sur demande, une liste d'identifiants des articles achetés. Une fois que vous les avez, c'est à vous de télécharger à nouveau les produits (si ce n'est déjà fait dans l'application).

Extrait de l'aide de l'API StoreKit:

-(void)restoreCompletedTransactions

demande à la file d'attente de paiement pour restaurer les achats réalisés précédemment.

Votre application appelle cette méthode pour restaurer les transactions précédemment terminées afin de pouvoir les traiter à nouveau. Par exemple, votre application l'utilisera pour permettre à un utilisateur de débloquer du contenu précédemment acheté sur un nouveau périphérique. Lorsque vous créez un nouveau produit à vendre dans votre magasin, vous choisissez si ce produit peut être restauré ou non. Pour plus d'informations, reportez-vous au Guide de programmation des achats intégrés.

La file d'attente de paiement émettra une nouvelle transaction pour chaque transaction précédemment terminée qui peut être restaurée. Chaque transaction inclut une copie de la transaction d'origine.

1

//// Commentaires code de pseudo ////

// Réinstaller App:

// Restaure les transactions déjà acheté ...

// Est-ce que les NSUserDefaults ont la Historique d'achat??? -

// YES: Charger le Tableau des articles restant à vendre, Autres -

// NO: Obtenez la liste restoreCompletedTransactions d'Apple

// et créer un conteneur pour contenir les achats antérieurs de transaction .

// nouvelle installation de l'application frais:

// Lorsqu'un utilisateur fait le premier IAP.Ajoutez-le au conteneur et à NSUserDefaults

// Ce conteneur sera ajouté à NSUserDefaults lorsqu'au moins un achat a été effectué.

Questions connexes