Powiąże konto klienta z firmą obsługującą płatności do dodawanego instrumentu Google.
Powiązanie kont ma miejsce po uwierzytelnieniu użytkownika przez integratora. Powiązanie odbywa się za pomocą wywołania serwer-serwer, który zawiera żądania requestId
dla 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 jest używany do inicjowania płatności. Identyfikator associationId
jest używany podczas wywołań ponownego uwierzytelniania do identyfikowania konta na potrzeby uwierzytelniania.
Jeśli Google wyśle obiekt associationId
lub googlePaymentToken
, który integrator już wykrył w ramach innego powiązania, spowoduje zgłoszenie błędu.
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 |
REQUIRED: wspólny nagłówek dla wszystkich żądań. |
provideUserInformation |
REQUIRED: to true, jeśli integrator ma 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. Maksymalna długość tego ciągu to 100 znaków. |
associationId |
REQUIRED: identyfikator tego powiązania. Jest on tworzony przez Google i wysyłany podczas procesu ponownego uwierzytelniania w celu określenia, które konto należy uwierzytelnić. Maksymalna długość tego ciągu to 100 znaków. |
Pole sumy
|
|
authenticationRequestId |
OPTIONAL: |
otpVerification |
OPCJONALNIE: dane niezbędne do weryfikacji hasła jednorazowego wygenerowanego za pomocą |
Treść odpowiedzi
Obiekt odpowiedzi dla metody powiązanej konta.
W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:
Zapis JSON |
---|
{ "responseHeader": { object ( |
Pola | |
---|---|
responseHeader |
REQUIRED: wspólny nagłówek wszystkich odpowiedzi. |
paymentIntegratorAssociateAccountId |
WYMAGANE: ten identyfikator jest specyficzny dla integratora i jest przez niego generowany. Służy ona wyłącznie do debugowania tylko w celu identyfikacji tego wywołania. Jest to identyfikator, na podstawie którego integrator rozpoznaje to wywołanie. |
tokenExpirationTime |
OPCJONALNIE: milisekundy od początku epoki, w której token wygasa. Użyj |
accountId |
WYMAGANE: identyfikator konta użytkownika w ramach integratora. Dane te pozwalają Google poznać sposoby ponownego wykorzystywania kont i relacji z klientami oraz przedstawiciele obsługi klienta Google, którzy pomagają klientom w diagnozowaniu problemów. Identyfikator powinien być rozpoznawalny dla użytkownika (np. użytkownik zna go, ponieważ pojawia się na wyciągu lub pojawia się na stronie po zalogowaniu się na konto). Ta wartość musi być stała przez cały okres istnienia konta. |
userMessage |
WYCOFANE: opis wyniku, który wyświetla się użytkownikowi, jeśli wynik nie jest |
userInformation |
WYMAGANE: informacje o użytkowniku, które integrator wie i udostępni Google na temat tego klienta. Służy do podawania informacji o ryzyku i rozwiązania wstępnego wypełnienia. |
result |
REQUIRED: wynik tego powiązania. |
Pole sumy
|
|
accountNickname |
OPCJONALNIE: ciąg znaków, dzięki któremu użytkownik zna to konto na potrzeby wyświetlania. Jest to przyrostek pseudonimu konta. Na przykład ostatnie 4 cyfry numeru telefonu. Google poinformuje w interfejsie użytkownika, że jest to tylko przyrostek pseudonimu. Ta wartość będzie wyświetlana w interfejsach użytkownika takich jak proces zakupu, aby umożliwić użytkownikom rozróżnianie form płatności. |
fullAccountNickname |
OPCJONALNIE: ciąg znaków, dzięki któremu użytkownik zna to konto na potrzeby wyświetlania. W przeciwieństwie do Ta wartość będzie wyświetlana w interfejsach użytkownika takich jak proces zakupu, aby umożliwić użytkownikom rozróżnianie form 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: przechowuje nieuporządkowany tekst adresu. |
localityName |
OPCJONALNIE: jest to przybliżone hasło, ale zwykle dotyczy ono części adresu miasta/miasteczka. W regionach świata, gdzie miejscowości nie są dobrze zdefiniowane lub nie pasują do tej struktury (np. w Japonii i Chinach), pozostaw pole localityName puste i użyj parametru addressLine. Przykłady: miasto w USA, gmina IT, brytyjska poczta. |
administrativeAreaName |
OPCJONALNIE: najwyższy poziom podziału administracyjnego tego kraju „Przykłady: stan USA, region IT, prowincja CN, prefektura JP”. |
postalCodeNumber |
OPCJONALNIE: wbrew nazwie wartości wartościPostalCodeNumber mają często postać alfanumeryczną. Przykłady: „94043”, „SW1W”, „SW1W 9TQ”. |
countryCode |
OPCJONALNIE: kod kraju w adresie klienta. Oczekiwany kod to ISO-3166-1 Alpha-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ązanie powiodło się. |
USER_AUTHENTICATION_FAILED |
Mimo że pakiet uwierzytelniania konta został zwrócony, uwierzytelnianie użytkownika się nie udało. |
NOT_ELIGIBLE |
Konto użytkownika nie kwalifikuje się do korzystania z tej usługi. |
OTP_NOT_MATCHED |
Hasło jednorazowe nie jest zgodne z tym, 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. |