Z tego przewodnika dowiesz się, jak zintegrować interfejsy API, aby oferować tylko rozliczenia alternatywne (tj. bez opcji wyboru przez użytkownika) w odpowiednich aplikacjach. Aby dowiedzieć się więcej o tych programach w tym wymagania i zasięg geograficzny, można znaleźć w sekcji Informacje o alternatywach Płatności.
Konfigurowanie Biblioteki płatności w Play
Dodaj zależność Biblioteki płatności w Play do aplikacji na Androida. Aby użyć funkcji interfejsów API rozliczeń alternatywnych musisz używać wersji 6.1 lub nowszej.
Połącz z Google Play
Pierwsze kroki procesu integracji są takie same jak opisane w przewodnik po integracji rozliczeń w Google Play z kilkoma zmianami, zainicjowanie klienta BillingClient:
- Musisz wywołać nową metodę, aby wskazać, że aplikacja używa tylko
alternatywny system rozliczeniowy:
enableAlternativeBillingOnly
.
Poniższy przykład pokazuje inicjowanie BillingClient
z tymi
modyfikacje:
Kotlin
var billingClient = BillingClient.newBuilder(context)
.enableAlternativeBillingOnly()
.build()
Java
private BillingClient billingClient = BillingClient.newBuilder(context)
.enableAlternativeBillingOnly()
.build();
Po zainicjowaniu BillingClient
musisz nawiązać połączenie z
Google Play zgodnie z opisem w przewodniku po integracji.
Sprawdzam dostępność
Aplikacja powinna potwierdzić, że dostępny jest tylko alternatywny system rozliczeniowy, kontaktując się z nim przez telefon
isAlternativeBillingOnlyAvailableAsync
Ten interfejs API zwróci wartość BillingResponseCode.OK, jeśli tylko rozliczenia alternatywne są i dostępności informacji. Szczegółowe informacje o tym, jak aplikacja powinna działać, znajdziesz w artykule o obsłudze odpowiedzi. odpowiadać na inne kody odpowiedzi.
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.
}
});
Okno z informacjami dla użytkowników
.Aby przeprowadzić integrację tylko z rozliczeniami alternatywnymi, odpowiednia aplikacja musi wyświetlać
ekran z informacjami, który pomaga użytkownikom zrozumieć, że płatności nie będą zarządzane
przez Google Play. Aby wyświetlić ekran z informacjami, należy wywołać
showAlternativeBillingOnlyInformationDialog
API przed rozpoczęciem
alternatywnego systemu rozliczeniowego. Jeśli użytkownik potwierdził już
używanie tego interfejsu API zwykle nie powoduje wyświetlenia tego okna.
ponownie. Może się zdarzyć, że okno zostanie ponownie wyświetlone użytkownikowi w określonych sytuacjach.
np. czy użytkownik wyczyści pamięć podręczną urządzenia.
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);
Jeśli ta metoda zwraca BillingResponseCode.OK, aplikacja może kontynuować z transakcją. W przypadku kodu BillingResponseCode.USER_CANCELED aplikacja powinna wywołać metodę showAlternativeBillingOnlyInformationDialog, aby wyświetlać kolejne okno. Aby poznać inne kody odpowiedzi, zapoznaj się z informacjami o obsłudze odpowiedzi .
Zgłaszanie transakcji do Google Play
Wszystkie transakcje dokonane przy użyciu alternatywnego systemu rozliczeniowego muszą być zgłaszane
do Google Play przez wywołanie interfejsu Google Play Developer API z backendu
24 godziny, co daje externalTransactionToken
, który jest uzyskiwany przy użyciu
Interfejs API został opisany poniżej. Dla każdego obiektu externalTransactionToken należy wygenerować nowy token zewnętrzny
jednorazowy zakup, każdą nową subskrypcję oraz przejście na
istniejącej subskrypcji. Aby dowiedzieć się, jak zgłosić transakcję raz
Można uzyskać externalTransactionToken
, postępując zgodnie z przewodnikiem po integracji backendu.
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.
}
});
Obsługa odpowiedzi
Powyższe metody isAlternativeBillingOnlyAvailableAsync(),
showAlternativeBillingOnlyInformationDialog()
i
createAlternativeBillingOnlyReportingDetailsAsync()
może wrócić
non-BillingResponseCode.OK w przypadku błędów. Zalecane
obsługa błędów jest opisana poniżej:
ERROR
: to jest błąd wewnętrzny. Nie dokonuj transakcji. Zadzwoń i spróbuj jeszcze razshowAlternativeBillingOnlyInformationDialog()
, aby wyświetlić informacje wyświetli się użytkownikowi, gdy następnym razem spróbuje dokonać zakupu.FEATURE_NOT_SUPPORTED
: interfejsy API do rozliczeń alternatywnych nie są obsługiwane przez Sklepu Play na bieżącym urządzeniu. Nie dokonuj transakcji.USER_CANCELED
: nie kontynuuj transakcji. Zadzwoń do nasshowAlternativeBillingOnlyInformationDialog()
, aby wyświetlić okno dialogowe z informacjami, gdy użytkownik spróbuje ponownie zakup.BILLING_UNAVAILABLE
: w ramach transakcji nie można użyć alternatywnego płatności i dlatego nie należy brać udziału w tym programie. To jest ponieważ użytkownik nie znajduje się w kraju, w którym można wziąć udział w programie, albo Twoje konto nie zostało prawidłowo zarejestrowane w programie. Jeśli jest sprawdź stan rejestracji w Konsoli Play.DEVELOPER_ERROR
: wystąpił błąd w żądaniu. Korzystanie z komunikatu debugowania zidentyfikować i naprawić błąd, zanim przejdziesz dalej.NETWORK_ERROR, SERVICE_DISCONNECTED, SERVICE_UNAVAILABLE
: to są przejściowe, które należy ponowić. W przypadkuSERVICE_DISCONNECTED
ponownie nawiąż połączenie z Google Play przed ponawiam próbę.
Testowanie alternatywnego systemu rozliczeniowego
Do testowania integracji rozliczeń alternatywnych należy korzystać z testerów licencji. Ty nie otrzymasz faktury za transakcje zainicjowane przez testera licencji kont. Więcej informacji znajdziesz w artykule Testowanie rozliczeń w aplikacji za pomocą licencjonowania aplikacji. informacje na temat konfigurowania testerów licencji.
Dalsze kroki
Po zakończeniu integracji w aplikacji możesz zintegrować .