In diesem Leitfaden wird beschrieben, wie Sie die APIs nur integrieren, um eine alternative Abrechnung anzubieten (d.h. ohne Auswahlmöglichkeit des Nutzers) in geeigneten Apps verfügbar. Weitere Informationen zu diesen Programmen einschließlich Eignungsvoraussetzungen und geografischem Geltungsbereich, siehe Alternative Abrechnung.
Play Billing Library einrichten
Füge deiner Android-App die Play Billing Library-Abhängigkeit hinzu. So verwenden Sie die APIs zur alternativen Abrechnung müssen Sie Version 6.1 oder höher verwenden.
Mit Google Play verbinden
Die ersten Schritte des Integrationsprozesses sind dieselben wie im im Integrationsleitfaden für Google Play Billing beschrieben. BillingClient initialisieren:
- Sie müssen eine neue Methode aufrufen, um anzugeben, dass Ihre App nur eine
alternatives Abrechnungssystem:
enableAlternativeBillingOnly
.
Im folgenden Beispiel sehen Sie, wie ein BillingClient
mit diesen
Änderungen:
Kotlin
var billingClient = BillingClient.newBuilder(context)
.enableAlternativeBillingOnly()
.build()
Java
private BillingClient billingClient = BillingClient.newBuilder(context)
.enableAlternativeBillingOnly()
.build();
Nach dem Initialisieren des BillingClient
müssen Sie eine Verbindung mit
Google Play, wie im Integrationsleitfaden beschrieben.
Verfügbarkeit prüfen
Deine App sollte durch einen Anruf bestätigen, dass die alternative Abrechnung nur verfügbar ist
isAlternativeBillingOnlyAvailableAsync
Diese API gibt BillingResponseCode.OK zurück, wenn nur die alternative Abrechnung verfügbar. Unter Umgang mit Antworten finden Sie weitere Informationen dazu, wie Ihre App auf andere Antwortcodes antworten.
Kotlin
billingClient.isAlternativeBillingOnlyAvailableAsync(object:
AlternativeBillingOnlyAvailabilityListener {
override fun onAlternativeBillingOnlyAvailabilityResponse(
billingResult: BillingResult) {
if (billingResult.responseCode != BillingResponseCode.OK) {
// Handle failures such as retrying due to network errors,
// handling alternative billing only being unavailable, etc.
return
}
// Alternative billing only is available. Continue with steps in
// the guide.
}
});
Java
billingClient.isAlternativeBillingOnlyAvailable(
new AlternativeBillingOnlyAvailabilityListener() {
@Override
public void onAlternativeBillingOnlyAvailabilityResponse(
BillingResult billingResult) {
if (billingResult.getResponseCode() != BillingResponseCode.OK) {
// Handle failures such as retrying due to network errors,
// handling alternative billing only being unavailable,
// etc.
return;
}
// Alternative billing only is available. Continue with steps in
// the guide.
}
});
Informationsdialogfeld für Nutzer
Damit die alternative Abrechnung nur integriert werden kann, muss Ihre zulässige App eine
Bildschirm mit Informationen, auf dem Nutzer darüber informiert werden, dass die Abrechnung nicht verwaltet wird
von Google Play. Der Informationsbildschirm muss durch Aufrufen der Methode
showAlternativeBillingOnlyInformationDialog
API vor dem Start des
alternativen Abrechnungsfluss zu erstellen. Wenn der Nutzer die
wird das Dialogfeld bei Verwendung dieser API in der Regel nicht angezeigt.
noch einmal. Es kann vorkommen, dass das Dialogfeld einem Nutzer in bestimmten Situationen noch einmal angezeigt wird.
z. B. wenn der Nutzer
den Cache auf seinem Gerät leert.
Kotlin
// An activity reference from which the alternative billing only information
// dialog will be launched.
val activity : Activity = ...;
val listener : AlternativeBillingOnlyInformationDialogListener =
AlternativeBillingOnlyInformationDialogListener {
override fun onAlternativeBillingOnlyInformationDialogResponse(
billingResult: BillingResult) {
// check billingResult
}
}
val billingResult =
billingClient.showAlternativeBillingOnlyInformationDialog(activity,
listener)
Java
// An activity reference from which the alternative billing only information
// dialog will be launched.
Activity activity = ...;
AlternativeBillingOnlyInformationDialogListener listener =
new AlternativeBillingOnlyInformationDialogListener() {
@Override
public void onAlternativeBillingOnlyInformationDialogResponse(
BillingResult billingResult) {
// check billingResult
}
};
BillingResult billingResult =
billingClient.showAlternativeBillingOnlyInformationDialog(activity,
listener);
Wenn diese Methode BillingResponseCode.OK zurückgibt, können Sie mit Ihrer App fortfahren mit der Transaktion. Im Fall von BillingResponseCode.USER_CANCELED sollte Ihre App showAlternativeBillingOnlyInformationDialog aufrufen, um die noch einmal an den Nutzer. Informationen zu anderen Antwortcodes findest du unter Antwortverarbeitung. .
Transaktionen bei Google Play melden
Alle Transaktionen, die über ein alternatives Abrechnungssystem ausgeführt werden, müssen gemeldet werden
an Google Play senden, indem Sie die Google Play Developer API von Ihrem Back-End innerhalb
24 Stunden unter Angabe eines externalTransactionToken
, das mithilfe der Methode
API beschrieben. Für jede Methode sollte ein neues
für einen einmaligen Kauf, jedes neue Abonnement und für alle Upgrades/Downgrades auf eine
eines bestehenden Abos. Um zu erfahren, wie Sie eine Transaktion melden,
externalTransactionToken
wird im Leitfaden zur Back-End-Integration abgerufen.
Kotlin
billingClient.createAlternativeBillingOnlyReportingDetailsAsync(object:
AlternativeBillingOnlyReportingDetailsListener {
override fun onAlternativeBillingOnlyTokenResponse(
billingResult: BillingResult,
alternativeBillingOnlyReportingDetails:
AlternativeBillingOnlyReportingDetails?) {
if (billingResult.responseCode != BillingResponseCode.OK) {
// Handle failures such as retrying due to network errors.
return
}
val externalTransactionToken =
alternativeBillingOnlyReportingDetails?
.externalTransactionToken
// Send transaction token to backend and report to Google Play.
}
});
Java
billingClient.createAlternativeBillingOnlyReportingDetailsAsync(
new AlternativeBillingOnlyReportingDetailsListener() {
@Override
public void onAlternativeBillingOnlyTokenResponse(
BillingResult billingResult,
@Nullable AlternativeBillingOnlyReportingDetails
alternativeBillingOnlyReportingDetails) {
if (billingResult.getResponseCode() != BillingResponseCode.OK) {
// Handle failures such as retrying due to network errors.
return;
}
String transactionToken =
alternativeBillingOnlyReportingDetails
.getExternalTransactionToken();
// Send transaction token to backend and report to Google Play.
}
});
Umgang mit Antworten
Die obigen Methoden isAlternativeBillingOnlyAvailableAsync(),
showAlternativeBillingOnlyInformationDialog()
und
createAlternativeBillingOnlyReportingDetailsAsync()
kehrt evtl. zurück
non-BillingResponseCode.OK im Fall von Fehlern. Die empfohlenen
wie die Fehler behandelt werden:
ERROR
: Dies ist ein interner Fehler. Fahren Sie nicht mit der Transaktion fort. Versuchen Sie es noch einmal mit einem Anruf.showAlternativeBillingOnlyInformationDialog()
, um die Informationen aufzurufen wenn der Nutzer das nächste Mal versucht, etwas zu kaufen.FEATURE_NOT_SUPPORTED
: Die APIs zur alternativen Abrechnung werden nicht unterstützt von im Play Store auf dem aktuellen Gerät. Fahren Sie nicht mit der Transaktion fort.USER_CANCELED
: Fahren Sie nicht mit der Transaktion fort. AnrufshowAlternativeBillingOnlyInformationDialog()
noch einmal, um die Informationsdialogfeld angezeigt, wenn der Nutzer das nächste Mal versucht, kaufen.BILLING_UNAVAILABLE
: Für die Transaktion kann keine Alternative verwendet werden. Abrechnung nur zur Abrechnung und sollte daher im Rahmen dieses Programms nicht fortgesetzt werden. Dies ist Entweder befindet sich der Nutzer nicht in einem Land, in dem die Teilnahme am Programm möglich ist, oder Ihr Konto wurde nicht erfolgreich für das Programm angemeldet. Wenn es sich überprüfen Sie in der Play Console Ihren Registrierungsstatus.DEVELOPER_ERROR
: Bei der Anfrage ist ein Fehler aufgetreten. Debug-Meldung verwenden um den Fehler zu identifizieren und zu beheben, bevor Sie fortfahren.NETWORK_ERROR, SERVICE_DISCONNECTED, SERVICE_UNAVAILABLE
: Dies sind vorübergehende Fehler, die wiederholt werden sollten. Im Fall vonSERVICE_DISCONNECTED
stellt zuvor wieder eine Verbindung mit Google Play her wird wiederholt.
Alternative Abrechnung testen
Lizenztester sollten Ihre Integration für die alternative Abrechnung testen. Ich Transaktionen, die vom Lizenztester initiiert wurden, werden nicht in Rechnung gestellt. Konten. Weitere Informationen finden Sie unter In-App-Abrechnung mit App-Lizenzierung testen. Informationen zum Konfigurieren von Lizenztestern.
Nächste Schritte
Nach der In-App-Integration können Sie Ihre Back-End.