Die Google Play Developer API enthält jetzt zusätzliche Funktionen zum Melden von Transaktionen aus einer alternativen Abrechnung oder System für externe Angebote. In diesem Leitfaden wird beschrieben, wie Sie Abrechnung oder Transaktionen für externe Angebote.
Es gibt einige Komponenten, die für die Verarbeitung Ihrer In-App- Käufe aus deinem Backend. Um sie zu erstellen, müssen Sie Ihr Backend einrichten wie unter Google Play Developer API konfigurieren angegeben. Für alle Entwickler-Backend-Funktionen, die nicht speziell für die alternative Abrechnung gelten oder APIs für externe Angebote finden Sie in der Anleitung Es gilt die Dokumentation zum Google Play-Abrechnungssystem.
Neue externe Transaktionen an Google Play melden
In Externaltransactions APIs
einbinden
um Transaktionen zu melden, die außerhalb des Abrechnungssystems von Google Play erfolgen,
unterstützten Ländern, einschließlich Transaktionen im Wert von 0 $ aus dem kostenlosen Testzeitraum
Käufe. Transaktionen über alternative Abrechnungssysteme oder Systeme für externe Angebote
sollten nur für zulässige Nutzerländer gestartet und gemeldet werden.
gemäß der alternativen Abrechnung oder
externe Angebote. Andernfalls erfolgt der API-Aufruf
abgelehnt. Dies gilt für alle Transaktionen, einschließlich neuer Käufe, Verlängerungen
wie Upgrades, Downgrades usw.
Externe Transaktionsberichte
Sie sollten Externaltransactions API
aufrufen, um eine externe Transaktion zu melden
nachdem die Zahlung durch die alternative Abrechnung autorisiert wurde oder
System für externe Angebote. Dies gilt für alle Transaktionen, einschließlich der
Gebühren, Verlängerungen, Erstattungen und mehr. Alle Transaktionen müssen
innerhalb von 24 Stunden nach erfolgter Transaktion gemeldet.
Jede externe Transaktion wird mit einer externen Transaktions-ID gemeldet. Für für wiederkehrende Käufe (z. B. Abos mit automatischer Verlängerung) müssen Sie den Externe Transaktions-ID, die der ersten Transaktion in der wiederkehrenden Transaktion zugeordnet ist „purchase“ als Parameter für alle nachfolgenden Transaktionen, einschließlich Erstattungen. Dieses die Reihe der Transaktionen für diesen Kauf erfasst. Sie senden eine neue externe Transaktions-ID für Käufe, bei denen sich das Produkt ändert, z. B. bei einem Upgrade oder einer oder ein Downgrade ausgeführt wird, oder wenn die wiederkehrende Transaktion storniert oder abgelaufen ist und die gleiche Produkt später noch einmal gekauft wird. Sie dürfen keine personenidentifizierbaren Informationen Informationen, proprietäre oder vertrauliche Informationen im Rahmen Transaktions-ID.
Neuen Kauf melden
Jedes Mal, wenn ein neuer Kauf in der alternativen Abrechnung erfolgreich ist
oder das System eines externen Angebots ist, ist ein Aufruf der Externaltransactions
API erforderlich
erforderlich. Für diese neuen Käufe müssen Sie eine eindeutige
externalTransactionId
, die mit dem Kauf in Ihrem Backend als Abfrage verknüpft sind
. Dieses Feld (externalTransactionId
) kann nicht im selben App-Element wiederverwendet werden
Paket-ID.
externalTransactionToken
, die die App über das
UserChoiceBillingListener
, AlternativeBillingOnlyReportingDetailsListener
,
oder ExternalOfferReportingDetailsListener
-Callbacks ist ebenfalls im Rahmen von
für einmalige Käufe und Ersttransaktionen in einem
wiederkehrender Kauf (z. B. ein Abonnement). In beiden Fällen wird dies als
eine erste Transaktion. Nach der ersten Transaktion
externalTransactionToken
ist nicht mehr erforderlich. Sie melden dies später.
(z. B. Aboverlängerungen), indem Sie eine neue eindeutige
externalTransactionId
. Weitere Informationen finden Sie unter Folgetransaktionen für einen Kauf melden.
finden Sie weitere Informationen dazu, wie Sie nachfolgende Transaktionen melden können.
Beispiel:
- Ein Entwickler konfiguriert und aktiviert eine alternative Abrechnung in seiner App.
- Nutzer 1 befindet sich in Südkorea, einem unterstützten Land, und möchte das Produkt kaufen
product1
für 12.634,10 KRW/Monat mit einem einmonatigen kostenlosen Testzeitraum. - Die App startet den Kaufvorgang mit der
ProductDetails
fürproduct1
und das vom Nutzer ausgewählte Angebot. - Nutzer 1 wählt das alternative Abrechnungssystem des Entwicklers aus.
UserChoiceBillingListener
empfängt den Wertmy_token
alsexternalTransactionToken
- Der Entwickler sendet dann die entsprechenden Informationen an sein Backend.
(Wert:
externalTransactionToken
und Produkte werden gekauft). Dann haben sie Kaufvorgang fürproduct1
im alternativen Abrechnungssystem starten Dieser Transaktion wird auf Entwicklerseite eine eindeutige Transaktions-ID zugewiesen das für die Meldung an Google Play verwendet wird: 123-456-789. Die Transaktions-ID ist erforderlich, auch wenn der Nutzer eine kostenlose Testversion erhält. - Nachdem die Kauftransaktion in der alternativen Abrechnung erfolgt ist meldet der Entwickler die Transaktion Google Play mit dem Zuerst wird eine Transaktion in Höhe von 0 $ angezeigt. weil der Nutzer einen Monat kostenlos erhält.
POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=123-456-789
Body
{
"originalPreTaxAmount" : {
"priceMicros": "0",
"currency": "KRW"
},
"originalTaxAmount" : {
"priceMicros": "0",
"currency": "KRW"
},
"transactionTime" : "2022-02-22T12:45:00Z",
"recurringTransaction" : {
"externalTransactionToken": "my_token",
"externalSubscription" {
"subscriptionType": "RECURRING"
}
},
"userTaxAddress" : {
"regionCode": "KR"
}
}
Wenn bei Transaktionen mit einem Nutzer mit Wohnsitz in Indien die Steuern je nach Verwaltungsgebiet (z. B. Bundesland/Kanton) angeben, muss auch Bereich unter userTaxAddress. Eine Liste der vordefinierten Strings finden Sie in der API-Referenzhandbuch für die entsprechenden Verwaltungsgebiete
POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=123-456-789
Body
{
"originalPreTaxAmount" : {
"priceMicros": "0",
"currency": "INR"
},
"originalTaxAmount" : {
"priceMicros": "0",
"currency": "INR"
},
"transactionTime" : "2023-11-01T12:45:00Z",
"recurringTransaction" : {
"externalTransactionToken": "my_token",
"externalSubscription" {
"subscriptionType": "RECURRING"
}
},
"userTaxAddress" : {
# Tax varies in India based on state, so include that information in
# administrativeArea
"regionCode": "IN"
"administrativeArea": "KERALA"
}
}
Nachfolgende Transaktionen für einen Kauf melden
In einigen Fällen sind derselben Zahlung mehrere Nutzerzahlungen zugeordnet.
externe Käufe (z. B. Aboverlängerungen oder Prepaid-Tarife).
Sie können diese nachfolgenden Transaktionen melden, indem Sie dieselbe API in
Externaltransactions
Wie unter Neuen Kauf melden beschrieben,
externalTransactionToken
ist für nachfolgende Transaktionen nicht erforderlich. Stattdessen
wird eine neue eindeutige externalTransactionId
als Suchparameter für jedes
Verlängerungs- oder Aufladetransaktion unter Angabe der ID der ersten Transaktion
im Feld initialExternalTransactionId
ein.
In Bezug auf das vorherige Beispiel:
- Die erste Verlängerung für Nutzer 1 erfolgt im alternativen Abrechnungssystem. Die Initiale Die Transaktions-ID lautete 123-456-789.
- Der Entwickler meldet das Wiederholungsintervall der Transaktion im URL-Suchparameter.
als externe Transaktions-ID für diese neue Transaktion fest. Verweisen Sie dabei
die externe Transaktions-ID der ersten Transaktion im
initialExternalTransactionId
.
Beispielanfrage:
POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=abc-def-ghi
Body
{
"originalPreTaxAmount" : {
"priceMicros": "12634000000",
"currency": "KRW"
},
"originalTaxAmount" : {
"priceMicros": "1263000000",
"currency": "KRW"
},
"transactionTime" : "2022-02-22T12:45:00Z",
"recurringTransaction" : {
"initialExternalTransactionId": "123-456-789",
"externalSubscription" {
"subscriptionType": "RECURRING"
}
},
"userTaxAddress" : {
"regionCode": "KR"
}
}
Upgrade oder Downgrade melden
Um ein Upgrade oder Downgrade zu melden, wenn der Nutzer ein Abo in der
alternatives Abrechnungssystem verwenden Sie denselben Endpunkt und dieselbe Funktion im
Externaltransactions
API, die den externalTransactionToken
sendet, der
der App für die Upgrade- oder Downgrade-Transaktion zur Verfügung gestellt werden. Das funktioniert
ähnlich wie die Meldung eines neuen Kaufs.
Von manuellen Berichten zu Transaktionen im Rahmen der alternativen Abrechnung migrieren
So migrieren Sie aktive Abos, die gestartet wurden, während Sie eine Alternative angeboten haben:
Abrechnung ohne automatische Berichterstellung nutzen, erstellen Sie eine neue
das Feld migratedTransactionProgram
ein, anstatt ein
initialExternalTransactionId
oder externalTransactionToken
. Legen Sie die
transactionTime
bis zu dem Zeitpunkt, an dem sich der Nutzer für jeden aktiven Nutzer angemeldet hat
Abo. Melden Sie anschließend jede weitere Transaktion für diese
wie gewohnt über die APIs.
initialExternalTransactionId
, die oben zum Erstellen der Verlängerungstransaktionen verwendet wurden.
Nach der Migration des Abos müssen Sie keine manuellen Berichte mehr erstellen
die nachfolgenden Transaktionen für das Abo, vorausgesetzt, sie werden
mithilfe der auf dieser Seite beschriebenen automatisierten Methoden gemeldet werden.
Beachten Sie bei der Migration von Abos die Kontingentlimits für sicherstellen, dass die Migration keinen Kontingentausfall verursacht. Wenn viele Abos migriert werden sollen, verteilen Sie sie auf mehrere Tage oder fordern Sie eine Erhöhung an. im Kontingent .
Das Feld migratedTransactionProgram
kann nur bei der Migration aus
manuelle Berichterstellung. Sie wird eingestellt, sobald die manuelle Berichterstellung eingestellt ist
unterstützt.
Beispielanfrage:
# Note that the externalTransactionId specified here will used to report subsequent
# transactions.
POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=abc-def-ghi
Body
{
# Be sure to set the price to 0 for this transaction since it does not reflect
# an actual subscription renewal.
"originalPreTaxAmount" : {
"priceMicros": "0",
"currency": "KRW"
},
"originalTaxAmount" : {
"priceMicros": "0",
"currency": "KRW"
},
# The transaction time should be set to when the user signed up for this
# subscription.
"transactionTime" : "2022-02-22T12:45:00Z",
"recurringTransaction" : {
"migratedTransactionProgram": "USER_CHOICE_BILLING",
"externalSubscription" {
"subscriptionType": "RECURRING"
}
},
"userTaxAddress" : {
"regionCode": "KR"
}
}
Google Play-Partnerprogramme melden
Entwickler, die an Partnerprogrammen wie der
Das Play Media Experience Program muss
transaction_program_code
beim Melden externer Transaktionen. Wenn Sie
ein berechtigter Entwickler ist, wenden Sie sich an Ihren Business Development Manager,
wie dieses Feld festgelegt wird.
Kauferstattungen an Google Play melden
In die Externaltransactions
API einbinden, um Erstattungen zu melden
für Nutzer außerhalb des Abrechnungssystems von Google Play. Damit Play korrekt erkennt,
Transaktion zurückerstattet wurde, müssen Sie den entsprechenden
externalTransactionId
für die zuvor gemeldete Transaktion im Rahmen des
URL-Parameter.
Berücksichtige bei der Meldung von Erstattungen für Abokäufe die
externalTransactionId
der spezifischen Wiederholung des Abos, das
rückerstattet werden.
Beispiel: Angenommen, ein Abo umfasst die folgenden Transaktionen:
- Eine erste Transaktion mit einer externen Transaktions-ID ABC.1234-5678-9012-34567
- Die erste wiederkehrende Transaktion mit einer externen Transaktions-ID ABC.1234-5678-9012-34567..0
- Die zweite wiederkehrende Transaktion mit einer externen Transaktions-ID ABC.1234-5678-9012-34567..1
Wenn du eine Erstattung für alle Transaktionen für das Abo melden möchtest, musst du drei separate Erstattungsanträge: einen für die erste Transaktion und zwei für die nachfolgende Transaktionen.
Diese Methode akzeptiert vollständige Erstattungen (wobei der Betrag dem Betrag entspricht, den der Nutzer in der ursprünglichen externen Transaktion) und teilweise Erstattungen (d. h. der Betrag ist geringer als der Betrag, den der Nutzer in der ursprünglichen externen Transaktion). Bei teilweisen Erstattungen müssen Sie den Betrag vor Steuern angeben, wurde erstattet.
API-Kontingente
Für die Externaltransactions
API gelten tägliche API-Kontingente.
wie bei jedem anderen Endpunkt in der Google Play Developer API.
Darüber hinaus hat die Externaltransactions
API 1.200 Abfragen pro Minute.
(QPM) für Aufrufe an Externaltransactions.createexternaltransaction
oder
Externaltransactions.refundexternaltransaction
Anrufe an
Externaltransactions.getexternaltransaction
werden nicht auf diese 1.200 Abfragen pro Minute angerechnet.
Limit