Interfejs Google Play Developer API zawiera teraz dodatkowe do raportowania transakcji pochodzących z płatności alternatywnych; oferty zewnętrznej. W tym przewodniku opisano, jak zgłaszać alternatywne wersje rozliczeń czy ofert zewnętrznych.
Występuje kilka komponentów, które mogą być niezbędne do obsługi z Twojego backendu. Aby je utworzyć, musisz skonfigurować backend integrację zgodnie z instrukcjami podanymi w artykule Konfigurowanie interfejsu Google Play Developer API. Dla: wszystkie funkcje backendu dla deweloperów, które nie dotyczą rozliczeń alternatywnych. lub interfejsów API ofert zewnętrznych, instrukcje z Obowiązują dokumentacja dotycząca systemu rozliczeniowego Google Play.
Zgłaszanie nowych transakcji zewnętrznych do Google Play
Integracja z Externaltransactions APIs
aby zgłaszać transakcje realizowane poza systemem rozliczeniowym Google Play w
obsługiwanych krajach, w tym transakcji na kwotę 0 USD w przypadku bezpłatnego okresu próbnego.
zakupów. transakcje w alternatywnych rozliczeniach lub systemach ofert zewnętrznych.
należy rozpocząć i raportować tylko w krajach, w których jest to dozwolone,
mogą być objęte płatnościami alternatywnymi lub
programami z ofertami zewnętrznymi. W przeciwnym razie wywołanie interfejsu API będzie
odrzucono. Dotyczy to wszystkich transakcji, w tym nowych zakupów, odnowień,
doładowania, przejście na wyższą wersję, przejście na niższą wersję itd.
Zewnętrzne raportowanie transakcji
Aby zgłosić transakcję zewnętrzną, musisz wywołać funkcję Externaltransactions API
po autoryzacji płatności za pomocą alternatywnego systemu rozliczeniowego lub
zewnętrznego systemu ofert. Dotyczy to wszystkich transakcji, w tym transakcji początkowych
obciążenia, odnowienia, zwroty środków i inne. Wszystkie transakcje muszą:
są zgłaszane w ciągu 24 godzin od zrealizowania transakcji.
Każda transakcja zewnętrzna jest raportowana z zewnętrznym identyfikatorem transakcji. Dla: zakupy cykliczne (np. subskrypcje odnawiane automatycznie), musisz przesyłać zewnętrzny identyfikator transakcji powiązany z pierwszą transakcją w cyklu purchase jako parametr przy kolejnych transakcjach, w tym zwrotach środków. Ten rejestruje serię transakcji związanych z danym zakupem. Wysyłasz nowy plik zewnętrzny identyfikator transakcji w przypadku zakupów po zmianie produktu (np. uaktualnienie lub lub jeśli transakcja cykliczna została anulowana lub wygasła i jeśli ten produkt zostanie kupiony później. Nie możesz zawrzeć żadnych danych umożliwiających identyfikację osób informacji, zastrzeżonych lub poufnych informacji w ramach tego zewnętrznego identyfikator transakcji.
Zgłaszanie nowego zakupu
Za każdym razem, gdy nowy zakup zakończy się powodzeniem w ramach rozliczeń alternatywnych
lub systemu ofert zewnętrznych wywołanie interfejsu API Externaltransactions
to
W przypadku nowych zakupów musisz podać unikalny
Element externalTransactionId
powiązany z zakupem w Twoim backendzie jako zapytanie
. externalTransactionId
nie może być ponownie użyty w tej samej aplikacji
identyfikator pakietu.
Wartość externalTransactionToken
otrzymana przez aplikację za pomocą
UserChoiceBillingListener
, AlternativeBillingOnlyReportingDetailsListener
lub ExternalOfferReportingDetailsListener
wywołań zwrotnych są również wymagane w ramach
treści żądania dotyczącego jednorazowych zakupów i pierwszych transakcji
zakup cykliczny (np. subskrypcja). W obu przypadkach jest to tzw.
transakcji początkowej. Po pierwszej transakcji
Opcja externalTransactionToken
nie jest już potrzebna, a kolejne zgłoszone w zgłoszeniu
transakcji (takich jak odnowienie subskrypcji) przez podanie nowego, unikalnego identyfikatora
externalTransactionId
Przeczytaj sekcję Raportowanie kolejnych transakcji zakupu.
.
Przykład:
- Deweloper konfiguruje i włącza rozliczenia alternatywne w swojej aplikacji.
- Użytkownik 1 znajduje się w obsługiwanym kraju w Korei Południowej i próbuje dokonać zakupu
product1
za 12634,10 KRW miesięcznie z ofertą bezpłatnego okresu próbnego na miesiąc. - Aplikacja uruchamia proces zakupu za pomocą
ProductDetails
w aplikacjiproduct1
i wybraną przez użytkownika ofertę. - Użytkownik 1 wybiera alternatywny system rozliczeniowy dewelopera.
UserChoiceBillingListener
otrzymuje wartośćmy_token
jakoexternalTransactionToken
- Następnie deweloper wysyła odpowiednie informacje do swojego backendu.
(wartość
externalTransactionToken
i kupowane produkty). Następnie uruchomić proces zakupu usługiproduct1
w alternatywnym systemie rozliczeniowym. Do tej transakcji przypisywany jest unikalny identyfikator transakcji po stronie dewelopera który służy do zgłaszania jej do Google Play: 123-456-789. Identyfikator transakcji jest wymagane, mimo że użytkownik korzysta z bezpłatnej wersji próbnej. - Po dokonaniu transakcji zakupu w ramach rozliczeń alternatywnych deweloper zgłasza transakcję do Google Play, przesyłając z poniższej prośby. Na początku jest uwzględniana jako transakcja bez dolara bo użytkownik otrzymuje miesiąc bezpłatnie.
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"
}
}
w przypadku transakcji z użytkownikiem mieszkającym w Indiach, w których podatki różnią się zależnie od tego, (np. stan lub województwo), uwzględnij w sekcji userTaxAddress. Zobacz listę wstępnie zdefiniowanych ciągów w sekcji Przewodnik po interfejsach API dotyczący odpowiednich regionów.
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"
}
}
Raportowanie kolejnych transakcji zakupu
W niektórych przypadkach z tą samą płatnością powiązana jest więcej niż jedna płatność dla użytkownika
zakup zewnętrzny (np. odnowienie subskrypcji lub doładowanie przedpłaconego abonamentu).
Możesz zgłosić te kolejne transakcje, używając tego samego interfejsu API w
Externaltransactions
Jak opisano w sekcji Zgłaszanie nowego zakupu,
Wartość externalTransactionToken
nie jest wymagana do kolejnych transakcji. Zamiast tego:
dla każdego z nich zostanie wysłany nowy unikalny parametr externalTransactionId
transakcję odnowienia lub doładowania z identyfikatorem transakcji początkowej
w polu initialExternalTransactionId
.
Zgodnie z poprzednim przykładem:
- Pierwsze odnowienie użytkownika 1 ma miejsce w alternatywnym systemie rozliczeniowym. Początkowa wartość identyfikator transakcji to 123-456-789.
- Deweloper zgłasza powtarzanie transakcji w parametrze zapytania adresu URL.
jako zewnętrzny identyfikator tej nowej transakcji, a także
identyfikator zewnętrzny pierwotnej transakcji w
initialExternalTransactionId
.
Przykładowe żądanie:
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"
}
}
Zgłaszanie przejścia na wyższą lub niższą wersję usługi
Aby zgłosić przejście na wyższą lub niższą wersję, gdy użytkownik ma subskrypcję w
alternatywnego systemu rozliczeniowego i używasz tego samego punktu końcowego i funkcji
Externaltransactions
wysyłającym externalTransactionToken
, który był
przekazanych aplikacji w ramach transakcji przejścia na wyższą lub niższą wersję usługi. Działa
podobnie jak zgłaszanie nowego zakupu.
Przejście z ręcznego raportowania transakcji rozliczeń alternatywnych
Aby przenieść aktywne subskrypcje, które rozpoczęły się w czasie, gdy oferowano alternatywny
płatności bez automatycznego raportowania, utwórz nową transakcję bez kosztów za pomocą
pole migratedTransactionProgram
, zamiast
initialExternalTransactionId
lub externalTransactionToken
. Ustaw parametr
transactionTime
do momentu pierwszej rejestracji każdego aktywnego konta
subskrypcji. Następnie zgłaszaj każdą kolejną transakcję dotyczącą tych
do subskrypcji za pomocą interfejsów API,
initialExternalTransactionId
użyte powyżej do utworzenia transakcji odnowienia.
Po przeniesieniu subskrypcji nie będzie już trzeba ręcznie generować raportów
kolejnych transakcji subskrypcji, o ile są one
zgłaszane za pomocą automatycznych metod opisanych na tej stronie.
Podczas przenoszenia subskrypcji pamiętaj o limitach obowiązujących w przypadku aby zapewnić, że migracja nie spowoduje przerw w działaniu limitu. Jeśli wiele subskrypcji wymaga poddane migracji, rozłóż je na kilka dni lub poproś o zwiększenie limitu w limicie ,
Pola migratedTransactionProgram
można używać tylko podczas migracji z:
ręcznego raportowania. Zostanie ona wycofana, gdy przestanie być raportowanie ręczne
obsługiwane.
Przykładowe żądanie:
# 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"
}
}
Zgłaszanie programów partnerskich Google Play
Deweloperzy uczestniczący w programach partnerskich, takich jak
Program Play Media Experience musi zawierać:
transaction_program_code
podczas raportowania transakcji zewnętrznych. Jeśli jesteś
kwalifikujących się deweloperów, skontaktuj się ze swoim menedżerem ds. rozwoju działalności, aby dowiedzieć się więcej
jak ustawić to pole.
Zgłaszanie zwrotów środków za zakupy do Google Play
Przeprowadź integrację z interfejsem API Externaltransactions
, aby raportować transakcje, na które zwrócono środki
poza systemem rozliczeniowym Google Play. Aby usługa Google Play poprawnie zidentyfikowała
transakcja została zwrócona, podaj w pliku
externalTransactionId
za wcześniej zgłoszonej transakcji w ramach
Parametry adresu URL.
Zgłaszając zwroty środków za zakup subskrypcji, zapoznaj się z
externalTransactionId
określonej kwoty cyklicznej subskrypcji, która jest
.
Przykład: załóżmy, że subskrypcja zawiera takie transakcje:
- Początkowa transakcja z zewnętrznym identyfikatorem transakcji ABC.1234-5678-9012-34567
- Pierwsza transakcja cykliczna z zewnętrznym identyfikatorem transakcji ABC.1234-5678-9012-34567..0
- Druga transakcja cykliczna z zewnętrznym identyfikatorem transakcji ABC.1234-5678-9012-34567..1
Aby zgłosić zwrot wszystkich transakcji związanych z subskrypcją, musisz: trzy osobne prośby o zwrot środków: jedną za początkową transakcję, a drugą za kolejnych transakcji.
W przypadku tej metody akceptowane są zarówno pełne zwroty środków. (gdzie kwota jest taka sama, jak kwota, którą użytkownik zapłacił w oryginalnej formie transakcji) i częściowe zwroty środków. (jeśli kwota jest mniejsza niż kwota, którą użytkownik zapłacił w oryginalnej formie zewnętrznej transakcji). W przypadku częściowych zwrotów środków należy podać kwotę przed naliczeniem podatku, zwrócono środki.
Limity interfejsu API
Interfejs API Externaltransactions
podlega dziennym limitom interfejsu API
dla wszystkich wywołań, tak jak w przypadku każdego innego punktu końcowego w interfejsie Google Play Developer API.
Dodatkowo interfejs API Externaltransactions
umożliwia uzyskanie 1200 zapytań na minutę.
limit (QPM) wywołań funkcji Externaltransactions.createexternaltransaction
lub
Externaltransactions.refundexternaltransaction
Połączenia z
Externaltransactions.getexternaltransaction
nie wliczają się do tego 1200 QPM
.