Android Add Subscription Restore Option In Your App

Android Uygulamanıza Abonelik Geri Yükleme Seçeneği Ekleme

Uygulama içi satın alımlar, Android uygulamalarından gelir elde etmenin harika bir yoludur. Ancak, kullanıcılarınızın aboneliklerini geri yüklemelerine izin vermezseniz, aboneliklerini iptal etmeleri veya cihazlarını değiştirmeleri durumunda aboneliklerini kaybedebilirler. Bu, kullanıcı deneyimini olumsuz etkileyebilir ve gelir kaybına yol açabilir.

Bu makalede, Android uygulamanıza abonelik geri yükleme seçeneği ekleme adımlarını ele alacağız.

1. Adım: Google Play Geliştirici Konsolu’nda Abonelik Oluşturma

İlk olarak, Google Play Geliştirici Konsolu’nda bir abonelik oluşturmanız gerekir. Bunu yapmak için şu adımları izleyin:

  1. Google Play Geliştirici Konsolu’na giriş yapın.
  2. “Uygulamalar ve oyunlar” bölümüne gidin.
  3. Uygulamanızı seçin.
  4. “Uygulama içi satın alımlar” bölümüne gidin.
  5. “Yeni ürün” düğmesine tıklayın.
  6. “Abonelik” seçeneğini seçin.
  7. Aboneliğinizin ayrıntılarını girin.
  8. “Kaydet” düğmesine tıklayın.

2. Adım: Uygulamanıza Abonelik Geri Yükleme Kodu Ekleme

Aboneliğinizi oluşturduktan sonra, uygulamanıza abonelik geri yükleme kodu eklemeniz gerekir. Bunu yapmak için şu adımları izleyin:

  1. Uygulamanızın build.gradle dosyasına şu satırı ekleyin:

implementation 'com.android.billing:billing:6.0.0'

  1. Uygulamanızın AndroidManifest.xml dosyasına şu satırı ekleyin:

<uses-permission android:name="com.android.vending.BILLING" />

  1. Uygulamanızın MainActivity.java dosyasına şu kodu ekleyin:

“`
import com.android.billing.client.api.BillingClient;
import com.android.billing.client.api.BillingClientStateListener;
import com.android.billing.client.api.BillingFlowParams;
import com.android.billing.client.api.BillingResult;
import com.android.billing.client.api.Purchase;
import com.android.billing.client.api.PurchasesUpdatedListener;

public class MainActivity extends AppCompatActivity implements PurchasesUpdatedListener {

private BillingClient billingClient;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    billingClient = BillingClient.newBuilder(this).setListener(this).build();
    billingClient.startConnection(new BillingClientStateListener() {
        @Override
        public void onBillingSetupFinished(@NonNull BillingResult billingResult) {
            if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
                // The billing client is ready to use.
            }
        }

        @Override
        public void onBillingServiceDisconnected() {
            // The billing client was disconnected. Try to reconnect.
        }
    });
}

@Override
public void onPurchasesUpdated(@NonNull BillingResult billingResult, @Nullable List<Purchase> purchases) {
    if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
        for (Purchase purchase : purchases) {
            if (purchase.getPurchaseState() == Purchase.PurchaseState.PURCHASED) {
                // The purchase was successful.
            } else if (purchase.getPurchaseState() == Purchase.PurchaseState.PENDING) {
                // The purchase is pending.
            } else if (purchase.getPurchaseState() == Purchase.PurchaseState.CANCELED) {
                // The purchase was canceled.
            }
        }
    }
}

public void restorePurchases() {
    billingClient.queryPurchasesAsync(BillingClient.SkuType.SUBS, new PurchasesResponseListener() {
        @Override
        public void onQueryPurchasesResponse(@NonNull BillingResult billingResult, @Nullable List<Purchase> purchases) {
            if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
                for (Purchase purchase : purchases) {
                    if (purchase.getPurchaseState() == Purchase.PurchaseState.PURCHASED) {
                        // The purchase was successful.
                    } else if (purchase.getPurchaseState() == Purchase.PurchaseState.PENDING) {
                        // The purchase is pending.
                    } else if (purchase.getPurchaseState() == Purchase.PurchaseState.CANCELED) {
                        // The purchase was canceled.
                    }
                }
            }
        }
    });
}

}
“`

3. Adım: Uygulamanızı Test Etme

Uygulamanızı test etmek için şu adımları izleyin:

  1. Uygulamanızı bir Android cihazına yükleyin.
  2. Uygulamayı başlatın ve aboneliğinizi satın alın.
  3. Uygulamayı kapatın ve yeniden başlatın.
  4. Uygulamanın aboneliğinizi geri yüklediğini kontrol edin.

Faydalı Siteler ve Dosyalar


Yayımlandı