Powiązanie konta klienta z podmiotem przetwarzającym płatności z dodanym instrumentem Google.
Powiązanie konta następuje po uwierzytelnieniu użytkownika przez integratora. Powiązanie zachodzi przez wywołanie serwer-serwer, które zawiera elementy requestId dotyczące powiązanego procesu uwierzytelniania (authenticationRequestId), associationId i googlePaymentToken (GPT). Firma obsługująca płatności powinna powiązać associationId i googlePaymentToken z kontem klienta w celu uwierzytelnienia. Tag GPT służy do inicjowania płatności. associationId jest używany podczas wywołań ponownego uwierzytelniania do identyfikowania konta na potrzeby uwierzytelniania.
Jeśli Google wyśle żądanie associationId lub googlePaymentToken, które integrator już wykrył podczas innego powiązania, zwraca błąd.
Jeśli podczas przetwarzania żądania punkt końcowy napotka błąd, treść odpowiedzi z tego punktu końcowego powinna być typu .ErrorResponse
Przykładowe żądanie wygląda tak:
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 0,
"revision": 0
},
"requestId": "cmVxdWVzdDE",
"requestTimestamp": "1481899949606"
},
"googlePaymentToken": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ__",
"authenticationRequestId": "bnAxdWTydDX==",
"associationId": "LmddbXBsZSByZWZlcmVuY2UgdG9rZW4gdmFsdWU_",
"provideUserInformation": true
}
Przykładowa odpowiedź wygląda tak:
{
"responseHeader": {
"responseTimestamp": "1481899949611"
},
"paymentIntegratorAssociateAccountId": "xx77df88934hfd",
"accountId": "1234-5678-91",
"accountNickname": "***-91",
"tokenExpirationTime": "0",
"userInformation": {
"name": "Example Customer",
"addressLine": ["123 Main St"],
"localityName": "Springfield",
"administrativeAreaName": "CO",
"postalCodeNumber": "80309",
"countryCode": "US"
},
"result": "SUCCESS"
}
Żądanie HTTP
POST https://www.integratorhost.example.com/v1/associateAccount
Treść żądania
Treść żądania zawiera dane o następującej strukturze:
| Zapis JSON |
|---|
{ "requestHeader": { object ( |
| Pola | |
|---|---|
requestHeader |
WYMAGANE: wspólny nagłówek dla wszystkich żądań. |
provideUserInformation |
WYMAGANE: ma wartość Prawda, jeśli chcemy, by integrator podał adres powiązany z tym kontem. |
googlePaymentToken |
WYMAGANE: token, którego Google używa do inicjowania zakupów u firmy obsługującej płatności. Jest to ciąg o maksymalnej długości 100 znaków. |
associationId |
WYMAGANE: identyfikator tego powiązania. Ten identyfikator jest tworzony przez Google i wysyłany podczas procesu ponownego uwierzytelniania w celu określenia konta, które powinno być uwierzytelnione. Jest to ciąg o maksymalnej długości 100 znaków. |
Pole sumy
|
|
authenticationRequestId |
OPCJONALNIE: |
otpVerification |
OPCJONALNIE: dane niezbędne do weryfikacji hasła jednorazowego wygenerowanego na podstawie danych z |
Treść odpowiedzi
Obiekt odpowiedzi dla metody powiązanego konta.
W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:
| Zapis JSON |
|---|
{ "responseHeader": { object ( |
| Pola | |
|---|---|
responseHeader |
WYMAGANE: wspólny nagłówek wszystkich odpowiedzi. |
paymentIntegratorAssociateAccountId |
WYMAGANE: ten identyfikator jest powiązany z integratorem i jest przez niego generowany. Jest używany wyłącznie do debugowania w celu identyfikacji tego wywołania. Jest to identyfikator, według którego integrator zna to wywołanie. |
tokenExpirationTime |
OPTIONAL: liczba milisekund od początku epoki po wygaśnięciu tokena. Użyj |
accountId |
WYMAGANE: identyfikator konta użytkownika integratora. Dane te są używane do analizy ryzyka związanego z ponownym wykorzystaniem kont i relacjami z pracownikami obsługi klienta Google, aby pomagać klientom w diagnozowaniu problemów. Ten identyfikator powinien być rozpoznawalny dla użytkownika (np. użytkownik zna go, ponieważ pojawia się na wyciągu lub pojawia się w witrynie po zalogowaniu się na konto). Ta wartość musi być stała przez cały okres istnienia konta. |
userMessage |
WYCOFANY: opis wyniku, który będzie wyświetlany użytkownikowi, jeśli wynik nie jest wartością |
userInformation |
WYMAGANE: informacje o kliencie, które integrator zna i udostępni Google. Służy do przekazywania informacji o ryzyku i wstępnego wypełniania. |
result |
WYMAGANE: wynik tego powiązania. |
Pole sumy
|
|
accountNickname |
OPCJONALNIE: ciąg znaków, dzięki któremu użytkownik zna dane konto na potrzeby wyświetlania. To jest sufiks pseudonimu konta. Przykład: ostatnie 4 cyfry numeru telefonu. Google poinformuje w interfejsie użytkownika, że jest to tylko sufiks pseudonimu. Ta wartość będzie wyświetlana w interfejsach, takich jak proces zakupu, aby użytkownik mógł odróżnić formy płatności. |
fullAccountNickname |
OPCJONALNIE: ciąg znaków, dzięki któremu użytkownik zna dane konto na potrzeby wyświetlania. W przeciwieństwie do Ta wartość będzie wyświetlana w interfejsach, takich jak proces zakupu, aby użytkownik mógł odróżnić formy płatności. |
UserInformation
Struktura informacji o użytkowniku.
| Zapis JSON |
|---|
{ "name": string, "addressLine": [ string ], "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string, "phone": string, "emailAddress": string } |
| Pola | |
|---|---|
name |
OPCJONALNIE: imię i nazwisko klienta. |
addressLine[] |
OPCJONALNIE: zawiera nieuporządkowany tekst adresu. |
localityName |
OPCJONALNE: jest to termin przybliżony, ale ogólnie odnoszą się do miejscowości lub miejscowości w adresie. W regionach świata, w których miejscowości nie są dobrze zdefiniowane lub nie pasują do tej struktury (np. w Japonii i Chinach), pozostaw pole localityName puste i użyj elementu addressLine. Przykłady: USA, gmina IT, poczta polska. |
administrativeAreaName |
OPCJONALNIE: jednostka organizacyjna najwyższego poziomu w tym kraju Przykłady: stan USA, region IT, prowincja CN, prefektura JP. |
postalCodeNumber |
OPCJONALNIE: mimo nazwy, wartości kodu PoCodeNumber są często znakami alfanumerycznymi. Przykłady: „94043”, „SW1W”, „SW1W 9TQ”. |
countryCode |
OPCJONALNIE: kod kraju w adresie klienta. Oczekiwany format: ISO-3166-1 alfa-2. |
phone |
OPCJONALNIE: numer telefonu klienta. |
emailAddress |
OPCJONALNIE: adres e-mail klienta. |
AssociateAccountResultCode
Kody wyników dla powiązanego konta.
| Wartości w polu enum | |
|---|---|
UNKNOWN_RESULT |
Nigdy nie ustawiaj tej wartości domyślnej. |
SUCCESS |
Powiązano. |
USER_AUTHENTICATION_FAILED |
Mimo że został zwrócony pakiet uwierzytelniania konta, nie udało się uwierzytelnić użytkownika. |
NOT_ELIGIBLE |
Konto użytkownika nie ma dostępu do tej usługi. |
OTP_NOT_MATCHED |
Hasło jednorazowe nie odpowiada temu, co wysłał integrator. |
OTP_ALREADY_USED |
Hasło jednorazowe zostało już użyte. |
OTP_LIMIT_REACHED |
Użytkownik poprosił lub próbował zweryfikować zbyt wiele haseł jednorazowych. |
OTP_EXPIRED |
Hasło jednorazowe wygasło. |