Activer les achats dans votre paywall personnalisé avec le SDK Kotlin Multiplatform

Ce guide explique comment intégrer Adapty dans vos paywalls personnalisés. Gardez le contrôle total sur l’implémentation du paywall, tandis que le SDK Adapty récupère les produits, gère les nouveaux achats et restaure les précédents. Ce guide utilise les API du SDK Adapty Kotlin Multiplatform v4 (bêta) — si vous utilisez la v3, consultez le guide de migration pour les noms de méthodes correspondants.

Important

Ce guide est destiné aux développeurs qui implémentent des paywalls personnalisés. Si vous souhaitez activer les achats de la manière la plus simple, utilisez l’Adapty Flow & Paywall Builder. Avec le Flow & Paywall Builder, vous créez des flows dans un éditeur visuel sans code, Adapty gère toute la logique d’achat automatiquement, et vous pouvez tester différents designs sans republier votre application.

Avant de commencer

Configurer les produits

Pour activer les achats intégrés, vous devez comprendre trois concepts clés :

  • Produits – tout ce que les utilisateurs peuvent acheter (abonnements, consommables, accès à vie)
  • Paywalls – configurations qui définissent les produits à proposer. Dans Adapty, les paywalls sont le seul moyen de récupérer des produits, mais cette conception vous permet de modifier les produits, les prix et les offres sans toucher au code de votre application. Dans le SDK v4, les variantes de paywall pour un placement sont portées par un objet flow — vous récupérez un flow et interrogez ses produits.
  • Placements – où et quand vous affichez les paywalls dans votre application (par exemple main, onboarding, settings). Vous configurez les paywalls pour les placements dans le tableau de bord, puis vous les demandez par ID de placement dans votre code. Cela facilite l’exécution de tests A/B et l’affichage de différents paywalls à différents utilisateurs.

Assurez-vous de bien comprendre ces concepts, même si vous utilisez votre propre paywall personnalisé. En résumé, ce sont simplement les outils qui vous permettent de gérer les produits que vous vendez dans votre application.

Pour implémenter votre paywall personnalisé, vous devrez créer un paywall et l’ajouter à un placement. Cette configuration vous permet de récupérer vos produits. Pour savoir ce que vous devez faire dans le tableau de bord, suivez le guide de démarrage rapide ici.

Gérer les utilisateurs

Vous pouvez travailler avec ou sans authentification backend de votre côté.

Cependant, le SDK gère différemment les utilisateurs anonymes et les utilisateurs identifiés. Lisez le guide de démarrage rapide sur l’identification pour comprendre les spécificités et vous assurer que vous gérez vos utilisateurs correctement.

Étape 1. Récupérer les produits

Pour récupérer les produits de votre paywall personnalisé, vous devez :

  1. Récupérer l’objet flow en passant l’ID du placement à la méthode getFlow.
  2. Récupérer le tableau de produits pour ce flow avec la méthode getPaywallProducts.

fun loadPaywall() {
    Adapty.getFlow(placementId = "YOUR_PLACEMENT_ID")
        .onSuccess { flow ->
            Adapty.getPaywallProducts(flow = flow)
                .onSuccess { products ->
                    // Use products to build your custom paywall UI
                }
                .onError { error ->
                    // Handle the error
                }
        }
        .onError { error ->
            // Handle the error
        }
}

Étape 2. Accepter les achats

Lorsqu’un utilisateur appuie sur un produit dans votre paywall personnalisé, appelez la méthode makePurchase avec le produit sélectionné. Cela gère le flow d’achat et renvoie le profil mis à jour.


fun purchaseProduct(product: AdaptyPaywallProduct) {
    Adapty.makePurchase(product = product)
        .onSuccess { purchaseResult ->
            when (purchaseResult) {
                is AdaptyPurchaseResult.Success -> {
                    val profile = purchaseResult.profile
                    // Purchase successful, profile updated
                }
                is AdaptyPurchaseResult.UserCanceled -> {
                    // User canceled the purchase
                }
                is AdaptyPurchaseResult.Pending -> {
                    // Purchase is pending (e.g., user will pay offline with cash)
                }
            }
        }
        .onError { error ->
            // Handle the error
        }
}

Étape 3. Restaurer les achats

Les stores exigent que toutes les applications proposant des abonnements offrent un moyen aux utilisateurs de restaurer leurs achats.

Appelez la méthode restorePurchases lorsque l’utilisateur appuie sur le bouton de restauration. Cela synchronisera son historique d’achats avec Adapty et retournera le profil mis à jour.


fun restorePurchases() {
    Adapty.restorePurchases()
        .onSuccess { profile ->
            // Restore successful, profile updated
        }
        .onError { error ->
            // Handle the error
        }
}

Étape 4. Vérifier le statut de l’abonnement

Après un achat ou une restauration, vérifiez le niveau d’accès de l’utilisateur pour décider d’afficher le paywall ou de déverrouiller les fonctionnalités payantes. Les méthodes makePurchase et restorePurchases retournent déjà le profil mis à jour ; lorsque vous avez besoin du statut actuel ailleurs dans l’application, utilisez la méthode getProfile :


fun checkPremiumAccess() {
    Adapty.getProfile()
        .onSuccess { profile ->
            val hasPremiumAccess = profile.accessLevels["premium"]?.isActive == true
            // Grant access to paid features if hasPremiumAccess is true
        }
        .onError { error ->
            // Handle the error
        }
}

Pour d’autres méthodes de vérification et de suivi du statut d’abonnement, notamment pour écouter les mises à jour en temps réel, consultez Vérifier le statut de l’abonnement.

Étapes suivantes

Tip

Des questions ou des problèmes ? Consultez notre forum d’assistance où vous trouverez des réponses aux questions fréquentes ou pourrez poser les vôtres. Notre équipe et notre communauté sont là pour vous aider !

Votre paywall est prêt à être affiché dans l’application. Testez vos achats dans le sandbox App Store ou sur Google Play Store pour vous assurer de pouvoir effectuer un achat test depuis le paywall. Pour voir comment cela fonctionne dans une implémentation prête pour la production, consultez le AppViewModel.kt dans notre application exemple, qui illustre la gestion des achats avec une gestion des erreurs et une gestion d’état appropriées.