Que signifie « Restaurer l’achat »?

Dernière mise à jour mars 9, 2026
 
Victoria Kharlan
Publié décembre 5, 2025 
Mis à jour mars 9, 2026
Lecture de 5 min
What Does Restore Purchase Mean

Imaginez: un utilisateur achète un abonnement, change d’appareil, réinstalle votre application et perd soudainement son accès. C’est le moyen le plus simple de perdre sa confiance.

C’est exactement pour cela que la fonction « Restaurer l’achat » existe. Elle peut sembler facultative, mais elle est indispensable, en particulier pour les applications basées sur un abonnement.

Cette option permet aux utilisateurs de retrouver l’accès à du contenu acheté précédemment sans avoir à repayer.
Il s’agit d’un petit bouton qui joue un rôle important en matière de confiance, de conformité et de fidélisation des utilisateurs.

Pourquoi c’est important

  • Confiance des utilisateurs : si quelqu’un a payé une fois, il s’attend à conserver son accès, quel que soit l’appareil utilisé.
  • Charge de support : logique de restauration confuse ou manquante = utilisateurs mécontents + augmentation du nombre de tickets.
  • Conformité à l’App Store : Apple et Google exigent tous deux que vous incluiez une option de restauration pour certains types de produits.

Quels achats peuvent être restaurés

Les achats pouvant être restaurés comprennent :

  • Non consommables : achats uniques tels que l’accès à vie ou des fonctionnalités premium.
  • Abonnements à renouvellement automatique : forfaits mensuels/annuels synchronisés sur tous les appareils.
  • Abonnements non renouvelables : accès à durée déterminée (par exemple, un abonnement de 3 mois).

Non restaurable :

  • Consommables tels que des pièces, des vies supplémentaires ou des bonus à usage unique. Ils sont destinés à être utilisés.

Comment fonctionne le bouton « Restaurer les achats »

  1. UI/UX. Ajoutez un bouton « Restaurer l’achat » — généralement dans les paramètres ou directement sur le paywall.
  2. Déclencher. En appuyant sur le bouton, déclenchez une restauration via :
    • SKPaymentQueue.restoreCompletedTransactions() pour iOS
    • BillingClient.queryPurchaseHistoryAsync() pour Android
    • Ou votre logique backend si vous gérez les droits côté serveur
  3. Mettre à jour l’accès. Une fois la restauration terminée, actualisez le statut d’abonnement de l’utilisateur et déverrouillez le contenu.
  4. Ajoutez une note utile. Une simple ligne permet de réduire la confusion : « Utilisez cette option si vous avez changé d’appareil ou réinstallé l’application. »
  5. Évitez les redondances. Si l’utilisateur dispose déjà d’un accès, désactivez le bouton ou masquez-le complètement.
  6. Logique des comptes. Pour les applications avec connexion : liez les abonnements aux comptes utilisateurs et synchronisez-les via le backend afin de simplifier la restauration sur plusieurs appareils.

Comment la restauration des achats fonctionne sur iOS

Sur iOS, la restauration des achats actualise le reçu de l’application et redistribue les produits liés à l’Apple ID de l’utilisateur. Le processus s’exécute silencieusement en arrière-plan, et l’expérience doit rester simple et claire.

Voici comment procéder avec le StoreKit natif (avant StoreKit 2):

1. Lancer le processus de restauration

Appelez restoreCompletedTransactions() pour déclencher le flux de restauration :

SKPaymentQueue.default().restoreCompletedTransactions()

Cela indique à StoreKit de rechercher tous les achats passés liés à l’Apple ID actuel.

2. Gérer les transactions restaurées

Écoutez la file d’attente des paiements et vérifiez les états de transaction .restored. Ensuite, déverrouillez le contenu et marquez la transaction comme terminée :

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    for transaction in transactions {
        if transaction.transactionState == .restored {
            // Unlock access based on restored product
            unlockContent(transaction: transaction)
            SKPaymentQueue.default().finishTransaction(transaction)
        }
    }
}

N’oubliez pas d’appeler finishTransaction(_:). Sinon, StoreKit pourrait continuer à réessayer la même transaction.

3. Gérer les échecs avec élégance

La restauration peut échouer en raison de reçus invalides, de problèmes réseau ou si l’Apple ID ne possède aucun achat éligible. Affichez un retour clair à l’utilisateur et enregistrez l’erreur pour le débogage.

Vous utilisez Adapty SDK ? Nous gérons tout cela, y compris la validation des reçus et les cas particuliers, à l’aide d’un seul appel de méthode.

Comment la restauration des achats fonctionne sur Android

Sur Android, restaurer les achats signifie vérifier l’historique d’achat de l’utilisateur via Google Play et réactiver tout produit non consommable ou abonnement actif. Il n’existe pas de bouton « restaurer » intégré comme sur iOS. Cela signifie que vous devez le gérer manuellement via l’API de facturation.

Voici comment procéder avec la Google Play Billing Library:

1. Consulter l’historique des achats

Utilisez queryPurchaseHistoryAsync() pour récupérer les achats passés de l’utilisateur :

billingClient.queryPurchaseHistoryAsync(
    BillingClient.SkuType.SUBS
) { billingResult, purchaseHistoryList ->
    if (billingResult.responseCode == BillingClient.BillingResponseCode.OK && purchaseHistoryList != null) {
        for (purchase in purchaseHistoryList) {
            // Restore subscription access
            restoreEntitlement(purchase)
        }
    }
}

Vous pouvez également interroger les achats intégrés à l’application en transmettant BillingClient.SkuType.INAPP.

2. Valider et débloquer

Après avoir récupéré l’historique des achats, validez les reçus (idéalement côté serveur) et accordez l’accès en conséquence. Assurez-vous de vérifier les données de signature pour éviter l’usurpation.

Adapty gère la validation des achats, la logique d’accès utilisateur et la synchronisation multiplateforme de manière native.

3. Considérations UX

Comme les utilisateurs Android ne s’attendent pas à un bouton « Restaurer les achats », vous pouvez:

  • Déclencher automatiquement la restauration lors de la connexion ou du lancement de l’application
  • Ou proposer une option discrète dans les Paramètres par souci de transparence

Dans tous les cas, assurez-vous que la logique de restauration s’exécute silencieusement en arrière-plan et met à jour l’interface lorsque l’accès est restauré.

Conclusion

Le bouton « Restaurer les achats » peut sembler simple, mais il joue un rôle essentiel dans le parcours d’abonnement.

  • Il instaure la confiance.
  • Il réduit le taux de désabonnement.
  • Il vous maintient en conformité.

Rendez-le visible. Faites-le fonctionner. Et rendez-le facile à comprendre.

FAQ

Si votre application utilise la connexion comme seul moyen d’accéder aux achats, ce bouton n’est peut-être pas techniquement nécessaire. Cependant, Apple le recommande tout de même, car il permet de réduire le nombre de demandes d’assistance.

Non. Cela ne fait que réactiver les achats passés valides ; aucun frais n’est facturé.

Non. Il est généralement déclenché manuellement par l’utilisateur. Mais si vous utilisez Adapty ou votre propre backend, vous pouvez synchroniser les achats en arrière-plan au démarrage de l’application afin de garantir que l’accès soit toujours à jour.

Sur iOS, oui, si le même identifiant Apple est utilisé. Sur Android, il est recommandé de se connecter pour associer les achats à un compte utilisateur permanent.

Non. La fonction « Restaurer l’achat » ne fonctionne que pour le compte qui a initialement effectué l’achat.

Sur iOS, si le produit prend en charge le partage familial et que cette fonctionnalité est activée, n’importe quel membre de la famille peut restaurer l’achat. Le comportement dépend des réglages de l’App Store et du type de produit.

Affichez un message convivial tel que : « Aucun achat précédent n’a été trouvé pour votre compte. » Cela évite toute confusion et confirme que le processus s’est déroulé comme prévu.
Victoria Kharlan
Lessons I wish I had. Now yours.
Autre

Sur cette page

Prêt à créer votre premier paywall avec Adapty?
Créez des paywalls rentables sans coder
Commencez gratuitement