Interfejs API uwierzytelniania pakietu APK na Androida

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

Activity.RESULT_OK
Uwierzytelniono.
Activity.RESULT_CANCELED Użytkownik ręcznie anulował przepływ i powinien zostać przerwany.
Activity.RESULT_FIRST_USER Uwierzytelnianie nie powiodło się z powodu krytycznego, a proces powinien być Przerwano. Serwer IE podczas logowania zwrócił odpowiedź HTTP 500.

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ć.