Opis
Proces uwierzytelniania ma na celu identyfikację i uwierzytelnianie użytkownika w integratorze płatności (integratorze płatności).
Uwierzytelnianie to dane wejściowe innych metod. Dotyczy to zwłaszcza associateAccount
i capture
. Oznacza to, że dowód uwierzytelniania jest używany jako dane wejściowe (parametr) tych 2 metod.
Google może też zweryfikować użytkownika za pomocą procesu uwierzytelniania w trybie samodzielnym. W takim przypadku nie jest ona używana jako dane wejściowe w żadnym innym procesie, a jedynie w celu sprawdzenia, czy użytkownik może uwierzytelnić tę tożsamość.
Pamiętaj, że podczas rejestracji Google pomoże Ci wybrać mechanizm uwierzytelniania, który najlepiej pasuje do Twojego produktu.
Jak to działa
Istnieją 2 sposoby uwierzytelniania użytkownika – każdy z nich przebiega w inny sposób. Podczas integracji integrator musi określić, którego użyć.
- Uwierzytelnianie przekierowania
- Uwierzytelnianie SMS-MT za pomocą hasła jednorazowego
Uwierzytelnianie przekierowania
Użytkownik Google, który potrzebuje uwierzytelniania, może zostać przekierowany do aplikacji integratora lub jego witryny w celu zweryfikowania tożsamości. Oto krótkie omówienie tego procesu:
- Google przekierowuje użytkownika do aplikacji internetowej lub aplikacji na Androida integratora, w której może zostać uwierzytelniony.
- Do uwierzytelnienia służy uwierzytelnianie
requestId
(odAuthenticationRequest
). - Spowoduje to utworzenie podpisanej odpowiedzi o nazwie
AuthenticationResponse
. - Następnie aplikacja lub strona przekierowuje użytkownika z powrotem do Google.
Uwierzytelnianie przekierowania korzysta z metody HTTP GET z parametrami kodowanymi w adresie URL aplikacji internetowej. Wykorzystuje intencję Androida do uwierzytelniania aplikacji na Androida. Więcej informacji o kodowaniu znajdziesz w sekcji Uwierzytelnianie internetowe. Informacje o parametrach intencji Androida – Uwierzytelnianie na Androidzie.
Wynikiem każdego z tych mechanizmów uwierzytelniania jest podpisana odpowiedź o nazwie AuthenticationResponse
. Intencja powinna zawierać zaszyfrowaną, zakodowaną odpowiedź na uwierzytelnianie standardowego uwierzytelniania Google Payments (gspAuthenticationResponse
), aby przekazywać informacje na temat udanego uwierzytelnienia. Jeśli są używane w trybie samodzielnym, do określenia pomyślnego uwierzytelnienia służą gspResult
i podpis.
Poniższy diagram przedstawia interakcję między przeglądarką użytkownika, Google i aplikacją internetową integratora:
Proces uwierzytelniania przekierowania do internetu
Oto lista obiektów i ich reprezentacji:
- Użytkownik: osoba, która chce dodać formę płatności do swojego konta Google.
- Interfejs Google: w tym przypadku jest to interfejs internetowy Google, w którym klient zaczyna konfigurować formę płatności.
- Serwer Google: serwer backendu Google, który sprawdza uwierzytelnianie oraz inne zadania związane z uwierzytelnianiem.
- Internet integratora płatności: witryna integratora, w której użytkownik ma konto.
W ramach tego procesu uwierzytelniania zakładamy już, że użytkownik jest na stronie Google (interfejsie Google) i próbuje dodać formę płatności. Tu wszystko się zaczyna.
- Interfejs Google tworzy adres URL uwierzytelniania, który jest wysyłany do serwera Google (backendu). To właśnie aktywuje proces uwierzytelniania.
- Serwer Google tworzy żądanie uwierzytelniania (
AuthenticationRequest
). - Żądanie uwierzytelniania wysłane do interfejsu Google.
- Użytkownik otrzymuje prośbę o uwierzytelnienie swojego identyfikatora u integratora.
- Użytkownik odpowiada, że chce się uwierzytelnić, co wysyła tę wiadomość do witryny integratora.
- Strona integratora płatności prosi o weryfikację tożsamości użytkownika.
- Użytkownik dostarcza dokument potwierdzający swoją tożsamość, który jest wysyłany na stronę integratora płatności.
- Integrator tworzy odpowiedź (
authenticationResponse
) na dostarczone dowody (znakauthenticationResponse
zakodowany w wiadomości). - Ten adres URL odpowiedzi jest wysyłany do użytkownika.
- Adres URL odpowiedzi jest natychmiast wysyłany od użytkownika do interfejsu Google.
- Interfejs Google wysyła odpowiedź do serwera Google.
- Serwer Google interpretuje odpowiedź jako zweryfikowaną.
Następny schemat sekwencji przedstawia interakcję między telefonem użytkownika, Google i aplikacją na Androida integratora:
Przekierowywanie uwierzytelniania w aplikacji na Androida
Obiekty i ich znaczenie:
- Użytkownik: osoba, która chce dodać formę płatności do swojego konta Google.
- Interfejs Google: w tym przypadku jest to interfejs aplikacji, w którym klient zaczyna konfigurować formę płatności.
- Serwer Google: serwer backendu Google, który sprawdza uwierzytelnianie oraz inne zadania związane z uwierzytelnianiem.
- Plik APK integratora płatności: aplikacja integratora, w której użytkownik ma dostęp do swojego konta integratora.
- Serwer integratora płatności: serwer backendu integratora, na którym przechowywane są informacje o użytkowniku.
Jest to proces uwierzytelniania, więc zakładamy, że użytkownik używa aplikacji (interfejsu Google) i próbuje dodać formę płatności. To tutaj rozpoczyna się inicjowanie.
- Interfejs użytkownika Google tworzy wywołanie uwierzytelniania, które jest wysyłane do serwera Google (backendu).
- Serwer Google tworzy żądanie uwierzytelniania (
AuthenticationRequest
). - Serwer Google wysyła do interfejsu Google (aplikacji) pakiet APK wywołujący, żądając uwierzytelnienia.
- Interfejs Google wysyła informacje o użytkowniku do pliku APK integratora płatności (
AUTHENTICATE_V1(authReq)
). - Plik APK integratora płatności wysyła żądanie (
authReq
) do serwera integratora płatności. - Serwer integratora płatności wysyła wyzwanie z powrotem do pliku APK integratora płatności.
- Plik APK integratora płatności wysyła wyzwanie użytkownikowi.
- Użytkownik dostarcza dowód tożsamości, który jest przesyłany do pliku APK integratora płatności.
- Dane weryfikacyjne są przesyłane na serwer integratora płatności.
- Serwer tworzy podpisany
authenticationResponse
. - Odpowiedź uwierzytelnienia się powiodła, a do pakietu APK integratora płatności wysyłany jest komunikat
authResp
. - Komunikat o powodzeniu (
authResp
) jest wysyłany z pakietu APK integratora płatności do interfejsu Google. - Interfejs Google wysyła odpowiedź do serwera Google.
- Serwer Google interpretuje pomyślną odpowiedź.
Uwierzytelnianie SMS-MT za pomocą hasła jednorazowego
Inną metodą uwierzytelniania jest usługa krótkich wiadomości, przerwanie połączenia z urządzeniami mobilnymi, hasło jednorazowe (SMS-MT OTP). Ten mechanizm wykorzystuje numer telefonu użytkownika, aby wysłać mu jednorazowe hasło do uwierzytelnienia. Google prosi integratora o wysłanie hasła jednorazowego na numer telefonu użytkownika. Gdy użytkownik je otrzyma, a następnie wpisze je w interfejsie Google, zostanie on zweryfikowany.
Wykonaj te czynności:
- Interfejs użytkownika (UI) Google prosi o podanie numeru telefonu, który jest już zarejestrowany w integratorze.
- Użytkownik wpisuje numer telefonu w interfejsie Google.
- Google aktywuje integratora (wywołujący metodę
sendOtp
), aby wysłać użytkownikowi hasło jednorazowe. - Użytkownik otrzymuje SMS-a z hasłem jednorazowym.
- Następnie użytkownik wpisuje w interfejsie Google hasło jednorazowe (używane jako dane wejściowe w usługach
capture
,associateAccount
iverifyOtp
), aby uwierzytelnić użytkownika. Jest to dowód uwierzytelniania.
W trybie samodzielnym w celu weryfikacji wartości hasła jednorazowego wywoływana jest tylko metoda verifyOtp
.
Ten schemat sekwencji przedstawia interakcję między telefonem użytkownika, Google i integratorem podczas wysyłania hasła jednorazowego:
Proces uwierzytelniania przez telefon (wysyłanie hasła jednorazowego)
Oto lista obiektów na diagramie i ich reprezentacji:
- Użytkownik: osoba, która chce dodać formę płatności do swojego konta Google.
- Interfejs Google: w tym przypadku jest to strona internetowa lub aplikacja na telefon Google, w której klient zaczyna konfigurować formę płatności. Uwaga: jeśli interfejs Google to aplikacja na telefon, pierwsze kilka kroków zostanie pominiętych, ponieważ telefon zna już numer telefonu użytkownika.
- Serwer Google: serwer backendu Google, który sprawdza uwierzytelnianie oraz inne zadania związane z uwierzytelnianiem.
- Serwer integratora płatności: serwer backendu integratora, na którym przechowywane są informacje o użytkowniku.
Ponieważ jest to proces uwierzytelniania za pomocą hasła jednorazowego, zakładamy, że użytkownik korzysta z aplikacji na telefon lub z witryny Google (interfejs Google) i próbuje dodać formę płatności. To tutaj rozpoczyna się inicjowanie.
- Interfejs Google (telefon lub strona internetowa) poprosi użytkownika o podanie numeru telefonu.
- Użytkownik wpisuje swój numer telefonu w interfejsie Google.
- Interfejs Google wysyła numer (
sendChallenge(phoneNum)
) do serwera Google. - Serwer Google wysyła do serwera integratora płatności (
SendOtp(phoneNum)
) żądanie wysłania hasła jednorazowego. - Serwer integratora płatności wysyła do użytkownika hasło jednorazowe.
- Serwer integratora płatności odpowiada na żądanie Google w punkcie 5, sygnalizując wysłanie hasła jednorazowego.
- Użytkownik wpisuje hasło jednorazowe w interfejsie Google (na telefonie lub stronie internetowej).
- Interfejs Google wysyła hasło jednorazowe na serwer Google, skąd jest następnie wysyłane do integratora płatności w celu weryfikacji. Pozwala to zweryfikować tożsamość użytkownika oraz go uwierzytelnić.
Uwierzytelnianie i ponowne uwierzytelnianie
Uwierzytelnianie może wystąpić w dwóch momentach:
- Uwierzytelnianie wstępne – służy do identyfikowania i uwierzytelniania użytkowników. Wstępne uwierzytelnianie jest używane jako dane wejściowe w metodzie
associateAccount
. - Ponowne uwierzytelnianie – używane we wszystkich innych kontekstach, takich jak samodzielne lub jako dane wejściowe w
capture
.
Ponowne uwierzytelnianie różni się od uwierzytelniania wstępnego. Nie chce ponownie identyfikować użytkownika, a tylko ponownie się uwierzytelnić. Google używa ponownego uwierzytelnienia, aby umożliwić użytkownikowi udowodnienie, że jest właścicielem określonego konta. Dzieje się to według uznania Google.
W ramach tego procesu do pierwotnego powiązania (z poziomu procesu tworzenia powiązania) jest dostarczane odniesienie o nazwie associationId
. Jest ona udostępniana przez wywołanie metody associateAccount
podczas procesu powiązania. associationId
identyfikuje konto, z którym ma zostać porównanie. Ze względów bezpieczeństwa użytkownik nie może zmienić konta, którego dotyczy test.
W przypadku ponownego uwierzytelniania SMS-MT za pomocą hasła jednorazowego Google przechowuje jako stały numer telefonu podany podczas pierwotnego połączenia z sendOtp
. Dla bezpieczeństwa nie można tego zmienić.
Oto przykład procesu, w którym Google decyduje się na sprawdzenie tożsamości (ponowne uwierzytelnienie) przed zakupem:
Proces ponownego uwierzytelniania
Lista obiektów i ich reprezentacja wygląda tak:
- Użytkownik: jest to osoba, która chce dokonać zakupu.
- Interfejs Google: w tym przypadku jest to strona internetowa lub aplikacja na telefon Google, na której klient zaczyna dokonywać zakupu.
- Interfejs integratora płatności: witryna lub aplikacja dla klientów, w której użytkownik może uzyskać dostęp do informacji o koncie za pomocą integratora.
- Serwer Google: serwer backendu Google, który wykonuje sprawdzanie ponownego uwierzytelniania oraz inne zadania.
- Serwer integratora płatności: serwer backendu integratora, na którym przechowywane są informacje o użytkowniku.
Proces ponownego uwierzytelniania rozpoczyna się, gdy klient rozpoczyna zakup. Inicjuje to proces ponownego uwierzytelnienia użytkownika.
- Użytkownik decyduje się na zakup produktu lub usługi.
- Żądanie jest wysyłane z interfejsu Google do serwera Google.
- Serwer Google odsyła do interfejsu Google żądanie uwierzytelnienia (
authenticationRequest
). - Interfejs Google wysyła do interfejsu integratora płatności żądanie uwierzytelnienia (
associationId
,authenticationRequest
) tego użytkownika. - Interfejs integratora płatności wyszukuje użytkownika w celu zweryfikowania jego tożsamości (
LookupIdentity
(associationId
)). - Interfejs integratora płatności prosi użytkownika o podanie danych logowania w swoim interfejsie (na stronie lub w aplikacji integratora).
- Odpowiedź uwierzytelniająca jest wysyłana do serwera integratora płatności.
- Podpisana odpowiedź uwierzytelniająca (
authenticationResponse
) jest odsyłana z powrotem do interfejsu integratora płatności. - Odpowiedź uwierzytelniająca (
authenticationResponse
) jest wysyłana z interfejsu integratora płatności do interfejsu Google. - Interfejs Google wysyła odpowiedź z informacjami o zakupie do serwera Google.
- Serwer Google wysyła komunikat
capture
(aby znaleźć dostępne środki) na serwer integratora płatności (authenticationRequestId
, GPT, kwota). - Serwer integratora płatności wysyła do serwera Google wiadomość o udanej transakcji.
- Serwer Google wysyła do interfejsu Google komunikat o powodzeniu.
- Interfejs Google dostarcza produkt(y) klientowi (lub powiadamia go, że wkrótce zostaną dostarczone).
Uwierzytelnianie SMS-MO
Usługa Short Message Service to proces uwierzytelniania opartego na danych mobilnych wykorzystujący SMS-a z identyfikatorem żądania uwierzytelniania wysłanego z telefonu użytkownika do integratora płatności w celu uwierzytelnienia użytkownika.
Oto lista obiektów na diagramie i ich reprezentacji:
- Użytkownik: osoba, która chce dodać formę płatności do swojego konta Google.
- Interfejs lub urządzenie Google: w tym przypadku aplikacja na telefon Google, w której klient zaczyna konfigurować formę płatności.
- Serwer Google: serwer backendu Google, który generuje instrukcje SMS z identyfikatorem żądania uwierzytelniania (ARID) i otrzymuje wynik uwierzytelniania od integratora.
- Serwer integratora płatności: serwer backendu integratora, który odbiera SMS-a uwierzytelniania i zwraca do Google identyfikator żądania uwierzytelniania.
Jest to proces uwierzytelniania, więc zakładamy, że użytkownik używa aplikacji (interfejsu Google) i próbuje dodać formę płatności. To tutaj rozpoczyna się inicjowanie.
- Użytkownik wybiera tokenizowany instrument do dodania.
- Interfejs Google wywołuje serwer Google, aby rozpocząć wyzwanie SMS-MO.
- Serwer Google zwraca instrukcje SMS zawierające miejsce docelowe i treść zawierającą identyfikator żądania uwierzytelnienia.
- Interfejs Google wysyła SMS-a do integratora płatności.
- Serwer integratora płatności wywołuje punkt końcowy AuthenticatorResultResult na serwerze Google, podając identyfikator żądania uwierzytelniania.
- Identyfikator żądania uwierzytelnienia jest weryfikowany przez serwer Google, co oznacza odpowiedź SUCCESS.
- Interfejs Google wywołuje serwer Google, aby uzyskać wynik próby uwierzytelnienia.
- Odpowiedź serwera Google POWIODŁA SIĘ.
Symulowane uwierzytelnianie SMS-MO
Na potrzeby testów diagnostycznych procesu uwierzytelniania SMS-MO Google definiuje punkt końcowy Simulation SMS. Dzięki temu nie trzeba wysyłać i weryfikować prawdziwego SMS-a podczas wykonywania powiązań testowych w środowisku piaskownicy.
Oto lista obiektów na diagramie i ich reprezentacji:
- Tester: osoba, która inicjuje test diagnostyczny powiązania SMS-MO.
- Interfejs Google: interfejs Google, w którym tester zaczyna i monitoruje stan testu diagnostycznego SMS-MO.
- Serwer Google: serwer backendu Google generuje instrukcje SMS z identyfikatorem żądania uwierzytelniania (ARID), wysyła symulowaną wiadomość SMS i otrzymuje wynik uwierzytelniania od integratora.
- Serwer integratora płatności: serwer backendu integratora, który odbiera symulowanego SMS-a uwierzytelniania i zwraca do Google identyfikator żądania uwierzytelniania.
W ramach tego procesu należy wykonać następujące kroki:
- Tester rozpoczyna test diagnostyczny SMS-MO, podając identyfikator subskrybenta testu (SID), który jest używany do testu. Ten identyfikator SID zostanie dołączony do wywołania
simulateSms
integratora płatności. - Interfejs Google wywołuje serwer Google, aby rozpocząć wyzwanie SMS-MO.
- Serwer Google zwraca instrukcje SMS zawierające miejsce docelowe i treść zawierającą identyfikator żądania uwierzytelnienia. Na potrzeby tego testu miejsce docelowe zostanie zastąpione przez połączenie HTTPS piaskownicy integratora płatności.
- Interfejs Google wywołuje serwer Google, aby wysłać symulowanego SMS-a.
- Wywołanie
simulateSms
jest przekazywane między serwerem Google a serwerem integratora płatności. Wywołanie interfejsu API obejmuje zarówno identyfikator żądania uwierzytelnienia, jak i identyfikator subskrybenta (jak podano w kroku 1). - Serwer integratora płatności odpowiada POTWIERDZONO.
- Serwer Google odpowiada SUCCESS na komunikator Google.
- Serwer integratora płatności wywołuje punkt końcowy AuthenticatorResultResult na serwerze Google, podając identyfikator żądania uwierzytelniania.
- Serwer Google odpowiada SUCCESS.
- Interfejs Google wywołuje serwer Google, aby uzyskać wynik próby uwierzytelnienia.
- Serwer Google odpowiada COMPLETED (ukończono).
- Interfejs Google wywołuje serwer Google, aby wykonać próbę powiązania.
- Wywołanie
associateAccount
jest przekazywane między serwerem Google a serwerem integratora płatności. - Serwer integratora płatności odpowiada SUCCESS.
- Serwer Google odpowiada SUCCESS.
- Interfejs Google zostanie zaktualizowany, aby wskazać testerowi, że test diagnostyczny SMS-MO zakończył się powodzeniem.
Sprawdzone metody i inne kwestie
Wybór platform
Udostępnienie procesu uwierzytelniania w aplikacji mobilnej i na komputerze pozwoli integratorowi dotrzeć do największej liczby użytkowników. Google zdecydowanie zaleca integratorom obsługę aplikacji na Androida, ponieważ zapewnia ona użytkownikom maksymalną wygodę i osiąga najwyższy współczynnik konwersji. Parametry przekazywane w interfejsach API uwierzytelniania do aplikacji internetowych i na Androida są takie same.