Vérifier le statut d'abonnement dans le SDK Kotlin Multiplatform
Pour déterminer si les utilisateurs peuvent accéder au contenu payant ou voir un paywall, vous devez vérifier leur niveau d’accès dans le profil.
Cet article vous explique comment accéder à l’état du profil pour décider ce que les utilisateurs doivent voir — afficher un paywall ou leur accorder l’accès aux fonctionnalités payantes.
Obtenir le statut d’abonnement
Lorsque vous décidez d’afficher un paywall ou du contenu payant à un utilisateur, vous vérifiez son niveau d’accès dans son profil. Deux options s’offrent à vous :
- Appelez
getProfilesi vous avez besoin des données de profil les plus récentes immédiatement (par exemple au lancement de l’application) ou si vous souhaitez forcer une mise à jour. - Configurez les mises à jour automatiques du profil pour conserver une copie locale automatiquement actualisée dès que le statut d’abonnement change.
Obtenir le profil
La façon la plus simple d’obtenir le statut de l’abonnement est d’utiliser la méthode getProfile pour accéder au profil :
Adapty.getProfile()
.onSuccess { profile ->
// check the access
}
.onError { error ->
// handle the error
}
Écouter les mises à jour d’abonnement
Pour recevoir automatiquement les mises à jour de profil dans votre application :
- Utilisez
Adapty.setOnProfileUpdatedListener()pour écouter les changements de profil — Adapty appellera automatiquement cette méthode dès que le statut d’abonnement de l’utilisateur change. - Stockez les données de profil mises à jour lors de l’appel de cette méthode, afin de pouvoir les utiliser dans toute votre application sans effectuer de requêtes réseau supplémentaires.
class SubscriptionManager {
private var currentProfile: AdaptyProfile? = null
init {
// Listen for profile updates
Adapty.setOnProfileUpdatedListener { profile ->
currentProfile = profile
// Update UI, unlock content, etc.
}
}
// Use stored profile instead of calling getProfile()
fun hasAccess(): Boolean {
return currentProfile?.accessLevels?.get("YOUR_ACCESS_LEVEL")?.isActive == true
}
}
Adapty appelle automatiquement le listener de mise à jour du profil au démarrage de votre application, fournissant des données d’abonnement mises en cache même si l’appareil est hors ligne.
Associer un profil à la logique d’affichage des paywalls
Lorsque vous devez prendre des décisions immédiates concernant l’affichage des paywalls ou l’accès aux fonctionnalités payantes, vous pouvez vérifier directement le profil de l’utilisateur. Cette approche est utile dans des scénarios comme le lancement de l’application, l’accès aux sections premium ou l’affichage de contenu spécifique.
private fun checkAccessAndShowPaywall() {
// First, check if user has access
Adapty.getProfile()
.onSuccess { profile ->
val hasAccess = profile.accessLevels?.get("YOUR_ACCESS_LEVEL")?.isActive == true
if (!hasAccess) {
// User doesn't have access, show paywall
showPaywall()
} else {
// User has access, show premium content
showPremiumContent()
}
}
.onError { error ->
// If we can't check access, show paywall as fallback
showPaywall()
}
}
private fun showPaywall() {
// Get and display the flow using the KMP SDK
Adapty.getFlow("YOUR_PLACEMENT_ID")
.onSuccess { flow ->
if (flow.hasViewConfiguration) {
AdaptyUI.createFlowView(flow = flow)
.onSuccess { view ->
view.present()
}
.onError { error ->
showError("Unable to display the paywall")
}
} else {
// Handle remote config paywall or show custom UI
handleRemoteConfigPaywall(flow)
}
}
.onError { error ->
// Handle flow loading error
showError("Unable to load paywall")
}
}
private fun showPremiumContent() {
// Show your premium content here
// This is where you unlock paid features
}
Prochaines étapes
Maintenant que vous savez comment suivre le statut d’abonnement, apprenez à travailler avec les profils utilisateurs pour vous assurer qu’ils peuvent accéder à ce pour quoi ils ont payé.