Method: associateAccount

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 (RequestHeader)
  },
  "provideUserInformation": boolean,
  "googlePaymentToken": string,
  "associationId": string,

  // Union field account_verification can be only one of the following:
  "authenticationRequestId": string,
  "otpVerification": {
    object (OtpVerification)
  }
  // End of list of possible types for union field account_verification.
}
Pola
requestHeader

object (RequestHeader)

WYMAGANE: wspólny nagłówek dla wszystkich żądań.

provideUserInformation

boolean

WYMAGANE: ma wartość Prawda, jeśli chcemy, by integrator podał adres powiązany z tym kontem.

googlePaymentToken

string

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

string

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

account_verification może mieć tylko jedną z tych wartości:

authenticationRequestId

string

OPCJONALNIE: requestId żądania uwierzytelnienia poprzedzającego to wywołanie. Ten identyfikator został wygenerowany przez Google podczas procesu uwierzytelniania. Ten komunikat jest widoczny tylko wtedy, gdy użytkownik przeprowadził uwierzytelnianie w aplikacji na Androida lub stronę internetową albo uwierzytelnianie asynchroniczne z wykorzystaniem authenticationResultNotification.

otpVerification

object (OtpVerification)

OPCJONALNIE: dane niezbędne do weryfikacji hasła jednorazowego wygenerowanego na podstawie danych z sendOtp. Ten element występuje tylko wtedy, gdy użytkownik przeszedł ścieżkę sendOtp.

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 (ResponseHeader)
  },
  "paymentIntegratorAssociateAccountId": string,
  "tokenExpirationTime": string,
  "accountId": string,
  "userMessage": string,
  "userInformation": {
    object (UserInformation)
  },
  "result": enum (AssociateAccountResultCode),

  // Union field account_names can be only one of the following:
  "accountNickname": string,
  "fullAccountNickname": string
  // End of list of possible types for union field account_names.
}
Pola
responseHeader

object (ResponseHeader)

WYMAGANE: wspólny nagłówek wszystkich odpowiedzi.

paymentIntegratorAssociateAccountId

string

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

string (int64 format)

OPTIONAL: liczba milisekund od początku epoki po wygaśnięciu tokena. Użyj 0, aby zasygnalizować, że token nie wygasa.

accountId

string

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
(deprecated)

string

WYCOFANY: opis wyniku, który będzie wyświetlany użytkownikowi, jeśli wynik nie jest wartością SUCCESS.

userInformation

object (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

enum (AssociateAccountResultCode)

WYMAGANE: wynik tego powiązania.

Pole sumy account_names.

account_names może mieć tylko jedną z tych wartości:

accountNickname

string

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

string

OPCJONALNIE: ciąg znaków, dzięki któremu użytkownik zna dane konto na potrzeby wyświetlania. W przeciwieństwie do accountNickname jest to pełna nazwa konta. Na przykład 56565-56501 w przypadku numeru telefonu lub sally@sample-email.com w przypadku tożsamości e-mail.

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

string

OPCJONALNIE: imię i nazwisko klienta.

addressLine[]

string

OPCJONALNIE: zawiera nieuporządkowany tekst adresu.

localityName

string

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

string

OPCJONALNIE: jednostka organizacyjna najwyższego poziomu w tym kraju Przykłady: stan USA, region IT, prowincja CN, prefektura JP.

postalCodeNumber

string

OPCJONALNIE: mimo nazwy, wartości kodu PoCodeNumber są często znakami alfanumerycznymi. Przykłady: „94043”, „SW1W”, „SW1W 9TQ”.

countryCode

string

OPCJONALNIE: kod kraju w adresie klienta. Oczekiwany format: ISO-3166-1 alfa-2.

phone

string

OPCJONALNIE: numer telefonu klienta.

emailAddress

string

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.