---
title: "Flutter SDK'da özel paywallınızda satın almaları etkinleştirin"
description: "Uygulama içi satın almaları etkinleştirmek için Adapty SDK'yı özel Flutter paywalllarınıza entegre edin."
---

Bu kılavuz, Adapty'yi özel paywalllarınıza nasıl entegre edeceğinizi açıklar. Paywall uygulaması üzerinde tam kontrolü elinizde tutarken Adapty SDK ürünleri getirir, yeni satın almaları yönetir ve önceki satın almaları geri yükler.

:::important
**Bu kılavuz, özel paywall uygulayan geliştiriciler içindir.** Satın almaları etkinleştirmenin en kolay yolunu istiyorsanız [Adapty Paywall Builder](flutter-quickstart-paywalls)'ı kullanın. Paywall Builder ile kodsuz görsel editörde paywalllar oluşturursunuz, Adapty tüm satın alma mantığını otomatik olarak yönetir ve uygulamanızı yeniden yayınlamadan farklı tasarımları test edebilirsiniz.
:::

## Başlamadan önce \{#before-you-start\}

### Ürünleri ayarlayın \{#set-up-products\}

Uygulama içi satın almaları etkinleştirmek için üç temel kavramı anlamanız gerekir:

- [**Ürünler**](product) – kullanıcıların satın alabileceği her şey (abonelikler, consumable'lar, süresiz erişim)
- [**Paywalllar**](paywalls) – hangi ürünlerin sunulacağını tanımlayan yapılandırmalar. Adapty'de ürünleri almanın tek yolu paywalllar üzerindendir; bu tasarım sayesinde uygulama kodunuza dokunmadan ürünleri, fiyatları ve teklifleri değiştirebilirsiniz.
- [**Placement'lar**](placements) – uygulamanızda paywallları nerede ve ne zaman gösterdiğiniz (örneğin `main`, `onboarding`, `settings`). Kontrol panelinde placement'lar için paywalllar ayarlarsınız, ardından kodunuzda placement ID'siyle bunları talep edersiniz. Bu yapı, A/B testleri yürütmeyi ve farklı kullanıcılara farklı paywalllar göstermeyi kolaylaştırır.

Özel paywall kullansanız bile bu kavramları anladığınızdan emin olun. Temel olarak bunlar, uygulamanızda sattığınız ürünleri yönetme biçiminizdir.

Özel paywallınızı uygulamak için bir **paywall** oluşturmanız ve bunu bir **placement**'a eklemeniz gerekir. Bu kurulum, ürünlerinizi almanızı sağlar. Kontrol panelinde yapmanız gerekenleri anlamak için [buradaki](quickstart) hızlı başlangıç kılavuzunu takip edin.

### Kullanıcıları yönetin \{#manage-users\}

Kendi tarafınızda backend kimlik doğrulamasıyla ya da doğrulamasız çalışabilirsiniz.

Ancak Adapty SDK, anonim ve tanımlanmış kullanıcıları farklı şekilde ele alır. Ayrıntıları anlamak ve kullanıcılarla doğru şekilde çalıştığınızdan emin olmak için [kimlik doğrulama hızlı başlangıç kılavuzunu](flutter-quickstart-identify) okuyun.

## Adım 1. Ürünleri alın \{#step-1-get-products\}

Özel paywallınız için ürünleri almak üzere şunları yapmanız gerekir:

1. `getPaywall` metoduna [placement](placements) ID'sini geçirerek `paywall` nesnesini alın.
2. `getPaywallProducts` metodunu kullanarak bu paywall için ürünler dizisini alın.

```dart showLineNumbers

Future<void> loadPaywall() async {
  try {
    final paywall = await Adapty().getPaywall(placementId: 'YOUR_PLACEMENT_ID');
    final products = await Adapty().getPaywallProducts(paywall: paywall);
    
    // Use products to build your custom paywall UI
  } on AdaptyError catch (adaptyError) {
    // Handle the error
  } catch (e) {
    // Handle the error
  }
}
```

## Adım 2. Satın almaları kabul edin \{#step-2-accept-purchases\}

Kullanıcı özel paywallınızda bir ürüne dokunduğunda, seçilen ürünle birlikte `makePurchase` metodunu çağırın. Bu, satın alma akışını yönetir ve güncellenmiş profili döndürür.

```dart showLineNumbers

Future<void> purchaseProduct(AdaptyPaywallProduct product) async {
  try {
    final purchaseResult = await Adapty().makePurchase(product: product);
    
    switch (purchaseResult) {
      case AdaptyPurchaseResultSuccess(profile: final profile):
        // Purchase successful, profile updated
        break;
      case AdaptyPurchaseResultUserCancelled():
        // User canceled the purchase
        break;
      case AdaptyPurchaseResultPending():
        // Purchase is pending (e.g., user will pay offline with cash)
        break;
    }
  } on AdaptyError catch (adaptyError) {
    // Handle the error
  } catch (e) {
    // Handle the error
  }
}
```

## Adım 3. Satın almaları geri yükleyin \{#step-3-restore-purchases\}

Uygulama mağazaları, abonelik içeren tüm uygulamaların kullanıcılara satın almalarını geri yükleyebilecekleri bir yol sunmasını zorunlu kılar.

Kullanıcı geri yükleme düğmesine dokunduğunda `restorePurchases` metodunu çağırın. Bu, satın alma geçmişini Adapty ile senkronize eder ve güncellenmiş profili döndürür.

```dart showLineNumbers

Future<void> restorePurchases() async {
  try {
    final profile = await Adapty().restorePurchases();
    // Restore successful, profile updated
  } on AdaptyError catch (adaptyError) {
    // Handle the error
  } catch (e) {
    // Handle the error
  }
}
```

## Sonraki adımlar \{#next-steps\}

---
no_index: true
---
import Callout from '../../../components/Callout.astro';

<Callout type="tip">
Sorularınız mı var ya da sorunlarla mı karşılaşıyorsunuz? Sık sorulan soruların yanıtlarını bulabileceğiniz veya kendi sorularınızı sorabileceğiniz [destek forumumuza](https://adapty.featurebase.app/) göz atın. Ekibimiz ve topluluğumuz yardımcı olmak için burada!
</Callout>

Paywallınız uygulamada gösterilmeye hazır. Paywalldan test satın almasını tamamlayabildiğinizden emin olmak için satın almalarınızı [App Store sandbox](test-purchases-in-sandbox) ortamında veya [Google Play Store](testing-on-android)'da test edin. Bunun üretim ortamına hazır bir uygulamada nasıl çalıştığını görmek için, uygun hata yönetimi, UI gözlemcileri ve kapsamlı SDK entegrasyonuyla satın alma işlemini gösteren örnek uygulamamızdaki [PurchasesObserver](https://github.com/adaptyteam/AdaptySDK-Flutter/blob/master/example/lib/purchase_observer.dart)'a göz atın.

Ardından, paywallı gösterip göstermeyeceğinizi veya ücretli özelliklere erişim izni verip vermeyeceğinizi belirlemek için [kullanıcıların satın almalarını tamamlayıp tamamlamadığını kontrol edin](flutter-check-subscription-status).