İntegrasyon için açık kaynaklı bir SDK uygulama içi alımlarda Flutter

Uygulama içi alımları 30 dakikada uygulayın.

Flutter in-app purchases için kutudan çıkar çıkmaz arka uç

Uygulama içi satın alımlar, abonelik olayları için bir arka alt yapısı ve sunucu oluşturmaya ihtiyaç duyar. Bu, yüzlerce saatlik iş alabilir ve sürdürmek zorlu olabilir.
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
  }
}
Adapty SDK, uygulamanızda uygulama içi abonelikleri entegre etmenizi sağlar ve hazır alt yapımız, tüm abonelik olaylarını yönetir ve gelir artırıcı özellikler sunar.
// 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
}
Entegrasyondan bakıma – Adapty, IAP ile çalışmayı daha kolay hale getirmek için oluşturulmuştur.
Demo talep et

Neden Adapty SDK'sını seçmelisiniz?

Her an doğru abonelik durumu

Tüm platformlarda her zaman doğru abone durumunu alacağınızdan emin olabilirsiniz.

Sunucu tarafı makbuz doğrulaması

Satın alma doğrulamanızın doğru ve güvenli olduğu konusunda endişelenmenize gerek yok.

Her türlü abonelik durumunu yönetme

Ücretsiz denemeler, yükseltmeler, promosyon teklifleri, aile paylaşımı, yenilemeler ve daha fazlası.

Kısa bir sürüm döngüsü ile kurumsal hazır platform

>%99.99 SLA güvenilirliği ve düzenli ürün güncellemeleri.
Platformları yapılandırma
Adapty SDK'sını yükleme
Adapty.activate(
   "PUBLIC_SDK_KEY",
   customerUserId: "YOUR_USER_ID"
)
Satın alma olaylarını işleme

Hızlı ve kolay entegrasyon

iOS uygulamanıza Adapty SDK'sını entegre etmek için sadece birkaç saat harcayın ve geri kalanını biz hallederiz.

Sadece 5 SDK yöntemi ile Flutter uygulama içi satın alma işlemlerini uygulamak için

// 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) {
}
 
 
 
Ücretsiz deneyin

Her türlü iş kolundan insanlar, gelirlerini artırmak için Adapty'e yöneliyor.

Adapty ile ne elde edersiniz?

Adapty SDK, uygulama gelirini artırmak için muazzam olanaklar sunar

Gerçek zamanlı analizler için senin Flutter Uygulaması

Verilerle %99.5 doğrulukla güvenin App Store Connect.
Başlayın
App Icon Gravity
Gravity Fit
Sağlık & Fitness
“Şeffaf ve gelişmiş analitik paneller, ek araçlar kullanmadan daha hızlı karar vermemize yardımcı oluyor. Bu bize çok zaman kazandırıyor ve dolayısıyla para.”
Ekaterina K,
Gravity Fit'te PM
Accuracy Adapty Appstore
ABC testing

Paywall A/B testi

En kârlı paywall'ı bulun ve uygulamanızın gelirini artırın.
A/B testini keşfedin
MentalGrowth
MentalGrowth
Sağlık & Wellness uygulaması
“Adapty’nin hızlı analizleri ve kolayca başlatılabilen A/B testi özelliği, hipotezleri hızla doğrulamamıza ve büyük sonuçlar elde etmemize olanak tanıdı.”
Vadim Nemchenko,
MentalGrowth'te Ürün Müdürü

Paywall'lar için uzaktan yapılandırma

Uygulamayı yeniden yayınlamaya gerek kalmadan paywall'ınızı uzaktan değiştirin.
Şimdi deneyin
Smitten
Smitten - Dating
Yaşam Tarzı
“Büyüme ve gelir ekibimiz, paywall'ları, ürün tekliflerini hızla uygulayıp yönetebiliyor ve birçok farklı pazarda fiyatlandırma seviyelerini test edebiliyor.”
Kyle Smith,
Smitten Dating'te veri yöneticisi
Table Json Table Locale

Kullanılabilirlik ve müşteri hizmetleri konusunda güvenilir

500'den fazla incelemeye göre
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