---
title: "Vérifier le statut d'abonnement dans le SDK Unity"
description: "Découvrez comment vérifier le statut d'abonnement dans votre application Unity avec Adapty."
---

Pour décider si les utilisateurs peuvent accéder au contenu payant ou voir un paywall, vous devez vérifier leur [niveau d'accès](access-level) dans le profil.

Cet article vous explique comment accéder à l'état du profil afin de décider ce que les utilisateurs doivent voir — qu'il s'agisse de leur afficher un paywall ou de leur accorder l'accès aux fonctionnalités payantes.

## Vérifier le statut de l'abonnement \{#get-subscription-status\}

Lorsque vous souhaitez décider d'afficher un paywall ou du contenu payant à un utilisateur, vous consultez son [niveau d'accès](access-level) dans son profil. Deux options s'offrent à vous :

- Appeler `GetProfile` si vous avez besoin des dernières données du profil immédiatement (par exemple au lancement de l'application) ou si vous souhaitez forcer une mise à jour.
- Configurer des **mises à jour automatiques du profil** pour conserver une copie locale qui se rafraîchit automatiquement à chaque changement de statut de l'abonnement.

### Obtenir le profil \{#get-profile\}

La façon la plus simple d'obtenir le statut d'abonnement est d'utiliser la méthode `GetProfile` pour accéder au profil :

```csharp showLineNumbers
Adapty.GetProfile((profile, error) => {
  if (error != null) {
    // handle the error
    return;
  }

// check the access
});
```

### Écouter les mises à jour d'abonnement \{#listen-to-subscription-updates\}

Pour recevoir automatiquement les mises à jour de profil dans votre application :

1. Étendez `AdaptyEventListener` et implémentez la méthode `OnLoadLatestProfile` — Adapty appellera automatiquement cette méthode chaque fois que le statut d'abonnement de l'utilisateur change.
2. Stockez les données de profil mises à jour lorsque cette méthode est appelée, afin de pouvoir les utiliser dans toute votre application sans effectuer de requêtes réseau supplémentaires.

:::note
Dans le SDK 4.0, les interfaces de listener suivent la convention C# avec préfixe I : implémentez `IAdaptyEventListener` au lieu de `AdaptyEventListener`. Les méthodes restent inchangées. Consultez le [guide de migration](migration-to-unity-sdk-v4).
:::

```csharp
public class SubscriptionManager : MonoBehaviour, AdaptyEventListener {
    private AdaptyProfile currentProfile;
    
    void Start() {
        // Register this object as an Adapty event listener
        Adapty.SetEventListener(this);
    }
    
    // Store the profile when it updates
    public void OnLoadLatestProfile(AdaptyProfile profile) {
        currentProfile = profile;
        // Update UI, unlock content, etc.
    }
    
    public void OnInstallationDetailsSuccess(AdaptyInstallationDetails details) { }
    public void OnInstallationDetailsFail(AdaptyError error) { }
    
    // Use stored profile instead of calling getProfile()
    public bool HasAccess() {
        if (currentProfile?.AccessLevels != null && 
            currentProfile.AccessLevels.ContainsKey("premium")) {
            return currentProfile.AccessLevels["premium"].IsActive;
        }
        return false;
    }
}
```

:::note
Adapty appelle automatiquement `OnLoadLatestProfile` au démarrage de votre application, fournissant des données d'abonnement en cache même si l'appareil est hors ligne.
:::

## Associer le profil à la logique des paywalls \{#connect-profile-with-paywall-logic\}

Lorsque vous avez besoin de prendre des décisions immédiates concernant l'affichage des paywalls ou l'accès aux fonctionnalités payantes, vous pouvez consulter directement le profil de l'utilisateur. Cette approche est utile dans des scénarios comme le lancement de l'application, l'accès à des sections premium, ou avant d'afficher du contenu spécifique.

```csharp
private void CheckAccessLevel()
{
    Adapty.GetProfile((profile, error) => {
        if (error != null) {
            Debug.LogError("Error checking access level: " + error.Message);
            // Show paywall if access check fails
            return;
        }
        
        if (!profile.AccessLevels.TryGetValue("YOUR_ACCESS_LEVEL", out var accessLevel)
            || !accessLevel.IsActive) {
            // Show paywall if no access
        }
    });
}

private void InitializePaywall()
{
    LoadPaywall();
    CheckAccessLevel();
}
``` 

## Étapes suivantes \{#next-steps\}

Maintenant que vous savez comment suivre le statut de l'abonnement, découvrez comment [travailler avec les profils utilisateurs](unity-quickstart-identify) pour vous assurer qu'ils peuvent accéder à ce pour quoi ils ont payé.