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