Question

Je termine les travaux sur une application iOS permettant aux utilisateurs de parcourir, d'acheter et de télécharger des articles dans une grande bibliothèque multimédia hébergée en ligne dans une application Rails. La bibliothèque a des centaines d'articles achetables actuellement, et il sera probablement grandement étendu à l'avenir.

Au début, j'avais l'intention de créer un élément d'achat intégré insididite (sur iTunes Connect) pour chaque élément de la bibliothèque. Cependant, j'ai décidé que ce serait une douleur de créer toutes ces centaines d'articles d'achat intégré. De plus, je veux être capable de faire des ajouts et des modifications aux articles achetables via mon CMS sans avoir à modifier également iTunesConnect.

Au lieu de cela, j'ai maintenant l'utilisateur d'applications crée un compte avec l'application Rails. Lorsqu'ils vont acheter un article, ils achètent d'abord un article générique d'achat intégré. Une fois que cette transaction est terminée, l'application se connecte à My Rails App, enregistre l'achat et télécharge le contenu acheté.

Une chose qui me rend nerveux à propos de cette approche est que l'utilisateur pourrait effectuer avec succès l'achat intégré avec Apple, mais d'en quelque sorte échouer avec succès à la connexion avec succès à l'application Rails. Dans ce cas, l'achat ne serait pas enregistré et le contenu ne serait pas téléchargé, même si l'utilisateur a effectué un paiement. En outre, les méthodes de récupération intégrées d'achat d'Apple ne fonctionneront pas, car l'élément d'achat est générique. Seule l'application My Rails se souviendra de quels articles l'utilisateur acheté.

Donc, je vais ajouter beaucoup de vérification des erreurs et de récupération de l'état autour de ce processus. Pour vous assurer qu'il peut récupérer s'il rencontre des ennuis.

Je voulais juste dire cela au cas où n'importe qui ait une opinion ou un conseil à partager.

merci!

Charlie

mise à jour

Cela fait longtemps que cela a été long maintenant, mais j'ai fini par n'utiliser aucun achat générique dans l'application. Cela semblait juste un risque trop important. Après tout, avec des achats individuels intégrés, Apple tient une trace des achats et fournit un moyen de les restaurer. Il est donc logique de tirer parti de cela plutôt que de vous forcer à maintenir ma propre base de données d'utilisateurs et de leurs achats.

C'était une vraie douleur dans le cul pour ajouter tous ceux des articles d'achat d'applications à ITC. L'interface ITC est si horrible. J'ai rencontré beaucoup de problèmes. Mais éventuellement, ils sont tous arrivés là-bas et maintenant, les choses fonctionnent plus ou moins doucement.

Donc, à la fin, je dirais que même si c'est une douleur pour créer tous ces achats, cela en vaut la peine. Ou plutôt cela devrait en valoir la peine. Si la création de ce dossier d'achat en CTI semble ne pas valoir la peine de faire la peine de ce que vous attendez de faire en la vendant, vous avez probablement de plus gros problèmes avec votre modèle d'entreprise!

Était-ce utile?

La solution

Une fois le message IN-App réussi renvoyé de Apple ...

1. C'est mieux de stocker le produit dans un dictionnaire et supprimez le produit du dictionnaire une fois que vous avez mis à jour avec succès le serveur.

2.Inigner des événements jusqu'à la fin de la transaction.

3.better pour garder une trace des transactions I.E., Stockage des informations de transaction (ProductID, utilisateur, réception de la transaction) au côté serveur.

3.Optionally, vous pouvez fournir un service de site Web, afin que l'utilisateur puisse vous envoyer s'il a perdu son argent pendant l'achat d'applications.

Autres conseils

Une chose que vous pouvez faire, dès que la transaction est terminée, consiste à enregistrer le reçu d'achat localement (à NSUserDefaults ou quelle que soit la méthode de persistance que vous utilisez) de sorte que si vous ne pouvez pas "terminer l'achat" ( Enregistrez-le et téléchargez votre contenu à partir du serveur) Vous pouvez toujours le reprendre plus tard.

Si vous êtes toujours inquiet que cela (c.-à-d. Enregistrement du reçu d'achat localement avant de mettre à jour le serveur) pourrait échouer pour une raison quelconque, ou même que l'utilisateur peut supprimer / réinstaller l'application après avoir payé et avant de pouvoir l'enregistrer sur Votre serveur, vous pouvez toujours enregistrer sur votre serveur que l'utilisateur a lancé un achat intégré avant de le faire, puis mettez à jour son état après son complétant / annule.

BTW, vous ne l'avez pas mentionné, mais juste pour être en sécurité: vous ne faisant que passer le reçu d'achat de votre client au serveur, non? C'est la seule chose dont vous avez besoin de la transaction, comme vous pouvez (et si vous pouvez) alors Vérifiez le reçu avec Apple et utilisez-le pour extraire toutes les autres informations d'achat (comme ID de produit, etc.).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top