Un SDK open-source pour intégrer les achats in-app sur Flutter

Implémentez les achats in-app en 30 minutes.

Backend prêt à l'emploi pour Flutter achats intégrés

Intégrer les achats intégrés nécessite de créer une infrastructure backend et un serveur pour les événements d'abonnement. Cela peut prendre des centaines d'heures de travail et être difficile à maintenir.
import StoreKit
class Store: ObservableObject {
    private var productIDs = ["stone"]
    @Published var products = [Product]()
    init() {
        Task {
            await requestProducts()
        }
    }  
    @MainActor
    func requestProducts() async {
        do {
            products = try await Product.products(for: productIDs)
        } catch {
            print(error)
    }
  }
}
Section(header: Text("To buy")) {
 }
ForEach(store.products, id: .id) {
  product in
    HStack {
      Text(product.displayName)
      Spacer()
      Button("(product.displayPrice)") {
    }
  }
}
@Published var purchasedNonConsumables = [Product]()
@MainActor
func purchase(_ product: Product) async throws -> Transaction ? {
  let result =
    try await product.purchase()
  switch result {
    case .success(.verified(let transaction)):
      purchasedNonConsumables.append(product)
      await transaction.finish()
      return transaction
    default:
      return nil
  }
}
Button("(product.displayPrice)") {
 Task {
  try await store.purchase(product)
  }
}
ProductView(
 icon: "❀",
 quantity: "(store.purchasedNonConsumables.count)"
 )
 func listenForTransactions() -> Task < Void, Error > {
  return Task.detached {
    for await result in Transaction.updates {
      switch result {
        case let.verified(transaction):
          guard
          let product = self.products.first(where: {
            $0.id == transaction.productID
          })
          else {
            continue
          }
          self.purchasedNonConsumables.append(product)
          await transaction.finish()
        default:
          continue
      }
    }
  }
}
var transacitonListener: Task<Void, Error>?
init() {
   transacitonListener = listenForTransactions()
   Task {
     await requestProducts()
 }
}
@MainActor
private func handle(transactionVerification result: VerificationResult <Transaction> ) async {
  switch result {
    case let.verified(transaction):
      guard
      let product = self.products.first(where: {
        $0.id == transaction.productID
      })
      else {
        return
      }
      self.purchasedNonConsumables.insert(product)
      await transaction.finish()
    default:
      return
  }
}
Le SDK Adapty vous permet d'intégrer des abonnements intégrés dans votre application iOS avec notre infrastructure prête à l'emploi, qui gère tous les événements d'abonnement et offre des fonctionnalités de croissance des revenus.
// Your app's code
import 'package:adapty_flutter/adapty_flutter.dart';
Adapty().activate();
 
// Make a purchase, Adapty handles the rest
try {
	final profile = await Adapty().makePurchase(product: product);
	// successful purchase
} on AdaptyError catch (adaptyError) {
	// handle the error
} catch (error) {
	// handle another errors
}
De l'intégration à la maintenance – Adapty est conçu pour faciliter le travail avec les achats intégrés.
Demander une démo

Pourquoi choisir le SDK Adapty?

État d'abonnement correct à tout moment

Soyez assuré que vous obtiendrez toujours l'état correct des abonnés sur toutes les plateformes.

Validation des reçus côté serveur

Pas besoin de vous inquiéter de la correction et de la sécurité de la validation des achats.

Gestion de tous types d'états d'abonnement

Essais gratuits, mises à niveau, offres promotionnelles, partage familial, renouvellements, et plus.

Plateforme prête pour les entreprises avec un court cycle de publication

>99,99 % de fiabilité SLA et des mises à jour régulières du produit.
Configuration des plateformes
Installation du SDK Adapty
Adapty.activate(
   "PUBLIC_SDK_KEY",
   customerUserId: "YOUR_USER_ID"
)
Traitement des événements d'achat

Intégration rapide et facile

Passez seulement quelques heures à intégrer le SDK Adapty dans votre application iOS et nous nous occuperons du reste.

Juste 5 méthodes SDK à implémenter Flutter achats intégrés

// Your app's code
try {
    final profile = await Adapty().makePurchase(product: product);
    // successful purchase
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
}
 
 
// Your app's code
try {
    final profile = await Adapty().restorePurchases();
    // check the access level
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
}
 
 
// Your app's code
try {
    await Adapty().identify(customerUserId);
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
}
 
 
 
// Your app's code
final builder = AdaptyProfileParametersBuilder()
  ..("Profile_Parameters")
 
try {
    await Adapty().updateProfile(builder.build());
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
}
// Your app's code
try {
  await Adapty().updateAttribution("<attribution>", source: "<source>", networkUserId: "<networkUserId>");
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
}
 
 
 
Essayez gratuitement

Des personnes de tous types d'entreprises se tournent vers Adapty pour augmenter leurs revenus

Que pouvez-vous obtenir avec Adapty?

Le SDK Adapty offre d'énormes possibilités pour faire croître les revenus de l'application

Analyse en temps réel pour votre Flutter App

Fiez-vous aux données avec une précision de 99,5 % avec App Store Connect.
Commencer
App Icon Gravity
Gravity Fit
Santé & Fitness
« Les tableaux de bord analytiques transparents et avancés nous aident à prendre des décisions plus rapidement sans utiliser d'outils supplémentaires. Cela nous fait gagner beaucoup de temps et, par conséquent, d'argent. »
Ekaterina K,
PM chez Gravity Fit
Accuracy Adapty Appstore
ABC testing

Tests A/B de paywalls

Trouvez le paywall le plus rentable et augmentez les revenus de votre application.
Explorer les tests A/B
MentalGrowth
MentalGrowth
Application Santé & Bien-être
« Les analyses rapides d'Adapty et la fonctionnalité de tests A/B faciles à lancer ont permis de valider rapidement des hypothèses et d'obtenir d'excellents résultats. »
Vadim Nemchenko,
Chef de produit chez MentalGrowth

Configuration à distance pour les paywalls

Changez votre paywall à distance sans avoir à rééditer l'application.
Essayez-le maintenant
Smitten
Smitten - Rencontres
Style de vie
« Notre équipe de croissance et de revenus est capable de mettre en œuvre et de gérer rapidement des paywalls, des offres de produits, et de tester des niveaux de prix dans de nombreux marchés différents. »
Kyle Smith,
Responsable des données chez Smitten Dating
Table Json Table Locale

La convivialité et le service à la clientèle font l'objet d'une grande confiance

Sur la base de plus de 500 avis
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025