Aller au contenu

Achats intégrés iOS & Android

Offrez un contenu additionnel après un achat intégré directement depuis votre application et publiez votre app sur l’App Store d’Apple et de Google.

Compatible uniquement sur mobile : Ce composant ne fonctionne que pour une application mobile déployée sur l’App Store d’Apple et le Play Store.

Prérequis

Avant de configurer les achats intégrés, vous devez avoir :

  • Une formule PandaSuite qui prend en charge la publication d’applications mobiles (formule Single, Full ou Multi)
  • Créé votre application sur App Store Connect pour iOS
  • Créé votre application sur Google Play Console pour Android

Créer un achat intégré

Chaque achat intégré possède un identifiant unique associé à votre application. Cet identifiant doit être créé sur App Store Connect et Google Play.

Tester les achats intégrés : Vous pouvez simuler des achats dans la preview de PandaSuite Studio ou dans PandaSuite Viewer pour des vérifications rapides en phase de conception. Pour un test de bout en bout du parcours d’achat, utilisez TestFlight sur iOS et une piste de test interne/fermée sur Google Play.

Apple Store

Rendez-vous sur App Store Connect. Sélectionnez votre app et dans le menu de gauche sous Achats intégrés, cliquez sur Gestion.

Cliquez sur le + pour ajouter un achat intégré.

Choisissez le type d’achat intégré :

  • Consommable
  • Non consommable
  • Abonnement avec renouvellement automatique
  • Abonnement sans renouvellement automatique.

Si vous ne savez pas lequel choisir, veuillez vous référer à la documentation Apple sur les achats intégrés.

Ajoutez un nom de référence et un identifiant de produit. Cet identifiant de produit sera requis dans le composant Achat intégré.

⚠️ Attention à ne pas utiliser de majuscules pour l’identifiant de produit

Sur Google Play, seuls les identifiants entièrement en minuscules et sans caractères spéciaux sont autorisés. Pour éviter tout problème de compatibilité lors d’une future publication sur Android, nous vous conseillons donc de définir vos identifiants d’achats intégrés directement en minuscules, y compris pour la version iOS.

Choisissez le tarif dans la liste : 0,99/1,99/2,99/3,99…

Cliquez sur Sauvegarder.

Connect Play Developer

Rendez-vous sur Google Play Console, sélectionnez votre application et choisissez Monétisation > Produits > Produits in-app.

Pour en savoir plus, consultez la documentation Google Play Billing.

Cliquez sur Add new product et choisissez entre : Managed Product, Unmanaged product et Subscription.

Remplissez le champ Product ID et choisissez le même qu’Apple. Pour rappel, cet identifiant de produit sera requis dans le composant Achat intégré.

Choisissez le prix.

Caractéristiques du composant

Propriétés

  • ID Produit : L’identifiant unique de votre achat intégré, créé dans App Store Connect et Google Play Console
  • Type : Le type d’achat intégré (InApp pour les achats standards, Abonnement pour les abonnements)

Propriétés exposées

Le composant expose les données suivantes qui peuvent être liées à d’autres composants :

  • Prix : Le prix du produit formaté avec la devise locale de l’utilisateur (par ex. “2,99 €”, “$2.99”)
  • Est payé : Booléen qui passe à true dès que l’utilisateur actuel dispose d’un achat actif pour ce produit
  • N’est pas payé : Booléen qui reste à true tant que l’utilisateur n’a pas finalisé l’achat (toujours l’inverse de Est payé)

Déclencheurs

  • Non Acheté : Le contenu n’a pas été acheté (état persistant qui reflète l’état d’achat actuel)
  • Non Acheté (en attente) : L’achat est en attente de confirmation (Android uniquement, pour les méthodes de paiement différé comme les virements bancaires)
  • Acheté : L’achat est confirmé (état persistant qui reflète l’état d’achat actuel)
  • Paiement réussi : Une transaction de paiement vient de réussir (événement ponctuel déclenché immédiatement après le paiement)
  • Paiement en attente : Le paiement est en cours de traitement (Android uniquement, pour les méthodes de paiement asynchrones nécessitant une approbation)
  • Erreur de paiement : Une transaction de paiement a échoué (événement ponctuel déclenché en cas d’échec du paiement)
événements achat intégré

Actions

  • Acheter : Lance le flux d’achat intégré
  • Restaurer l’achat : Restaure les achats précédents (requis pour la validation iOS)
  • Gérer les abonnements : Ouvre la page de gestion des abonnements
interactivités achat intégré

Implémenter l’achat intégré dans votre application

Ajouter le composant Achat intégré

Préparez vos écrans pour votre flux d’achat intégré.

Cliquez sur Composants et ajoutez le composant Achat intégré. C’est un composant non graphique, il apparaît uniquement dans la liste des Objets.

Dans le panneau Propriétés, configurez les éléments suivants :

  • ID Produit : L’identifiant unique que vous avez créé dans App Store Connect et Play Developer Console
  • Type : Sélectionnez le type qui correspond à votre configuration d’achat intégré :
    • InApp (par défaut) - Pour les achats intégrés consommables et non consommables
    • Abonnement - Pour les abonnements à renouvellement automatique
propriétés achat intégré

Bonne pratique : Ajoutez le composant Achat intégré au niveau du projet (et non dans un écran spécifique). Cela garantit que le composant est toujours chargé et que l’état d’achat est disponible sur tous les écrans, peu importe où l’utilisateur navigue dans votre application.

Déclencher l’acte d’achat

Sélectionnez le bouton ou l’élément interactif qui déclenchera l’achat et ouvrez le panneau Interactivités.

Choisissez Simple tap et l’action Agir sur le composant. Sélectionnez le composant Achat intégré et choisissez l’action Acheter.

interactivités achat intégré

Débloquer le contenu après l’achat

Sélectionnez le composant Achat intégré et rendez-vous dans le panneau Interactivités.

événements achat intégré

Choisissez le déclencheur Acheté et créez une action pour débloquer votre contenu premium (par ex. Aller à un écran, Ouvrir une pop-up).

Vous pouvez également utiliser les déclencheurs Paiement réussi et Erreur de paiement pour afficher des messages de retour à l’utilisateur.

Afficher le prix localisé

Pour afficher le prix du produit dans votre application :

  1. Ajoutez un composant Texte à l’endroit où vous souhaitez afficher le prix
  2. Sélectionnez le composant texte et ouvrez le panneau Propriétés
  3. Cliquez sur l’icône Liaison de données à côté de la propriété Texte
  4. Sélectionnez votre composant Achat intégré comme source de données
  5. Choisissez Prix parmi les propriétés disponibles

Le prix se mettra à jour automatiquement une fois que les informations du produit seront chargées depuis le store.

Contrôler l’affichage via l’état d’achat

Utilisez ces booléens exposés pour masquer ou remplacer l’interface selon l’état d’achat :

  1. Regroupez vos éléments premium dans un même composant parent (groupe, conteneur, état ou pop-up) afin de ne gérer qu’une seule propriété
  2. Sélectionnez ce parent, ouvrez le panneau Propriétés et définissez Visibility sur Hidden afin que les non-acheteurs ne le voient pas par défaut
  3. Cliquez sur l’icône Liaison de données à côté de Visibility, choisissez votre composant Achat intégré et liez la propriété Est payé
  4. (Optionnel) Liez la bannière d’upsell ou le bouton d’achat à la propriété N’est pas payé pour qu’elle apparaisse automatiquement chez les utilisateurs qui doivent encore acheter
Liaison de la visibilité à la propriété Est payé

Lors des tests ou après le déclencheur Acheté, le composant lié devient visible dès que le store confirme la transaction. Cette méthode survit aussi aux redémarrages, car le composant réévalue automatiquement le booléen au chargement. Besoin d’un rappel sur la liaison de données ? Consultez Liaison de données.

Tester les achats intégrés

Tester avec PandaSuite Viewer (simulation)

Utilisez le simulateur intégré pour valider votre interface et votre logique sans vous connecter aux stores :

  1. Utilisez la preview dans PandaSuite Studio, ou installez la dernière version de PandaSuite Viewer sur votre appareil (iOS/Android) ou utilisez le Viewer web.
  2. Dans votre app, déclenchez l’action Acheter comme le ferait un utilisateur.
  3. Un menu de simulation apparaît ; choisissez l’événement à simuler (succès d’achat, erreur).
  4. Vérifiez que vos écrans, conditions et messages réagissent correctement (déblocage du contenu, messages de retour, etc.).
Boîte de dialogue du simulateur d'achat intégré

La simulation vous aide à itérer rapidement sur le design et la logique. Vous devez néanmoins tester les parcours réels des stores iOS et Android via les sections ci-dessous. Les achats simulés ne sont pas des transactions réelles.

Événements de simulation

Le menu de simulation reflète les déclencheurs du composant afin de tester chaque scénario :

  • Paiement réussi pour confirmer vos écrans de succès et le déclencheur Acheté
  • Erreur de paiement pour valider vos messages d’erreur et conserver l’état Non acheté

Chaque option met immédiatement à jour les booléens exposés (Est payé, N’est pas payé) et les déclencheurs du composant. Vos liaisons de données, états d’écran ou logique du composant Condition réagissent ainsi comme en production. Relancez l’action Acheter dès que vous souhaitez rouvrir le menu et tester un autre parcours, ou utilisez l’action réelle Restaurer l’achat pour simuler une restauration.

Tests iOS avec TestFlight

Tester les achats intégrés sur iOS utilise l’environnement Sandbox d’Apple, qui simule l’App Store sans traiter de vrais paiements.

Étape 1 : Créer des testeurs Sandbox dans App Store Connect

  1. Allez sur App Store Connect
  2. Naviguez vers Utilisateurs et accès > Sandbox
  3. Cliquez sur + pour ajouter un nouveau compte Sandbox Apple (documentation Apple)
  4. Entrez une adresse email unique (qui ne doit PAS être associée à un Apple ID existant)
  5. Définissez le territoire App Store et créez un mot de passe

Vous pouvez créer jusqu’à 10 000 comptes Sandbox. Ces comptes sont uniquement pour les tests et ne peuvent pas accéder au véritable App Store.

Étape 2 : Configurer le compte Sandbox sur votre appareil

  1. Sur votre appareil iOS, allez dans Réglages > App Store
  2. Faites défiler jusqu’à Compte Sandbox et connectez-vous avec vos identifiants Sandbox
  3. Vous n’avez PAS besoin de vous déconnecter de votre Apple ID habituel

La section Compte Sandbox n’apparaît que sur les appareils avec le Mode développeur activé ou après avoir installé un build de développement via Xcode ou TestFlight.

Étape 3 : Charger votre app sur TestFlight

  1. Compilez et archivez votre app dans Xcode
  2. Chargez-la sur App Store Connect
  3. Ajoutez des testeurs et distribuez le build via TestFlight

Étape 4 : Tester les achats

  1. Installez l’app depuis TestFlight
  2. Lancez un achat intégré — l’environnement Sandbox gère la transaction
  3. Confirmez avec le mot de passe de votre compte Sandbox (ou Face ID/Touch ID)
  4. Vérifiez que votre app débloque correctement le contenu

Les renouvellements d’abonnement sont accélérés en Sandbox : un abonnement mensuel se renouvelle toutes les 5 minutes, et un abonnement annuel se renouvelle toutes les heures. Cela vous aide à tester rapidement les scénarios de renouvellement.

Gérer les paramètres du compte Sandbox

Dans App Store Connect sous Utilisateurs et accès > Sandbox, vous pouvez (documentation Apple) :

  • Effacer l’historique des achats — Réinitialiser tous les achats pour tester à nouveau l’état “non acheté”
  • Ajuster le taux de renouvellement — Contrôler la vitesse de renouvellement des abonnements pendant les tests
  • Activer les achats interrompus — Simuler des scénarios comme les mises à jour de moyen de paiement

Testez minutieusement les actions Acheter et Restaurer l’achat. Apple exige une option de restauration visible pour les achats non consommables et les abonnements.

Tests Android avec Google Play

Tester les achats intégrés sur Android nécessite deux configurations distinctes dans Google Play Console : les Tests de licence (pour éviter les vrais paiements) et une piste de test interne (pour distribuer votre app aux testeurs).

Étape 1 : Configurer les Tests de licence (niveau compte)

Les Tests de licence permettent à certains comptes Google d’effectuer des achats de test sans être débités. Ce paramètre s’applique à toutes les apps de votre compte développeur (documentation Google).

  1. Allez sur Google Play Console
  2. Naviguez vers Paramètres > Tests de licence
  3. Créez une liste d’e-mails avec les comptes Google de vos testeurs (les mêmes comptes utilisés sur leurs appareils de test)
  4. Cochez la liste pour l’activer
Paramètres Tests de licence Google Play Console

L’appareil du testeur doit être connecté avec le compte Google exact ajouté aux Tests de licence. Sinon, de vrais paiements seront effectués.

Étape 2 : Configurer le test interne (niveau app)

Le test interne vous permet de distribuer votre app à jusqu’à 100 testeurs qui peuvent l’installer directement depuis Google Play (documentation Google).

  1. Dans Play Console, sélectionnez votre app
  2. Allez dans Tests et publication > Tests internes
  3. Cliquez sur l’onglet Testeurs
  4. Créez une liste d’e-mails ou sélectionnez-en une existante avec vos testeurs
  5. Chargez un fichier AAB signé dans l’onglet Versions et publiez
Testeurs du test interne Google Play Console

Une fois publié, partagez l’URL d’inscription avec vos testeurs. Ils doivent cliquer sur le lien et accepter de devenir testeurs avant de pouvoir installer l’app depuis Google Play.

Attendez quelques heures après avoir créé de nouveaux produits pour qu’ils se propagent. Les informations produit doivent être disponibles avant de tester les achats.

Étape 3 : Tester les achats

  1. Installez l’app depuis Google Play sur l’appareil du testeur (connecté avec un compte Tests de licence)
  2. Lancez un achat intégré dans l’app
  3. La boîte de dialogue Google Play affiche “Commande test” - aucun paiement réel n’est traité
  4. Vérifiez que votre app gère correctement l’achat

Les abonnements de test ont des périodes de renouvellement accélérées en mode test (par ex., un abonnement mensuel se renouvelle toutes les 5 minutes) pour vous aider à tester rapidement les scénarios de renouvellement.

Scénarios de test importants

Testez les scénarios suivants pour garantir une gestion appropriée :

  • Flux d’achat : Complétez un achat standard avec succès
  • Restaurer les achats (iOS uniquement) : Testez la fonctionnalité de restauration — requis pour l’App Store
  • Déjà acheté : Tentez d’acheter à nouveau le même article
  • Achat annulé : Annulez pendant le flux de paiement

Voir aussi