Multi-prodotto per i prodotti a pagamento singolo

Questo documento descrive come integrare la tua app con la funzionalità multi-prodotto della Libreria Fatturazione Play (PBL).

La funzionalità multi-prodotto per prodotti a pagamento singolo (OTP) ti consente di combinare più prodotti a pagamento singolo in un'unica unità. Questi prodotti in bundle possono quindi essere acquistati, fatturati e gestiti collettivamente. Puoi anche creare offerte con sconti per questi OTP in bundle per incentivare gli acquisti di prodotti.

Considerazioni

Quando crei bundle di prodotti a pagamento singolo, tieni presente quanto segue:

  • Non puoi includere abbonamenti in un bundle di prodotti a pagamento singolo.
  • Non puoi combinare contenuti digitali e servizi nello stesso pacchetto di prodotti a pagamento singolo.
  • I prodotti a pagamento singolo inclusi nel bundle devono essere disponibili per il download immediato. Ad esempio, un pacchetto di prodotti una tantum non può essere acquistato in pre-ordine perché non è disponibile per il download immediato.
  • Il multi-prodotto per i prodotti a pagamento singolo non supporta l'opzione di acquisto del noleggio.

Integrare la Libreria Fatturazione Play

Questa sezione presuppone che tu abbia familiarità con i passaggi iniziali di integrazione della Libreria Fatturazione Play, ad esempio l'aggiunta della dipendenza della Libreria Fatturazione Play alla tua app, l'inizializzazione di BillingClient e la connessione a Google Play. Questa sezione si concentra sugli aspetti dell'integrazione di PBL specifici per gli acquisti OTP di più prodotti.

Avviare un flusso di acquisto

Per avviare un flusso di acquisto per prodotti a pagamento singolo multiprodotto, segui questi passaggi:

  1. Crea un elenco di prodotti con tutti i prodotti a pagamento singolo utilizzando il metodo QueryProductDetailsParams.Builder.setProductList.

  2. Recupera tutti i tuoi prodotti a pagamento singolo utilizzando il metodo BillingClient.queryProductDetailsAsync.

    L'esempio seguente mostra come recuperare tutti i tuoi prodotti una tantum:

    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. Imposta l'oggetto ProductDetails per ogni prodotto a pagamento singolo.

  4. Specifica i dettagli del prodotto a pagamento singolo nel metodo BillingFlowParams.Builder.setProductDetailsParamsList. La classe BillingFlowParams specifica i dettagli di un flusso di acquisto.

    Il seguente esempio mostra come avviare il flusso di fatturazione per un acquisto OTP di più prodotti:

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

Elaborare gli acquisti

L'elaborazione degli acquisti di abbonamenti con più prodotti è uguale a quella degli acquisti di un singolo articolo esistenti, come descritto in Integrare la Libreria Fatturazione Google Play nella tua app. L'unica differenza è che devi concedere il diritto per tutti i prodotti anziché solo per uno per gli acquisti di abbonamenti con più prodotti, in modo che l'utente possa ricevere più diritti con un unico acquisto. Un acquisto OTP di più prodotti restituisce più elementi che possono essere recuperati utilizzando Purchase.getProducts() nella libreria Fatturazione Google Play, quindi l'elenco lineItems in purchases.products.get dell'API Google Play Developer.

Notifiche in tempo reale per lo sviluppatore

Il campo sku non è fornito in RTDN per gli acquisti OTP multiprodotto. Gli acquisti OTP di più prodotti rappresentano più di un prodotto. Pertanto, puoi utilizzare le API Play Developer per ottenere i dati sugli acquisti e visualizzare tutti gli articoli al loro interno.

Rimborsi

In un acquisto OTP multi-prodotto, gli utenti non possono richiedere rimborsi per singoli articoli e nemmeno tu puoi emettere rimborsi per singoli articoli. Tuttavia, è consentito richiedere ed emettere rimborsi per l'intero acquisto di OTP multi-prodotto. Se annulli l'acquisto di un OTP multi-prodotto per un utente, vengono annullati tutti i diritti associati all'acquisto.

Report finanziari e riconciliazione

Utilizza il report sugli utili per riconciliare gli acquisti di offerte multi-prodotto attive con i pagamenti e le transazioni di Google Play. Ogni riga della transazione ha un ID ordine. Per un acquisto OTP di più prodotti, i report Entrate e Vendite stimate includeranno righe separate (con lo stesso ID ordine) per ogni transazione, ad esempio addebito, tariffa, imposta e rimborso, per ogni articolo coinvolto.

Per le dashboard in Play Console:

  • Le statistiche sulle entrate presentate nella sezione Report finanziari di Play Console sono suddivise per singoli prodotti.

  • La gestione degli ordini riflette gli acquisti OTP di più prodotti e mostra elenchi dettagliati di ciò che è stato acquistato. Dalla gestione degli ordini, puoi revocare, annullare o rimborsare completamente l'acquisto di un utente.