Uwierzytelnianie może odbywać się w 3 różnych środowiskach:
- Aplikacja integratora płatności na Androida
- Witryna mobilna integratora płatności
- Witryna integratora płatności na komputery
Niezależnie od procesu płatności Google przekazuje interakcję użytkownika z płatnością. z oprogramowania integratora. Integrator płatności może wyświetlić użytkownikowi lub po prostu natychmiast wrócić, jeśli ma już odpowiednie dane. Wszystkie przepływy skutkują wyświetleniem przez integratora odpowiedzi AuthenticationResponse. Ten jest podpisana i wysyłana do Google.
Witryny w wersji na urządzenia mobilne i komputery muszą być zgodne z interfejsem WebRedirect Authentication API. zgodnie ze specyfikacją. Proces w aplikacji na Androida musi być zgodny z wytycznymi Specyfikacja interfejsu Authentication API.
Integrator powinien wdrożyć rozwiązanie APK na Androida, aby uwierzytelnić użytkowników. To inne uwierzytelnianie, ale w tym samym celu co uwierzytelniania oferowanego przez sieć
Użytkownik uwierzytelnia się w integratorze płatności za pomocą Androida Aktywność. Intencja uwierzytelniania jest wywoływana podczas wiązania konta i wyzwaniami użytkowników. Aby zapobiec zamknięciu Google Play przez Androida w tle podczas uwierzytelniania, integrator musi umieścić element w ramach tematu aktywności.
<item name="android:windowIsTranslucent">true</item>
Definicja metody
Intencja musi mieć te właściwości:
Właściwości metody | |
---|---|
Działanie |
com.google.android.payments.standard.AUTHENTICATE_V1 |
Kategoria | android.intent.category.DEFAULT |
Żądanie
Pola | |
---|---|
gspAuthenticationRequest
|
AuthenticationRequest
Prośba o uwierzytelnienie. |
gspAssociationId
|
string
Jeśli istnieje, zawiera identyfikator używany przez integratora do wyszukiwania dane logowania użytkownika, którego dotyczy test. Jeśli go nie ma, użytkownik może zmienić identyfikator konta. |
Odpowiedź
Gdy użytkownik ukończy uwierzytelnianie, aplikacja musi wysłać wynik do Google. Jeśli uwierzytelnianie się powiedzie, utwórz intencję i dodaj zaszyfrowany kod gspAuthenticationResponse jako dodatek. Następnie ustaw właściwy kod wyniku aktywności.
...
result.setExtra("gspAuthenticationResponse", gspAuthenticationResponse);
setResult(Activity.RESULT_OK, result);
...
finish();
Wynik
Pola | |||||||
---|---|---|---|---|---|---|---|
wynik |
int
|
Dodatkowe treści
Pola | |
---|---|
gspAuthenticationResponse |
AuthenticationResponse
Odpowiedź uwierzytelniania. Ta zakodowana wartość nie może przekraczać 1 KB. |
Inne wymagania dotyczące aktywności
Działanie obsługujące powyższe działanie AUTHENTICATE_V1
musi obsługiwać działanie wymienione powyżej.
sprawdź też, czy elementy wywołujące interfejs API pochodzą wyłącznie z aplikacji podpisanych przez Google.
Dzięki temu inne aplikacje nie będą próbowały wywoływać Twojej aktywności i
pobierania tokenów tożsamości. Można to zrobić za pomocą dołączonego
StandardPaymentUtils.verifyCallingActivityIsGoogleSigned
zaraz po super.onCreate
w obrębie
Aktywność
implementacji.
Oto przykład:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);
....
}
Wszystkie działania wywoływane w ramach procesu authenticate
muszą dostarczać działanie
motyw z windowIsTranslucent=true
. Należy to zrobić za pomocą
atrybutu AndroidManifest android:theme bez użycia komponentu Context.setTheme()
.
Automatyczne ustawienie motywu nie działa prawidłowo w przypadku okna
przezroczystość. Google będzie egzekwować, że pierwsze uruchomienie działania będzie odbywać się po tym
ale wszystkie uruchomione działania podrzędne również muszą być z nim zgodne
wzorcem. W przeciwnym razie zakupy od zewnętrznych deweloperów mogą nie działać.