Vérifier le statut d'abonnement dans le SDK Flutter

Avec Adapty, suivre le statut d’abonnement est simple. Inutile d’insérer manuellement des identifiants de produits dans votre code. Il vous suffit de vérifier la présence d’un niveau d’accès actif pour confirmer le statut d’abonnement d’un utilisateur.

Avant de commencer à vérifier le statut de l’abonnement (Cliquez pour développer)

Niveau d’accès et l’objet AdaptyProfile

Les niveaux d’accès sont des propriétés de l’objet AdaptyProfile. Nous recommandons de récupérer le profil au démarrage de votre application, par exemple lorsque vous identifiez un utilisateur, puis de le mettre à jour à chaque changement. Ainsi, vous pouvez utiliser l’objet profil sans avoir à le redemander à chaque fois.

Pour être notifié des mises à jour de profil, écoutez les changements de profil comme décrit dans la section Écouter les mises à jour de profil, y compris les niveaux d’accès ci-dessous.

Tip

Vous souhaitez voir un exemple concret d’intégration du SDK Adapty dans une application mobile ? Découvrez nos applications exemples, qui illustrent la configuration complète, notamment l’affichage des paywalls, la réalisation d’achats et d’autres fonctionnalités de base.

Récupérer le niveau d’accès depuis le serveur

Pour obtenir le niveau d’accès depuis le serveur, utilisez la méthode .getProfile() :

try {
  final profile = await Adapty().getProfile();
  // check the access
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
}

Paramètres de la réponse :

ParamètreDescription
Profile

Un objet AdaptyProfile. En règle générale, il suffit de vérifier le statut du niveau d’accès du profil pour déterminer si l’utilisateur a accès aux fonctionnalités premium de l’application.

La méthode .getProfile fournit le résultat le plus à jour, car elle interroge toujours l’API. Si, pour une raison quelconque (par exemple, l’absence de connexion internet), le SDK Adapty ne parvient pas à récupérer les informations depuis le serveur, les données du cache sont renvoyées. Il est également important de noter que le SDK Adapty met régulièrement à jour le cache AdaptyProfile afin de maintenir ces informations aussi actuelles que possible.

La méthode .getProfile() vous fournit le profil utilisateur à partir duquel vous pouvez obtenir le statut du niveau d’accès. Vous pouvez avoir plusieurs niveaux d’accès par application. Par exemple, si vous avez une application d’actualités et vendez des abonnements à différentes thématiques indépendamment, vous pouvez créer des niveaux d’accès « sports » et « science ». Mais la plupart du temps, un seul niveau d’accès suffit — dans ce cas, utilisez simplement le niveau d’accès par défaut « premium ».

Voici un exemple de vérification du niveau d’accès « premium » par défaut :

try {
  final profile = await Adapty().getProfile();
  if (profile?.accessLevels['premium']?.isActive ?? false) {
        // grant access to premium features
    }
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
}

Écouter les mises à jour du statut d’abonnement

Chaque fois que l’abonnement de l’utilisateur change, Adapty déclenche un événement.

Pour recevoir les messages d’Adapty, vous devez effectuer quelques configurations supplémentaires :

Adapty().didUpdateProfileStream.listen((profile) {
  // handle any changes to subscription state
});

Adapty déclenche également un événement au démarrage de l’application. Dans ce cas, le statut d’abonnement mis en cache sera transmis.

Cache du statut d’abonnement

Le cache intégré au SDK Adapty stocke le statut d’abonnement du profil. Ainsi, même si le serveur est indisponible, les données mises en cache restent accessibles pour fournir des informations sur le statut d’abonnement du profil.

Cependant, il est important de noter que les demandes de données directement depuis le cache ne sont pas possibles. Le SDK interroge périodiquement le serveur toutes les minutes pour vérifier les éventuelles mises à jour ou modifications liées au profil. Si des changements ont lieu, comme de nouvelles transactions ou d’autres mises à jour, ils seront envoyés vers les données en cache afin de les maintenir synchronisées avec le serveur.