Unity Iap 5: Ce qui a changé par rapport à IAP 4 et comment migrer

Aug 5, 2026|3 Min.
Daniel Godley
Daniel Godley - Unity
Senior Content Marketing Manager
Migration IAP 4 vers 5

Unity In-App Purchasing (IAP) version 5 remplace l'architecture basée sur l'interface d'IAP 4 par une seule classe StoreController basée sur les événements. La migration nécessite des modifications de code : les interfaces IStoreListener et IDetailedStoreListener ainsi que le ConfigurationBuilder sont supprimés, l'initialisation est asynchrone et les achats sont traités par le biais d'événements du cycle de vie. IAP 5 permet également la Monetization Web-to-Mobile, les processeurs de paiement personnalisés (tels que Stripe et Coda) et les boutiques en ligne autonomes.

Ce que vous devez savoir sur Unity Iap 5

  • Unity Iap 5 supprime les interfaces IStoreListener et IDetailedStoreListener requises dans IAP 4.
  • Toute la logique d'achat dans Unity Iap 5 passe par une classe: UnityIAPServices.StoreController(), qui déclenche des événements tout au long du cycle de vie d'achat.
  • Le ConfigurationBuilder d'IAP 4 est supprimé. Les définitions de produit sont directement transmises à FetchProducts() en tant qu'objets ProductDefinition avec un ID et un type de produit.
  • La classe legacy IDs est renommée StoreSpecificIds dans IAP 5.
  • L'initialisation Unity Iap 5 est asynchrone et nécessite Unity Gaming Services pour être initialisé en premier via wait UnityServices.InitializeAsync().
  • Les reçus Apple en IAP 5 sont validés automatiquement via StoreKit 2 avant de parvenir au développeur. La validation google play nécessite la clé de licence Google du développeur, obfusquée par l'outil inclus dans le pack IAP.
  • La prise en charge de StoreKit 1 revient en IAP 5 pour les appareils qui ne peuvent pas passer à iOS 15.0 (appareils antérieurs à l'iPhone 6s).
  • Une implémentation de référence de travail est livrée dans le paquet: le Minimal Coded IAP Sample (script PaywallManager), disponible dans le gestionnaire de paquets Unity.
Vidéo

Unity Iap 5 apporte des améliorations architecturales majeures, des changements structurels à l'initialisation et des flux de travail de récupération de produits plus propres. De plus, il ouvre la voie à des fonctionnalités avancées de l'écosystème à l'horizon - y compris les fournisseurs de paiement direct (comme Stripe et Coda) et les boutiques en ligne qui vous permettent de mieux cibler vos ventes et de conserver une plus grande part de vos revenus d'achat. Que vous migriez d'Unity Iap 4 vers IAP 5 ou que vous configuriez pour la première fois des achats intégrés mobiles dans le moteur de jeu Unity, cette ventilation étape par étape couvre l'ensemble du flux de travail d'implémentation.

Comparaison Unity Iap 4 vs IAP 5
Concern

Architecture

Unity Iap 4

Interfaces IStoreListener / IDetailedStoreListener avec rappels fixes

Unity Iap 5

Classe StoreController unique avec événements de cycle de vie

Stocker des identifiants

Unity Iap 4

new IDs()

Unity Iap 5

new StoreSpecificIds()

Configuration du produit

Unity Iap 4

Produits emballés dans un ConfigurationBuilder avant initialisation

Unity Iap 5

Objets ProductDefinition passés directement à FetchProducts() à tout moment

Lancer un achat

Unity Iap 4

Appelé avec une chaîne d'identification de produit

Unity Iap 5

PurchaseProduct(product) appelé avec l'objet produit complet

Traitement des achats

Unity Iap 4

ProcessAchat rappel via IStoreController

Unity Iap 5

Événement OnPurchasePending(Order), confirmé avec ConfirmPurchase(pendingOrder)

Validation de réception (Apple)

Unity Iap 4

Validation manuelle multiplateforme

Unity Iap 5

Pré-validé par StoreKit 2

Gestionnaires d'achat d'interface utilisateur

Unity Iap 4

Product-ID based

Unity Iap 5

Inchangé — les gestionnaires d'interface utilisateur existants continuent de travailler

Comment migrer d'Unity Iap 4 vers IAP 5

La migration se déroule en quatre étapes:

Initialisez et connectez-vous. Initialisez Unity Gaming Services, obtenez un StoreController, abonnez-vous à ses événements et appelez Connect() pour joindre google play ou l’Apple App Store. Utilisez OnStoreConnected et OnStoreDisconnected pour basculer l'interface utilisateur d'achat.

Allez chercher des produits. Créez une Liste à partir du catalogue de produits IAP de l'éditeur ou dans du code (par exemple, new ProductDefinition("gem_chest_01", ProductType.Consumable)) et passez-la à FetchProducts(). Le magasin renvoie les prix et descriptions localisés.

Récupérez les achats en attente. Appelez FetchPurchases() pour récupérer les transactions interrompues ou reportées. Les commandes en attente arrivent par l'événement OnPurchasePending, mais les développeurs devraient également traiter les commandes.PendingOrders, car les événements en attente peuvent être manqués sur certaines versions iOS. Les non-consommables confirmés et les abonnements peuvent être réintitulés à ce stade.

Achat, subvention, confirmation. Appelez PurchaseProduct(produit). Dans OnPurchasePurchase, accordez l'article, validez le reçu et appelez ConfirmPurchase(pendingOrder). Gérer les échecs dans OnPurchaseFailed — une annulation d'utilisateur n'a besoin d'aucun message, d'autres erreurs doivent être mises en surface au lecteur.

Le flux d'achat Unity Iap 5

Utilisez l'infographie ci-dessous pour afficher l'intégralité du flux d'achat pour Unity IAP5, y compris les nouvelles fonctionnalités, boutiques en ligne, catalogues et fournisseurs de paiement.

Unity IAP flux d'achat

Téléchargez le PDF haute résolution ici.

Pièges courants lors de la mise à niveau vers IAP 5

  • Subventions en double : la même commande peut faire surface à la fois via OnPurchasePending et un pass manuel de commande en attente. Suivez les transactions traitées dans un HashSet (rempli à partir de OnPurchasesConfirmed) et vérifiez-le avant d'accorder.
  • Achats simultanés: désactivez les boutons d'achat pendant qu'une commande est en vol pour éviter les demandes en double.
  • Fuites d'événements: IAP 5 est piloté par les événements — se désabonner de tous les événements StoreController lorsque le gestionnaire des achats est détruit.
  • StoreKit 1 achats suspendus : sur les appareils pré-iOS 15, les achats non confirmés peuvent bloquer le rachat du même produit par un lecteur. Un backend qui suit et résout ces achats est recommandé.

Vérification côté serveur

Les identifiants de transaction des commandes IAP 5 peuvent être envoyés à Unity Cloud Code pour vérification côté serveur, les objets étant accordés aux joueurs via Unity Economy.

En savoir plus sur l’intégration Unity IAP5 →