Tek seferlik ürünler için çoklu ürün

Bu belgede, uygulamanızı Play Faturalandırma Kitaplığı'nın (PBL) çok ürünlü özelliğiyle nasıl entegre edebileceğiniz açıklanmaktadır.

Tek seferlik ürünler için çoklu ürün özelliği, birden fazla tek seferlik ürünü tek bir birimde birleştirmenize olanak tanır. Bu paketlenmiş ürünler daha sonra toplu olarak satın alınabilir, faturalandırılabilir ve yönetilebilir. Ayrıca, ürün satın alımlarını teşvik etmek için bu paketlenmiş OTP'ler için indirim fırsatları da oluşturabilirsiniz.

Dikkat edilmesi gereken noktalar

Tek seferlik ürün paketleri oluştururken aşağıdaki hususları göz önünde bulundurun:

  • Tek seferlik ürün paketlerinde abonelikler yer alamaz.
  • Aynı tek seferlik ürün paketinde dijital içerik ve hizmet kombinasyonu olamaz.
  • Paketlenmiş tek seferlik ürünler hemen indirilebilmelidir. Örneğin, tek seferlik bir ürün paketi hemen indirilemediği için ön siparişle satın alınamaz.
  • Tek seferlik ürünler için çoklu ürün, kiralama satın alma seçeneğini desteklemez.

Play Faturalandırma Kitaplığı ile entegrasyon

Bu bölümde, PBL bağımlılığını uygulamanıza ekleme, BillingClient'ı başlatma ve Google Play'e bağlanma gibi ilk PBL entegrasyonu adımlarına aşina olduğunuz varsayılır. Bu bölümde, çok ürünlü OTP satın alma işlemlerine özel olan PBL entegrasyonuyla ilgili konulara odaklanılmaktadır.

Satın alma akışı başlatma

Çoklu ürün içeren tek seferlik ürünler için satın alma akışı başlatmak üzere aşağıdaki adımları uygulayın:

  1. QueryProductDetailsParams.Builder.setProductList yöntemini kullanarak tüm tek seferlik ürünlerin bulunduğu bir ürün listesi oluşturun.

  2. BillingClient.queryProductDetailsAsync yöntemini kullanarak tüm tek seferlik ürünlerinizi getirin.

    Aşağıdaki örnekte, tek seferlik tüm ürünlerinizin nasıl getirileceği gösterilmektedir:

    Java

    billingClient.queryProductDetailsAsync(
    queryProductDetailsParams,
    new ProductDetailsResponseListener() {
      public void onProductDetailsResponse(
          BillingResult billingResult, QueryProductDetailsResult productDetailsResult) {
        // check billingResult
        // …
        // process productDetailsList returned by QueryProductDetailsResult
        ImmutableList productDetailsList = productDetailsResult.getProductDetailsList();
        for (ProductDetails productDetails : productDetailsList) {
          for (OneTimePurchaseOfferDetails oneTimePurchaseOfferDetails :
              productDetails.getOneTimePurchaseOfferDetailsList()) {
                 // …
          }
        }
      }
    });
  3. Her tek seferlik ürün için ProductDetails nesnesini ayarlayın.

  4. Tek seferlik ürün ayrıntılarını BillingFlowParams.Builder.setProductDetailsParamsList yönteminde belirtin. BillingFlowParams sınıfı, satın alma akışının ayrıntılarını belirtir.

    Aşağıdaki örnekte, çok ürünlü bir OTP satın alma işlemi için faturalandırma akışının nasıl başlatılacağı gösterilmektedir:

    Java

    BillingClient billingClient =
       BillingClient.newBuilder()
        // set other options
        .build();
    // ProductDetails obtained from queryProductDetailsAsync().
    ProductDetails productDetails1 = ...;
    ProductDetails productDetails2 = ...;
    ArrayList productDetailsList = new ArrayList<>();
    productDetailsList.add(productDetails1);
    productDetailsList.add(productDetails2);
    BillingFlowParams billingFlowParams =
    BillingFlowParams.newBuilder()
        .setProductDetailsParamsList(productDetailsList)
        .build();
    billingClient.launchBillingFlow(billingFlowParams);

Satın alma işlemlerini işleme

Çok ürünlü tek kullanımlık teklif satın alma işlemlerinin işlenmesi, Google Play Faturalandırma Kitaplığı'nı uygulamanıza entegre etme başlıklı makalede açıklandığı gibi mevcut tek öğeli satın alma işlemlerinin işlenmesiyle aynıdır. Tek fark, çok ürünlü tek kullanımlık teklif satın alma işlemlerinde kullanıcının tek bir satın alma işlemiyle birden fazla hak alabilmesi için yalnızca bir ürün yerine tüm ürünler için hak vermeniz gerekmesidir. Çok ürünlü bir OTP satın alma işlemi, Google Play Billing Library'de Purchase.getProducts() kullanılarak ve ardından Google Play Developer API'nin purchases.products.get bölümündeki lineItems listesi kullanılarak alınabilen birden fazla öğe döndürür.

Gerçek zamanlı geliştirici bildirimleri

Çok ürünlü OTP satın alma işlemlerinde RTDN için sku alanı sağlanmaz. Çok ürünlü OTP satın alma işlemleri birden fazla ürünü ifade eder. Bu nedenle, satın alma verilerini almak ve içindeki tüm öğeleri görmek için Play Developer API'lerini kullanabilirsiniz.

Geri ödemeler

Çok ürünlü bir OTP satın alma işleminde kullanıcılar ayrı ayrı öğeler için geri ödeme isteğinde bulunamaz ve siz de ayrı ayrı öğeler için geri ödeme yapamazsınız. Ancak, çok ürünlü OTP satın alma işleminin tamamı için geri ödeme isteğinde bulunulmasına ve geri ödeme yapılmasına izin verilir. Bir kullanıcı için çok ürünlü bir OTP satın alımını iptal ediyorsanız satın alımla ilişkili tüm haklar iptal edilir.

Finansal raporlama ve mutabakat

Etkin çok ürünlü OTP satın alma işlemlerinizi Google Payoffs ve Play'deki işlemlerle uzlaştırmak için Kazanç raporunu kullanın. Her işlem satır öğesinin bir sipariş kimliği vardır. Çok ürünlü bir OTP satın alma işleminde, Kazanç ve Tahmini Satış raporları, her işlem için ayrı satırlar (aynı sipariş kimliğiyle) içerir. İlgili her öğe için ücret, vergi ve geri ödeme gibi işlemler.

Play Console'daki kontrol panelleri için:

  • Konsolun Finansal raporlama bölümünde sunulan gelir istatistikleri, tek tek ürünlere göre ayrılır.

  • Sipariş yönetimi, çok ürünlü OTP satın alımlarını yansıtır ve satın alınan ürünlerin ayrıntılı listelerini gösterir. Sipariş yönetiminden kullanıcının satın alma işlemini iptal edebilir, geri çekebilir veya tam geri ödeme yapabilirsiniz.