Wiele produktów kupowanych raz

W tym dokumencie opisujemy, jak zintegrować aplikację z funkcją wielu produktów w Bibliotece płatności w Google Play (PBL).

Funkcja wielu produktów dla produktu kupowanego raz (OTP) umożliwia łączenie kilku produktów kupowanych raz w jeden produkt. Takie pakiety usług można kupować, rozliczać i zarządzać nimi zbiorczo. Możesz też tworzyć oferty rabatowe na te pakiety OTP, aby zachęcać do zakupu produktów.

co należy wziąć pod uwagę

Tworząc pakiety produktów kupowanych raz, pamiętaj o tych kwestiach:

  • W pakiecie produktów kupowanych raz nie można mieć subskrypcji.
  • Nie możesz łączyć treści cyfrowych i usług w tym samym pakiecie produktów kupowanych raz.
  • Produkty kupowane raz w pakiecie muszą być dostępne do natychmiastowego pobrania. Na przykład jednorazowy pakiet produktów nie może być kupiony w przedsprzedaży, ponieważ nie jest dostępny do natychmiastowego pobrania.
  • Wieloprodukt w przypadku produktów kupowanych raz nie obsługuje opcji zakupu z możliwością wypożyczenia.

Integracja z Biblioteką płatności w Play

W tej sekcji zakładamy, że znasz już podstawowe kroki integracji PBL, takie jak dodanie zależności PBL do aplikacji, zainicjowanie BillingClientpołączenie z Google Play. Ta sekcja skupia się na aspektach integracji PBL, które są specyficzne dla zakupów OTP wielu produktów.

Uruchamianie procesu zakupu

Aby uruchomić proces zakupu produktów kupowanych raz, wykonaj te czynności:

  1. Utwórz listę produktów kupowanych raz, korzystając z metody QueryProductDetailsParams.Builder.setProductList.

  2. Pobierz wszystkie produkty kupowane raz za pomocą metody BillingClient.queryProductDetailsAsync.

    Poniższy przykład pokazuje, jak pobrać wszystkie produkty jednorazowe:

    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. Ustaw obiekt ProductDetails dla każdego produktu kupowanego raz.

  4. Podaj szczegóły produktu kupowanego raz w metodzie BillingFlowParams.Builder.setProductDetailsParamsList. Klasa BillingFlowParams określa szczegóły procesu zakupu.

    Poniższy przykład pokazuje, jak uruchomić proces płatności za zakup OTP wielu produktów:

    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);

Przetwarzanie zakupów

Przetwarzanie zakupów OTP obejmujących wiele produktów jest takie samo jak w przypadku dotychczasowych zakupów pojedynczych produktów, co opisano w artykule Integrowanie Biblioteki płatności w Google Play z aplikacją. Jedyna różnica polega na tym, że w przypadku zakupów OTP obejmujących wiele produktów musisz przyznać uprawnienia do wszystkich produktów, a nie tylko do jednego, aby użytkownik mógł otrzymać wiele uprawnień w ramach jednego zakupu. Zakup OTP obejmujący wiele produktów zwraca wiele elementów, które można pobrać za pomocą Purchase.getProducts() w bibliotece rozliczeniowej Google Play, a następnie listy lineItemspurchases.products.get interfejsu Google Play Developer API.

Powiadomienia w czasie rzeczywistym dla deweloperów

W przypadku zakupów obejmujących wiele produktów pole sku nie jest podawane w RTDN. Zakupy OTP obejmujące wiele produktów to zakupy więcej niż 1 produktu. Dlatego możesz używać interfejsów Play Developer API, aby pobierać dane o zakupach i wyświetlać wszystkie znajdujące się w nich produkty.

Zwroty środków

W przypadku zakupu wielu produktów za pomocą OTP użytkownicy nie mogą prosić o zwrot środków za poszczególne produkty, a Ty nie możesz przyznawać zwrotów środków za poszczególne produkty. Możesz jednak poprosić o zwrot środków za cały zakup OTP obejmujący wiele produktów i otrzymać taki zwrot. Jeśli anulujesz zakup OTP obejmujący wiele produktów dla użytkownika, anulowane zostaną wszystkie uprawnienia powiązane z tym zakupem.

Raportowanie finansowe i uzgadnianie

Użyj raportu o zarobkach, aby porównać aktywne zakupy pakietów wielousługowych z wypłatami i transakcjami w Google Play. Każdy wiersz transakcji ma identyfikator zamówienia. W przypadku zakupu OTP obejmującego wiele produktów raporty Zarobki i Szacunkowa sprzedaż będą zawierać osobne wiersze (z tym samym identyfikatorem zamówienia) dla każdej transakcji, np. obciążenia, opłaty, podatku i zwrotu środków, w przypadku każdego produktu.

W przypadku paneli w Konsoli Play:

  • Statystyki przychodów prezentowane w sekcji Raporty finansowe w konsoli są podzielone według poszczególnych produktów.

  • Zarządzanie zamówieniami odzwierciedla zakupy OTP wielu produktów i zawiera szczegółowe listy zakupionych produktów. W ramach zarządzania zamówieniami możesz cofnąć, anulować lub w pełni zwrócić środki za zakup użytkownika.