Versionshinweise zur Google Play Billing Library

Dieses Thema enthält Versionshinweise für die Google Play Billing Library.

Google Play Billing Library 7.0.0 (14.05.2024)

Version 7.0.0 der Google Play Billing Library und der Kotlin-Erweiterungen sind jetzt verfügbar.

Zusammenfassung der Änderungen

Google Play Billing Library 6.2.1 (16.04.2024)

Version 6.2.1 der Google Play Billing Library und der Kotlin-Erweiterungen sind jetzt verfügbar.

Zusammenfassung der Änderungen

Google Play Billing Library 6.2.0 (06.03.2024)

Version 6.2.0 der Google Play Billing Library und der Kotlin-Erweiterungen sind jetzt verfügbar.

Zusammenfassung der Änderungen

Google Play Billing Library 6.1.0 (14.11.2023)

Version 6.1.0 der Google Play Billing Library und der Kotlin-Erweiterungen sind jetzt verfügbar.

Zusammenfassung der Änderungen

Google Play Billing Library 6.0.1 (22.06.2023)

Version 6.0.1 der Google Play Billing Library- und Kotlin-Erweiterungen ist jetzt verfügbar.

Zusammenfassung der Änderungen

Aktualisiere die Play Billing Library so, dass sie mit Android 14 kompatibel ist.

Google Play Billing Library 6.0-Release (10.05.2023)

Version 6.0.0 der Google Play Billing Library und der Kotlin-Erweiterungen sind jetzt verfügbar.

Zusammenfassung der Änderungen

  • Neu hinzugefügt ReplacementMode Zu ersetzende Aufzählung ProrationMode

    ProrationMode ist aus Gründen der Abwärtskompatibilität weiterhin verfügbar. Gründe.

  • Bestell-ID entfernt für PENDING Käufe.

    Bisher wurde die Bestell-ID immer erstellt, auch wenn der Kauf ausstehend. Ab Version 6.0.0 wird keine Auftrags-ID für ausstehende Käufe. Bei diesen Käufen wird die Bestell-ID nachdem der Kauf in den PURCHASED Bundesstaat.

  • Methoden queryPurchases und launchPriceConfirmationFlow entfernt.

    Die Methoden queryPurchases und launchPriceConfirmationFlow mit die zuvor als veraltet markiert waren, wurden in Play Billing entfernt. Bibliothek 6.0.0. Entwickler sollten queryPurchasesAsync statt queryPurchases. Für launchPriceConfirmationFlow Alternativen Siehe Preisänderungen.

  • Neuer Antwortcode für Netzwerkfehler hinzugefügt.

    Einen neuen Antwortcode für Netzwerkfehler, NETWORK_ERROR, wurde ab PBL-Version 6.0.0 hinzugefügt. Dieser Code wird zurückgegeben, wenn ein aufgrund eines Problems mit der Netzwerkverbindung. Diese Netzwerkverbindungen Fehler wurden zuvor als SERVICE_UNAVAILABLE gemeldet.

  • Aktualisiert SERVICE_UNAVAILABLE und SERVICE_TIMEOUT

    Ab PBL-Version 6.0.0 werden Fehler aufgrund von Zeitüberschreitungen bei der Verarbeitung als SERVICE_UNAVAILABLE anstelle des aktuellen SERVICE_TIMEOUT zurückgegeben.

    Das Verhalten ändert sich in früheren PBL-Versionen nicht.

  • Entfernt SERVICE_TIMEOUT

    Ab PBL-Version 6.0.0 wird SERVICE_TIMEOUT nicht mehr zurückgegeben. In früheren PBL-Versionen wird dieser Code weiterhin zurückgegeben.

  • Zusätzliches Logging hinzugefügt.

    Der Release von Play Billing Library 6 umfasst eine zusätzliche Protokollierung, die Einblick in API-Nutzung (z. B. Erfolg oder Fehler) und Dienstverbindung Probleme. Diese Informationen werden verwendet, um die Leistung von Google Play zu verbessern Billing Library und bieten eine bessere Unterstützung bei Fehlern.

Google Play Billing Library 5.2.1 (22.06.2023)

Version 5.2.1 der Google Play Billing Library und der Kotlin-Erweiterungen sind jetzt verfügbar.

Zusammenfassung der Änderungen

Aktualisiere die Play Billing Library so, dass sie mit Android 14 kompatibel ist.

Google Play Billing Library 5.2 (06.04.2023)

Version 5.2.0 der Google Play Billing Library und der Kotlin-Erweiterungen sind jetzt verfügbar.

Zusammenfassung der Änderungen

Google Play Billing Library 5.1-Release (31.10.2022)

Version 5.1.0 der Google Play Billing Library und der Kotlin-Erweiterungen sind jetzt verfügbar.

Diese Version enthält die folgenden Änderungen.

Zusammenfassung der Änderungen

Google Play Billing Library 5.0-Release (11.05.2022)

Version 5.0.0 der Google Play Billing Library und der Kotlin-Erweiterungen sind jetzt verfügbar.

Diese Version enthält die folgenden Änderungen.

Zusammenfassung der Änderungen

  • Einführung eines neuen Modells für Abos, einschließlich neuer Entitäten, die können Sie mehrere Angebote für ein Aboprodukt. Weitere Informationen finden Sie in der Migrationsanleitung.
  • Hinzugefügt BillingClient.queryProductDetailsAsync() um BillingClient.querySkuDetailsAsync() zu ersetzen.
  • Methode setIsOfferPersonalized() für personalisierte EU-Preise hinzugefügt Offenlegungspflichten. Weitere Informationen zur Verwendung dieser Methode finden Sie unter Geben Sie einen personalisierten Preis an.
  • queryPurchases() entfernt, das zuvor eingestellt und ersetzt wurde durch queryPurchasesAsync in Google Play Billing Library 4.0.0 eingeführt.
  • launchPriceChangeFlow wurde verworfen und wird in Zukunft entfernt Veröffentlichung. Weitere Informationen zu Alternativen finden Sie unter Starte einen Vorgang zur Bestätigung der Preisänderung.
  • Entfernt setVrPurchaseFlow(), der zuvor beim Instanziieren eines Kaufvorgangs verwendet wurde. In früheren Versionen wurde der Nutzer mit dieser Methode an folgende URL weitergeleitet: um den Kauf auf ihrem Android-Gerät abzuschließen. Nach dem Entfernen schließen Nutzer den Kauf über die Standard-Kaufvorgang.

Google Play Billing Library 4.1 (23.02.2022)

Version 4.1.0 der Google Play Billing Library und der Kotlin-Erweiterungen sind jetzt verfügbar.

Diese Version enthält die folgenden Änderungen.

Zusammenfassung der Änderungen

Google Play Billing Library 4.0 (18.05.2021)

Version 4.0.0 der Google Play Billing Library und der Kotlin-Erweiterungen sind jetzt verfügbar.

Zusammenfassung der Änderungen

Google Play Billing Library 3.0.3 (12.03.2021)

Version 3.0.3 der Google Play Billing Library, der Kotlin-Erweiterung und der Unity-App sind jetzt verfügbar.

Fehlerkorrekturen für Java und Kotlin

  • Speicherleck beheben, wenn endConnection() aufgerufen wird.
  • Problem behoben, bei dem die Google Play Billing Library von Apps verwendet wird, die Startmodus für eine einzelne Aufgabe. A onPurchasesUpdated() Callback wird ausgelöst, wenn eine App aus dem Android Launcher fortgesetzt wird und das Dialogfeld für die Abrechnung war vor der Sperrung sichtbar.

Fehlerkorrekturen bei Unity

  • Aktualisieren Sie auf Java Version 3.0.3, um ein Speicherleck zu beheben und das Problem zu beheben, das Käufe, wenn eine App über den Android Launcher und die Abrechnung fortgesetzt wird Dialogfeld war vor der Sperrung sichtbar.

Google Play Billing Library 3.0.2 (24.11.2020)

Version 3.0.2 der Google Play Billing Library und der Kotlin-Erweiterung sind jetzt verfügbar.

Fehlerkorrekturen

  • Es wurde ein Fehler in der Kotlin-Erweiterung behoben, bei dem die Koroutine mit dem Fehler „Bereits fortgesetzt“ fehlschlug.
  • Nicht aufgelöste Verweise bei Verwendung der Kotlin-Erweiterung mit der kotlinx.coroutines-Bibliothek ab Version 1.4 wurden behoben.

Google Play Billing Library 3.0.1 (30.09.2020)

Version 3.0.1 der Google Play Billing Library und der Kotlin-Erweiterung sind jetzt verfügbar.

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, bei dem die App während des Abrechnungsvorgangs beendet und wiederhergestellt wurde. PurchasesUpdatedListener kann nicht mit dem Kaufergebnis aufgerufen werden.

Google Play Billing Library 3.0-Release (08.06.2020)

Version 3.0.0 der Google Play Billing Library, Kotlin-Erweiterung und Unity-Plug-in sind jetzt verfügbar.

Zusammenfassung der Änderungen

  • Die Unterstützung für SKU mit Prämie wurde entfernt.
  • Die Parameter ChildDirected und UnderAgeOfConsent wurden entfernt.
  • Die eingestellten Entwicklernutzlastmethoden wurden entfernt.
  • Eingestellte Methoden BillingFlowParams.setAccountId() entfernt und BillingFlowParams.setDeveloperId().
  • Eingestellte Methoden BillingFlowParams.setOldSkus(String oldSku) entfernt und BillingFlowParams.addOldSku(String oldSku).
  • Anmerkungen zur Null-Zulässigkeit hinzugefügt.

Fehlerkorrekturen

  • SkuDetails.getIntroductoryPriceCycles() gibt jetzt int statt String zurück.
  • Ein Fehler wurde behoben, durch den der Abrechnungsablauf als zusätzliche Parameter behandelt wurde. auch wenn keine zusätzlichen Parameter festgelegt wurden.

Google Play Billing Library 2.2.1 (20.05.2020)

Version 2.2.1 der Google Play Billing Library ist jetzt verfügbar.

Fehlerkorrekturen

  • Die Standardversion der Java Play Billing Library wurde aktualisiert, die vom Die Kotlin-Erweiterung hängt davon ab.

Google Play Billing Library 2.2.0 und Unity-Unterstützung (23.03.2020)

Version 2.2.0 von Google Play Billing bietet Funktionen, stellen Entwickler sicher, dass Käufe den richtigen Nutzern zugeordnet werden. Diese Änderungen die Entwicklung benutzerdefinierter Lösungen auf Basis der Entwicklernutzlast zu ersparen. Als wurde im Rahmen dieses Updates die Entwicklernutzlastfunktion eingestellt, und wird in einer zukünftigen Version entfernt. Weitere Informationen unter empfohlene Alternativen finden Sie unter Entwicklernutzlast.

Google Play Billing Billing Library 2 für Unity

Zusätzlich zu den aktuellen Java- und Kotlin-Versionen von Google Play Billing Library 2 haben wir eine Version der Bibliothek zur Verwendung mit Unity veröffentlicht. Spiel Entwickler, die die Unity In-App Purchase API verwenden, alle Funktionen von Google Play Billing Library 2 nutzen, nachfolgende Upgrades auf zukünftige Versionen der Google Play Billing Library einfacher zu machen.

Weitere Informationen finden Sie unter Google Play Billing mit Unity verwenden

Zusammenfassung der Änderungen

Google Play Billing Library 2.1.0 und Kotlin-Erweiterung 2.1.0 (10.12.2019)

Version 2.1.0 der Google Play Billing Library und der neuen Kotlin-Erweiterung sind jetzt verfügbar. Die Kotlin-Erweiterung der Play Billing Library bietet idiomatische API-Alternativen für die Nutzung von Kotlin mit besserer Nullsicherheit und Koroutinen. Codebeispiele finden Sie unter Google Play Billing Library verwenden

Diese Version enthält die folgenden Änderungen.

Zusammenfassung der Änderungen

  • In BillingFlowParams: setOldSku(String oldSku) wurde eingestellt und ersetzt durch setOldSku(String oldSku, String purchaseToken), um zu unterscheiden, wann mehrere Konten auf dem Gerät dieselbe Artikelnummer haben.

Google Play Billing Library 2.0.3 (05.08.2019)

Version 2.0.3 der Google Play Billing Library ist jetzt verfügbar.

Fehlerkorrekturen

  • Ein Fehler wurde behoben, bei dem bei querySkuDetailsAsync() gelegentlich Code zurückgegeben wurde. DEVELOPER_ERROR anstatt ein erfolgreiches Ergebnis zurückzugeben.

Google Play Billing Library 2.0.2 (08.07.2019)

Version 2.0.2 der Google Play Billing Library ist jetzt verfügbar. Dieser Release enthält Aktualisierungen der Referenzdokumentation und ändert die Bibliothek nicht Funktionalität.

Google Play Billing Library 2.0.1 (06.06.2019)

Version 2.0.1 der Google Play Billing Library ist jetzt verfügbar. Diese Version enthält die folgenden Änderungen.

Fehlerkorrekturen

  • Ein Fehler wurde behoben, bei dem Debug-Meldungen in einigen Fällen als null zurückgegeben wurden.
  • Ein mögliches Problem mit einem Speicherleck wurde behoben.

Google Play Billing Library 2.0-Version (07.05.2019)

Version 2.0 der Google Play Billing Library ist jetzt verfügbar. Diese Version enthält die folgenden Änderungen.

Käufe müssen innerhalb von drei Tagen bestätigt werden

Google Play unterstützt den Kauf von Produkten innerhalb deiner App (In-App) oder außerhalb deiner App (out-of-app). Damit Google Play ein einheitliches Einkaufserlebnis zu bieten, unabhängig davon, wo der Nutzer Ihre Produkte kauft müssen Sie alle über Google Play erhaltenen Käufe bestätigen Billing Library so schnell wie möglich nach Erteilung der Berechtigung an den Nutzer. Wenn Sie einen Kauf nicht innerhalb von drei Tagen bestätigen, eine Erstattung erhält und Google Play den Kauf widerruft. Für ausstehende Transaktionen (neu in Version 2.0), das dreitägige Zeitfenster beginnt, wenn der Kauf in den Status PURCHASED verschoben wurde und nicht anwendbar ist solange der Kauf den Status PENDING hat.

Bei Abos musst du jeden Kauf bestätigen, der zu einem neuen Kauf führt Token. Das bedeutet, dass alle ersten Käufe, Tarifänderungen und Neuregistrierungen müssen bestätigt werden. Nachfolgende Verlängerungen müssen jedoch nicht bestätigt werden. Bis ob ein Kauf bestätigt werden muss, beim Kauf ein.

Das Purchase-Objekt enthält jetzt ein isAcknowledged() , die anzeigt, ob ein Kauf bestätigt wurde. Darüber hinaus enthält der Die Google Play Developer API enthält boolesche Bestätigungswerte für beide Purchases.products und Purchases.subscriptions. Bevor Sie einen Kauf bestätigen, nutzen Sie diese Methoden, um festzustellen, wurde der Kauf bereits bestätigt.

Sie können einen Kauf mit einer der folgenden Methoden bestätigen:

  • Verwende für Verbrauchsgüter die consumeAsync() aus der Client API.
  • Für nicht konsumierte Produkte verwenden Sie die acknowledgePurchase() aus der Client-API.
  • In der Server API ist auch eine neue acknowledge()-Methode verfügbar.

BillingFlowParams.setSku() wurde entfernt.

Die zuvor eingestellte Methode BillingFlowParams#setSku() wurde entfernt in dieser Version. Bevor Sie Produkte in einem Kaufvorgang rendern, müssen Sie nun BillingClient.querySkuDetailsAsync(), übergeben Sie das Ergebnis SkuDetails-Objekt für BillingFlowParams.Builder.setSkuDetails()

Codebeispiele finden Sie unter Google Play Billing Library verwenden

Entwicklernutzlast wird unterstützt

Version 2.0 der Google Play Billing Library bietet Unterstützung für Entwickler Nutzlast – beliebige Strings, die an Käufe angehängt werden können. Sie können Einen Entwicklernutzlastparameter an einen Kauf anhängen, aber nur, wenn der Kauf anerkannt oder konsumiert werden. Dies unterscheidet sich von der Entwicklernutzlast in AIDL, bei der der payload kann beim Starten des Kaufvorgangs angegeben werden. Weil Käufe jetzt von außerhalb deiner App initiiert werden kann, wird diese Änderung sorgt dafür, dass Sie Ihren Käufen immer eine Nutzlast hinzufügen können.

Für den Zugriff auf die Nutzlast in der neuen Bibliothek enthalten Purchase-Objekte jetzt einen getDeveloperPayload() .

Einheitliche Angebote

Wenn du eine vergünstigte Artikelnummer anbietest, gibt Google Play jetzt den ursprünglichen Preis von damit Sie Nutzern zeigen können, dass sie einen Rabatt erhalten.

SkuDetails enthält zwei neue Methoden zum Abrufen des ursprünglichen SKU-Preises:

Ausstehende Transaktionen

Ab Version 2.0 der Google Play Billing Library müssen Sie Folgendes unterstützen: Käufe, bei denen vor der Erteilung der Berechtigung zusätzliche Maßnahmen erforderlich sind. Für Beispiel: Ein Nutzer kauft Ihr In-App-Produkt in einem Geschäft. mit Bargeld. Das bedeutet, dass die Transaktion außerhalb Ihrer App abgeschlossen wird. In In diesem Szenario solltest du die Berechtigung erst gewähren, wenn der Nutzer der Transaktion.

Um ausstehende Käufe zu aktivieren, rufen Sie enablePendingPurchases() während der Initialisierung der App.

Purchase.getPurchaseState() verwenden um zu ermitteln, ob der Kaufstatus PURCHASED oder PENDING ist. Beachten Sie, dass Sie sollten die Berechtigung nur gewähren, wenn der Status PURCHASED ist. Sie sollten So suchen Sie nach Statusupdates für Purchase:

  1. Rufen Sie beim Starten der App BillingClient.queryPurchases() , um die Liste der nicht verbrauchten Produkte abzurufen, die mit dem Nutzer verknüpft sind.
  2. Rufen Sie Purchase.getPurchaseState() für jedes zurückgegebene Purchase-Objekt auf.
  3. onPurchasesUpdated() implementieren , um auf Änderungen an Purchase-Objekten zu reagieren.

Darüber hinaus enthält die Google Play Developer API den Status PENDING. für Purchases.products. Ausstehende Transaktionen werden nicht unterstützt für Abos.

Mit dieser Version wird außerdem ein neuer Benachrichtigungstyp für Entwickler in Echtzeit eingeführt. OneTimeProductNotification Dieser Benachrichtigungstyp enthält eine einzelne Nachricht dessen Wert entweder ONE_TIME_PRODUCT_PURCHASED oder ONE_TIME_PRODUCT_CANCELED. Diese Art von Benachrichtigung wird nur bei Käufen gesendet in Verbindung mit verspäteten Zahlungsmitteln wie Bargeld.

Bestätigen Sie ausstehende Käufe nur, wenn das Kaufstatus ist PURCHASED und nicht PENDING.

API-Änderungen

Version 2.0 der Google Play Billing Library enthält verschiedene API-Änderungen an neue Funktionen zu unterstützen und bestehende Funktionen klarzustellen.

VerbrauchAsync

consumeAsync() nimmt jetzt eine ConsumeParams-Objekt statt purchaseToken. ConsumeParams enthält die purchaseToken als sowie eine optionale Entwicklernutzlast.

Die vorherige Version von consumeAsync() wurde in diesem Release entfernt.

queryKaufverlaufAsync

Um Verwirrung zu vermeiden, queryPurchaseHistoryAsync() gibt jetzt eine PurchaseHistoryRecord anstelle eines Purchase-Objekts. Das PurchaseHistoryRecord-Objekt ist der Wie ein Purchase-Objekt, mit dem Unterschied, dass es nur die von queryPurchaseHistoryAsync() und enthält nicht autoRenewing, orderId und packageName. Bei der Einstellung zurückgegebene Daten: queryPurchaseHistoryAsync() gibt dieselben Daten zurück wie vorher.

BillingResult-Rückgabewerte

APIs, die zuvor einen BillingResponse-Ganzzahlwert zurückgegeben haben, geben jetzt einen BillingResult -Objekt enthält. BillingResult enthält die Ganzzahl BillingResponse sowie einen Debug-String, mit dem Sie Fehler diagnostizieren können. Im Debug-String wird „en-US“ verwendet. Sprache und ist nicht für den Endnutzer gedacht.

Fehlerkorrekturen

Google Play Billing Library 1.2.2 (07.03.2019)

Version 1.2.2 der Google Play Billing Library ist jetzt verfügbar. Diese Version enthält die folgenden Änderungen.

Fehlerkorrekturen

  • Ein Threading-Problem in v1.2.1 wurde behoben. Anrufe im Hintergrund werden nicht mehr blockiert im Hauptthread.

Sonstige Änderungen

  • Obwohl die Verwendung des Hauptthreads weiterhin empfohlen wird, können Sie jetzt instanziieren die Google Play Billing Library aus einem Hintergrundthread zu öffnen.
  • Die Instanziierung wurde vollständig in den Hintergrundthread migriert, um zu ANR-Fehlern führen.

Play Billing Library 1.2.1 (04.03.2019)

Version 1.2.1 der Google Play Billing Library ist jetzt verfügbar. Diese Version enthält die folgenden Änderungen.

Größere Änderungen

Sonstige Änderungen

  • Öffentliche Konstruktoren für PurchasesResult und SkuDetailsResult wurden hinzugefügt, um einfacher zu testen.
  • SkuDetails-Objekte können die neue Methode getOriginalJson() verwenden.
  • Alle AIDL-Dienstaufrufe werden jetzt von Hintergrundthreads verarbeitet.

Fehlerkorrekturen

  • Null-Callback-Listener werden nicht mehr an öffentliche APIs übergeben.

Google Play Billing Library 1.2 (18.10.2018)

Version 1.2 der Google Play Billing Library ist jetzt verfügbar. Diese Version enthält die folgenden Änderungen.

Zusammenfassung der Änderungen

  • Die Google Play Billing Library ist jetzt im Rahmen der Lizenzvereinbarung für Android Software Development Kit
  • Die launchPriceChangeConfirmationFlow API wurde hinzugefügt, die Nutzer dazu auffordert, eine ausstehende Änderung eines Abopreises prüfen.
  • Unterstützung für den neuen Zuteilungsmodus DEFERRED bei Upgrades oder das Abo eines Nutzers herabzustufen.
  • In der Klasse BillingFlowParams wurde setSku() durch setSkuDetails() ersetzt.
  • Kleinere Fehlerkorrekturen und Codeoptimierungen.

Bestätigung der Preisänderung

Du kannst jetzt den Preis eines Abos in der Google Play Console und Aufforderung ändern können Nutzer den neuen Preis prüfen und akzeptieren, wenn sie deine App öffnen.

Erstellen Sie zur Verwendung dieser API ein PriceChangeFlowParams-Objekt mithilfe der Methode skuDetails des Aboprodukts. Rufen Sie dann launchPriceChangeConfirmationFlow() Implementieren Sie die PriceChangeConfirmationListener, um das Ergebnis zu verarbeiten, wenn sich der Preis ändert der Bestätigungsvorgang abgeschlossen ist, wie im folgenden Code-Snippet gezeigt:

Kotlin

val priceChangeFlowParams = PriceChangeFlowParams.newBuilder()
    .setSkuDetails(skuDetailsOfThePriceChangedSubscription)
    .build()

billingClient.launchPriceChangeConfirmationFlow(activity,
        priceChangeFlowParams,
        object : PriceChangeConfirmationListener() {
            override fun onPriceChangeConfirmationResult(responseCode: Int) {
                // Handle the result.
            }
        })

Java

PriceChangeFlowParams priceChangeFlowParams =
        PriceChangeFlowParams.newBuilder()
    .setSkuDetails(skuDetailsOfThePriceChangedSubscription)
    .build();

billingClient.launchPriceChangeConfirmationFlow(activity,
        priceChangeFlowParams,
        new PriceChangeConfirmationListener() {
            @Override
            public void onPriceChangeConfirmationResult(int responseCode) {
                // Handle the result.
            }
        });

Bei der Bestätigung der Preisänderung wird ein Dialogfeld mit den neuen Preisen angezeigt. und Nutzer aufgefordert, dem neuen Preis zuzustimmen. Dieser Ablauf gibt eine Antwortcode vom Typ BillingClient.BillingResponse

Neuer Zuteilungsmodus

Beim Upgrade oder Downgrade des Abos eines Nutzers können Sie einen neuen Anteil verwenden. Modus, DEFERRED. In diesem Modus wird das Abo des Nutzers beim nächsten Mal aktualisiert. automatisch verlängert wird. Weitere Informationen zum Festlegen dieses Zuteilungsmodus finden Sie unter Anteil festlegen. Modus an.

Neue Methode zum Festlegen von SKU-Details

In der Klasse BillingFlowParams wurde die Methode setSku() eingestellt. Diese Änderung dient der Optimierung des Google Play Billing-Ablaufs.

Beim Erstellen einer neuen Instanz von BillingFlowParams in der In-App-Abrechnung verwenden, empfehlen wir, stattdessen direkt mit dem JSON-Objekt zu arbeiten. setSkuDetails(), wie im folgenden Code-Snippet gezeigt:

In der Builder-Klasse BillingFlowParams wurde die Methode setSku() eingestellt. Verwenden Sie stattdessen die Methode setSkuDetails(), wie im Folgenden gezeigt. Code-Snippet einzufügen. Das an das setSkuDetails()-Objekt übergebene Objekt stammt aus dem querySkuDetailsAsync() .

Kotlin

private lateinit var mBillingClient: BillingClient
private val mSkuDetailsMap = HashMap<String, SkuDetails>()

private fun querySkuDetails() {
    val skuDetailsParamsBuilder = SkuDetailsParams.newBuilder()
    mBillingClient.querySkuDetailsAsync(skuDetailsParamsBuilder.build()
    ) { responseCode, skuDetailsList ->
        if (responseCode == 0) {
            for (skuDetails in skuDetailsList) {
                mSkuDetailsMap[skuDetails.sku] = skuDetails
            }
        }
    }
}

private fun startPurchase(skuId: String) {
    val billingFlowParams = BillingFlowParams.newBuilder()
    .setSkuDetails(mSkuDetailsMap[skuId])
    .build()
}

Java

private BillingClient mBillingClient;
private Map<String, SkuDetails> mSkuDetailsMap = new HashMap<>();

private void querySkuDetails() {
    SkuDetailsParams.Builder skuDetailsParamsBuilder
            = SkuDetailsParams.newBuilder();
    mBillingClient.querySkuDetailsAsync(skuDetailsParamsBuilder.build(),
            new SkuDetailsResponseListener() {
                @Override
                public void onSkuDetailsResponse(int responseCode,
                        List<SkuDetails> skuDetailsList) {
                    if (responseCode == 0) {
                        for (SkuDetails skuDetails : skuDetailsList) {
                            mSkuDetailsMap.put(skuDetails.getSku(), skuDetails);
                        }
                    }
                }
            });
}

private void startPurchase(String skuId) {
    BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
            .setSkuDetails(mSkuDetailsMap.get(skuId))
            .build();
}

Play Billing Library 1.1 (07.05.2018)

Version 1.1 der Google Play Billing Library ist jetzt verfügbar. Diese Version enthält die folgenden Änderungen.

Zusammenfassung der Änderungen

  • Unterstützung zum Angeben eines Zuteilungsmodus in BillingFlowParams wurde hinzugefügt wenn Sie für ein bestehendes Abo ein Upgrade/Downgrade ausführen.
  • Das boolesche Flag replaceSkusProration in BillingFlowParams wird nicht mehr unterstützt. Verwende stattdessen replaceSkusProrationMode.
  • launchBillingFlow() löst jetzt einen Callback für fehlgeschlagene Antworten aus.

Verhaltensänderungen

Version 1.1 der Google Play Billing Library enthält das folgende Verhalten Änderungen.

Entwickler können replaceSkusProrationMode in der Klasse BillingFlowParams festlegen

Ein ProrationMode enthält weitere Details zur Art der Zuteilung beim Upgrade oder Downgrade eines das Abo des Nutzers.

Kotlin

BillingFlowParams.newBuilder()
    .setSku(skuId)
    .setType(billingType)
    .setOldSku(oldSku)
    .setReplaceSkusProrationMode(replaceSkusProrationMode)
    .build()

Java

BillingFlowParams.newBuilder()
    .setSku(skuId)
    .setType(billingType)
    .setOldSku(oldSku)
    .setReplaceSkusProrationMode(replaceSkusProrationMode)
    .build();

Derzeit unterstützt Google Play die folgenden Zuteilungsmodi:

IMMEDIATE_WITH_TIME_PRORATION Der Ersatz wird sofort wirksam und die neue Ablaufzeit wird anteilig berechnet und dem Nutzer gutgeschrieben oder in Rechnung gestellt wird. Dies ist das aktuelle Standardverhalten.
IMMEDIATE_AND_CHARGE_PRORATED_PRICE Der Austausch wird sofort wirksam und der Abrechnungszeitraum bleibt unverändert. Der Preis für wird der verbleibende Zeitraum berechnet.

Hinweis: Diese Option ist nur für Abo-Upgrades verfügbar.

IMMEDIATE_WITHOUT_PRORATION Der Ersatz wird sofort wirksam und der neue Preis wird bei der nächsten Wiederholung in Rechnung gestellt . Der Abrechnungszeitraum bleibt unverändert.

replaceSkusProration wird im Kurs BillingFlowParams nicht mehr unterstützt

Früher konnten Entwickler ein boolesches Flag setzen, um einen anteiligen Betrag für ein Abo in Rechnung zu stellen. Upgradeanfrage gestellt werden. In Anbetracht der Tatsache, dass wir ProrationMode unterstützen, Zuteilungsanweisung wird dieses boolesche Flag nicht mehr unterstützt.

launchBillingFlow() löst jetzt einen Callback für fehlgeschlagene Antworten aus

Die Billing Library löst immer die PurhcasesUpdatedListener aus Callback und gibt BillingResponse zurück. asynchron programmiert. Der synchrone Rückgabewert von BillingResponse beibehalten.

Fehlerkorrekturen

  • Wird in asynchronen Methoden ordnungsgemäß früh beendet, wenn der Dienst getrennt wird.
  • Builder param-Objekte ändern erstellte Objekte nicht mehr.
  • Problem 68087141: launchBillingFlow() lösen jetzt einen Callback für fehlgeschlagene Antworten aus.

Google Play Billing Library 1.0-Release (19.09.2017, Ankündigung)

Version 1.0 der Google Play Billing Library ist jetzt verfügbar. Diese Version enthält die folgenden Änderungen.

Wichtige Änderungen

  • Abrechnungsberechtigung ist im Manifest der Bibliothek eingebettet. Es ist nicht notwendig, den Parameter com.android.vending.BILLING-Berechtigung im Android-Manifest nicht mehr verfügbar.
  • Neuer Builder zu BillingClient.Builder hinzugefügt .
  • Einführung des Builder-Musters für SkuDetailsParams Klasse, die für Methoden zum Abfragen von Artikelnummern verwendet wird.
  • Mehrere API-Methoden wurden aus Konsistenzgründen aktualisiert (dieselben Namen und Reihenfolge der Rückgabeargumente).

Verhaltensänderungen

Version 1.0 der Google Play Billing Library enthält das folgende Verhalten Änderungen.

Klasse "BillingClient.Builder"

BillingClient.Builder wird jetzt über das Muster newBuilder initialisiert:

Kotlin

billingClient = BillingClient.newBuilder(context).setListener(this).build()

Java

billingClient = BillingClient.newBuilder(context).setListener(this).build();

launchBillingFlow-Methode wird jetzt mithilfe einer BillingFlowParams-Klasse aufgerufen.

Um den Abrechnungsablauf für einen Kauf oder ein Abo zu initiieren, launchBillingFlow() erhält eine BillingFlowParams Instanz, die mit für die Anfrage spezifischen Parametern initialisiert wurde:

Kotlin

BillingFlowParams.newBuilder().setSku(skuId)
        .setType(billingType)
        .setOldSku(oldSku)
        .build()

// Then, use the BillingFlowParams to start the purchase flow
val responseCode = billingClient.launchBillingFlow(builder.build())

Java

BillingFlowParams.newBuilder().setSku(skuId)
                              .setType(billingType)
                              .setOldSku(oldSku)
                              .build();

// Then, use the BillingFlowParams to start the purchase flow
int responseCode = billingClient.launchBillingFlow(builder.build());

Neue Abfragemöglichkeit für verfügbare Produkte

Argumente für queryPurchaseHistoryAsync() und querySkuDetailsAsync() Methoden wurden in ein Builder-Muster eingebunden:

Kotlin

val params = SkuDetailsParams.newBuilder()
params.setSkusList(skuList)
        .setType(itemType)
billingClient.querySkuDetailsAsync(params.build(), object : SkuDetailsResponseListener() {
    ...
})

Java

SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
params.setSkusList(skuList)
        .setType(itemType);
billingClient.querySkuDetailsAsync(params.build(), new SkuDetailsResponseListener() {...})

Das Ergebnis wird nun über Ergebniscode und eine Liste mit SkuDetails -Objekten anstelle der vorherigen Wrapper-Klasse zu verwenden, um die Einheitlichkeit und Einheitlichkeit in unserem API zu gewährleisten:

Kotlin

fun onSkuDetailsResponse(@BillingResponse responseCode: Int, skuDetailsList: List<SkuDetails>)

Java

public void onSkuDetailsResponse(@BillingResponse int responseCode, List<SkuDetails> skuDetailsList)

Reihenfolge der Parameter in der Methode „onConsumeResponse()“ geändert

Die Reihenfolge der Argumente für onConsumeResponse aus ConsumeResponseListener für die API einheitlich:

Kotlin

fun onConsumeResponse(@BillingResponse responseCode: Int, outToken: String)

Java

public void onConsumeResponse(@BillingResponse int responseCode, String outToken)

Nicht verpacktes „purchaseResult“-Objekt

PurchaseResult wurde entpackt, um in unserer API einheitlich zu sein:

Kotlin

fun onPurchaseHistoryResponse(@BillingResponse responseCode: Int, purchasesList: List<Purchase>)

Java

void onPurchaseHistoryResponse(@BillingResponse int responseCode, List<Purchase> purchasesList)

Fehlerkorrekturen

Entwicklervorschau 1 (12.06.2017, Ankündigung)

Entwicklervorschau zur Vereinfachung des Entwicklungsprozesses bei der Abrechnung Dies ermöglicht es Entwicklern, sich auf die Implementierung einer Logik für die Android-App zu konzentrieren, z. B. Anwendungsarchitektur und Navigationsstruktur.

Die Bibliothek enthält mehrere praktische Klassen und Funktionen für die Integration Ihres Android-Apps mit der Google Play Billing API Die Bibliothek bietet auch eine Abstraktionsebene den Dienst Android Interface Definition Language (AIDL), mit dem Entwickler Schnittstelle zwischen der App und der Google Play Billing API.