Achats intégrés dans iOS avec Swift 3

introduction

L’achat via l’application est une fonctionnalité intéressante pour tous les développeurs qui souhaitent générer plus de revenus et offrir du contenu et des fonctionnalités supplémentaires via leurs applications. Par exemple, pour les jeux, vous pouvez acheter des pierres précieuses ou des pièces de monnaie, et pour les applications de photographie, vous pouvez débloquer de nouveaux effets ou outils. Et vous pouvez faire tout cela en utilisant une carte de crédit ou un autre mode de paiement, sans quitter l’application.

Dans ce tutoriel, je couvrirai toutes les étapes nécessaires pour créer un Consommable et Non consommable Produit IAP sur iTunes Connect, et je vous montrerai le code dont vous aurez besoin pour acheter les deux articles. J’ai fait un exemple de projet Xcode avec une étiquette et deux boutons, alors téléchargez-le et suivez ce tutoriel pour comprendre comment cela fonctionne.

Créer un testeur de sandbox dans iTunes Connect

Je suppose que vous avez déjà créé une application iOS dans le Mes applications section sur iTunes Connect. La première chose à faire est de créer un Testeur de bac à sable pour tester IAP sur votre appareil réel (pas de simulateur – il ne prend pas en charge les achats intégrés).

Entrer Utilisateurs et rôles, allez au Testeur de bac à sable onglet, puis cliquez sur le (+) signe à côté de Testeur.

Utilisateurs et rôles dans iTunes Connect

Remplissez le formulaire pour ajouter un nouveau testeur de bac à sable. Une fois que vous avez enregistré vos informations, revenez à la Mon appli et cliquez sur l’icône de votre application pour entrer ses détails et créer des produits IAP.

Créer des produits IAP dans iTunes Connect

Produits consommables

Clique le traits puis l’onglet (+) signe à côté de Achats intégrés. Vous pouvez créer un produit à la fois, alors commençons par un Consommable un.

Sélectionnez l'achat de consommables dans l'application

UNE Consommable IAP, comme son nom l’indique, est un produit que vous pouvez acheter plusieurs fois. Nous l’utiliserons pour collecter des «pièces» supplémentaires dans notre application de démonstration.

Cliquez sur Créer pour initialiser votre élément IAP. Sur l’écran suivant, vous pouvez configurer toutes les informations sur votre produit:

  • Nom de référence: ce nom sera utilisé sur iTunes Connect et dans Ventes et tendances rapports. Il ne sera pas affiché sur l’App Store et vous pouvez taper le nom de votre choix, mais il ne peut pas dépasser 64 caractères.
  • ID produit: Un identifiant alphanumérique unique qui sera récupéré par l’application afin de reconnaître votre produit. Les développeurs utilisent généralement une syntaxe inverse Web pour les identifiants de produit. Dans cet exemple, nous avons choisi com.iaptutorial.coins. Plus tard, nous collerons cet identifiant sous forme de chaîne dans notre code.
  • Prix: Choisissez un niveau de prix dans le menu déroulant. N’oubliez pas que pour vendre votre produit d’achat via l’application sur l’App Store, vous devez avoir demandé un Contrat d’application payant dans le Accords, fiscalité et banque section.
  • Localisations: Pour ce tutoriel, nous n’avons choisi que l’anglais, mais vous pouvez ajouter d’autres langues en cliquant sur le bouton (+) bouton. Tapez ensuite un Afficher un nom et un La description. Les deux seront visibles sur l’App Store.
  • Capture d’écran: Téléchargez une capture d’écran pour examen. Il ne sera pas affiché dans l’App Store et il doit avoir une taille valide pour votre plate-forme d’application, donc si votre application est universelle, vous pouvez télécharger une capture d’écran iPad.
  • Notes de révision: Toute information supplémentaire sur votre IAP qui peut être utile pour le réviseur.
Créer un nouveau produit IAP

Une fois que vous avez terminé, cliquez sur sauvegarder et vous recevrez cette alerte:

Votre premier achat intégré doit être soumis avec une nouvelle version de l’application. Sélectionnez-le dans la section Achats intégrés de l’application et cliquez sur Soumettre.

Produits non consommables

Cliquez maintenant sur le bouton Achats intégrés dans la liste de gauche, juste au-dessus du Centre de jeu et ajoutez un nouveau produit IAP. Cette fois, sélectionnez le Non consommable option:

Créer un produit non consommable

Cliquez sur Créer et répétez les étapes mentionnées ci-dessus. Puisque ce sera un Non consommable produit, les utilisateurs ne pourront l’acheter qu’une seule fois et Apple a besoin de la possibilité de restaurer ces achats. Cela se produit au cas où vous désinstallez l’application et la réinstallez à nouveau, ou si vous la téléchargez à partir d’un autre appareil avec votre même identifiant Apple et que vous devez récupérer vos achats sans les payer deux fois. Donc plus tard, nous ajouterons un Restaurer l’achat fonction dans notre code.

L’ID de produit que nous avons créé maintenant est com.iaptutorial.premium, avec un niveau de prix de 2,99 USD. Nous l’avons appelé Débloquez la version Premium.

Une fois que vous avez terminé de remplir tous les champs, enregistrez votre produit et revenez à la page Achats intégrés. Vous devriez maintenant avoir une liste de vos deux produits, avec leur Nom, Type, ID et Statut définir comme Prêt à soumettre.

Liste des achats intégrés

Revenez sur la page de votre application en cliquant sur le Magasin d’applications et Préparez-vous à la soumission boutons. Faites défiler vers le bas Achats intégrés section, juste en dessous Informations générales sur l’application, et cliquez sur le (+) bouton pour ajouter vos produits IAP.

Ajouter des achats intégrés à la page d'informations de vos applications

Sélectionnez-les tous et cliquez sur Terminé.

Sélectionnez vos produits IAP

Enfin, cliquez sur sauvegarder dans le coin supérieur droit de l’écran et vous aurez terminé avec la configuration des produits d’achat dans l’application sur iTunes Connect.

En relation :  7 alternatives Siri pour Android: Google Assistant, Cortana, Alexa, etc.

Connectez-vous à Sandbox Tester sur un appareil iOS

Avant de passer au code, il reste une chose à faire. Aller à Réglages > iTunes et App Store sur votre appareil iOS. Si vous êtes déjà connecté avec votre identifiant Apple d’origine, appuyez dessus et choisissez Déconnexion. Ensuite, connectez-vous simplement avec les informations d’identification du testeur de sandbox que vous avez créé. Une fois connecté, vous pouvez recevoir une alerte comme celle-ci:

Alerte de l'appareil

Ignorez simplement son message et appuyez sur Annuler. Votre appareil vous demandera à nouveau vos identifiants de connexion au bac à sable tout en essayant de faire un achat et reconnaîtra votre compte de test afin que vous ne soyez pas débité d’un centime sur votre carte de crédit pour tout achat que vous effectuez.

Sortie Réglages, branchez votre appareil sur votre Mac via le câble USB, et commençons enfin à coder!

Le code

Si vous avez téléchargé notre projet de démonstration, vous verrez que tout le code nécessaire pour l’achat intégré a été écrit, donc si vous l’exécutez, vous obtiendrez quelque chose comme ceci:

Démo de l'application IAP

Si vous souhaitez tester l’application, vous devez modifier le Identifiant du bundle à votre propre identité. Sinon, Xcode ne vous permettra pas d’exécuter l’application sur un appareil réel et l’application ne reconnaîtra pas les deux produits IAP que vous avez créés.

Chage Bundle ID dans l'onglet Général de XCode

Entrer ViewController.swift et vérifiez le code. Tout d’abord, nous avons ajouté une déclaration d’importation pour StoreKit et les délégués dont nous avons besoin pour suivre les transactions de paiement et les demandes de produits.

Ensuite, nous avons déclaré quelques vues qui seront utiles.

coinsLabel et premiumLabel sera utilisé pour afficher les résultats des achats pour les deux produits. consumableLabel et nonConsumableLabel affichera la description et le prix de chaque produit IAP, ceux que nous avons précédemment créés dans iTunes Connect.

Il est maintenant temps d’ajouter quelques variables:

Les deux premières lignes permettent de rappeler nos identifiants de produits. Il est important que ces chaînes correspondent exactement à celles enregistrées dans la section Achat In-App d’iTunes Connect.

  • productID est une chaîne que nous utiliserons plus tard pour détecter le produit que nous choisirons d’acheter.
  • productsRequest est une instance de SKProductsRequest, nécessaire pour rechercher des produits IAP à partir de votre application sur iTC.
  • iapProducts est un simple tableau de SKProducts. Veuillez noter que le préfixe SK signifie StoreKit, le framework iOS que nous utiliserons pour gérer les achats.

Les deux dernières lignes chargent deux variables de type Boolean et Integer nécessaires pour suivre les achats de pièces et de la version premium, respectivement des produits consommables et non consommables.

Le code suivant dans viewDidLoad() effectue quelques opérations dès le démarrage de l’application:

Tout d’abord, nous enregistrons simplement chaque achat sur la console Xcode. Ensuite, nous affichons le montant total des pièces que nous avons achetées avec le coinsLabel. Puisque nous exécutons l’application de démonstration pour la première fois, elle affichera PIÈCES: 0.

le if instruction définit le premiumLabelle texte selon que le produit non consommable a été acheté. Pour commencer, il montrera Version Premium VERROUILLÉE! puisque nous n’avons pas encore effectué l’achat premium.

La dernière ligne de code appelle une méthode que nous verrons plus tard, qui récupère simplement les produits que nous avons précédemment stockés dans iTC.

Voyons maintenant ce que font les deux boutons d’achat que nous avons définis dans notre application de démonstration:

Les deux méthodes appelleront une fonction qui vérifiera si l’appareil peut effectuer des achats, et si elle le peut, l’application appellera les méthodes de délégué StoreKit pour traiter l’achat.

Comme mentionné précédemment, nous avons besoin d’un troisième bouton pour restaurer notre achat de non-consommables. Voici son code:

le IBAction la fonction est attachée au Restaurer l’achat bouton dans le Storyboard et commence à se connecter au système d’achat intégré d’Apple pour restaurer l’achat s’il a déjà été effectué.

paymentQueueRestoreCompletedTransactionsFinished() est la méthode déléguée du framework StoreKit qui sauvera notre nonConsumablePurchaseMade variable à true une fois que l’achat a été restauré avec succès.

Nous en avons fini avec les boutons, voyons ce que fetchAvailableProducts() la fonction fait:

Nous créons d’abord une instance de NSSet, qui est essentiellement un tableau de chaînes. Nous y stockerons les deux ID de produit que nous avons précédemment déclarés.

En relation :  Fortnite Battle Royale arrive sur iOS et Android

Ensuite, nous commençons un SKProductsRequest en fonction de ces identifiants, afin que l’application affiche les informations sur les produits IAP (description et prix), qui seront traitées par cette méthode déléguée:

Dans la fonction ci-dessus, nous devons d’abord vérifier s’il existe des produits enregistrés dans iTunes Connect et définir notre iapProducts tableau en conséquence. Ensuite, nous pouvons initialiser les deux SKProduits et imprimez leur description et leur prix sur les étiquettes.

Avant de passer au cœur du code d’achat intégré à l’application, nous avons besoin de quelques fonctions supplémentaires:

Le premier vérifie si notre appareil est capable de faire des achats. La deuxième fonction est celle que nous appelons à partir des deux boutons. Il démarre la file d’attente de paiement et modifie notre productID variable dans la sélection productIdentifier.

Nous sommes enfin arrivés à la dernière méthode de délégué, celle qui gère les résultats des paiements:

Cette fonction a un switch relevé qui vérifie chaque état du paiement. La première case est appelé si l’achat a été effectué avec succès et termine sa transaction.

Dans ce bloc, nous devons vérifier l’ID de produit que nous avons sélectionné et effectuer les actions nécessaires pour mettre à jour notre application. Donc, si nous, l’utilisateur, avons acheté 10 pièces supplémentaires, nous en ajouterons 10 à notre coins variable, enregistrez sa valeur avec UserDefaults, affichez la nouvelle quantité de pièces que nous avons gagnées et déclenchez une alerte à ce sujet.

Veuillez noter que vous pouvez effectuer cet achat plusieurs fois sans aucune limite, car il s’agit d’un IAP consommable, et aucune fonction d’achat de restauration n’est nécessaire.

De même, si nous avons acheté le produit premium non consommable, l’application définit notre nonConsumablePurchaseMade variable à true, l’enregistre, modifie le texte du premiumLabel, et déclenche une alerte pour vous informer que l’achat a réussi.

Les deux autres cases gérer les résultats de paiement en cas d’échec et de restauration. L’application déclenchera elle-même des alertes personnalisées si votre transaction échoue pour une raison quelconque ou si vous avez restauré un achat non consommable.

C’est ça! Maintenant, assurez-vous que vous êtes connecté avec vos informations d’identification Sandbox Tester et exécutez l’application pour la tester. La première fois, vous recevrez une alerte comme celle-ci:

Alerte de connexion à l'App Store

Choisir Utiliser l’identifiant Apple existant et saisissez à nouveau le nom d’utilisateur et le mot de passe de votre Sandbox Tester pour vous connecter. Cela se produit car l’application ne peut reconnaître qu’un utilisateur réel du iTunes et App Store paramètres, pas un Sandbox.

Une fois connecté, vous pourrez effectuer des achats des deux produits.

Achat de 10 pièces effectué
Achat de prime non consommable effectué

Modèles CodeCanyon

Si vous travaillez avec iOS et souhaitez approfondir le développement du langage et des applications Swift, consultez quelques-uns des mes modèles d’application iOS sur CodeCanyon.

Il y a des centaines d’autres Modèles d’applications iOS sur le marché Envato ainsi, prêt à être réaménagé et sûr d’accélérer votre flux de travail. Allez les voir! Vous pourriez économiser des heures de travail sur votre prochaine application.

Conclusion

Dans ce didacticiel, nous avons couvert toutes les étapes nécessaires pour créer des produits d’achat intégré sur iTunes Connect et comment écrire le code pour les activer dans votre application. J’espère que vous pourrez mettre ces connaissances à profit dans votre prochaine application iOS!

Merci d’avoir lu et à la prochaine fois! Veuillez consulter nos autres cours et tutoriels sur le développement d’applications iOS avec Swift.

Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.