Method: associateAccount

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

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

provideUserInformation

boolean

REQUIRED: to true, jeśli integrator ma 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.

Maksymalna długość tego ciągu to 100 znaków.

associationId

string

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

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

authenticationRequestId

string

OPTIONAL: requestId żądania uwierzytelniania poprzedzającego to wywołanie. Ten identyfikator został wygenerowany przez Google podczas procesu uwierzytelniania. Jest on widoczny tylko wtedy, gdy użytkownik przeprowadził uwierzytelnianie aplikacji na Androida, uwierzytelnianie w witrynie lub asynchroniczne uwierzytelnianie korzystające z authenticationResultNotification.

otpVerification

object (OtpVerification)

OPCJONALNIE: dane niezbędne do weryfikacji hasła jednorazowego wygenerowanego za pomocą sendOtp. Jest widoczny tylko wtedy, gdy użytkownik korzystał z ścieżki sendOtp.

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

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

paymentIntegratorAssociateAccountId

string

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

string (int64 format)

OPCJONALNIE: milisekundy od początku epoki, w której token wygasa. Użyj 0, aby zasygnalizować, że token nie wygasa.

accountId

string

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

string

WYCOFANE: opis wyniku, który wyświetla się użytkownikowi, jeśli wynik nie jest SUCCESS.

userInformation

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

enum (AssociateAccountResultCode)

REQUIRED: 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 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

string

OPCJONALNIE: ciąg znaków, dzięki któremu użytkownik zna to konto na potrzeby wyświetlania. W przeciwieństwie do accountNickname jest to pełny pseudonim 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 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

string

OPCJONALNIE: imię i nazwisko klienta.

addressLine[]

string

OPCJONALNIE: przechowuje nieuporządkowany tekst adresu.

localityName

string

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

string

OPCJONALNIE: najwyższy poziom podziału administracyjnego tego kraju „Przykłady: stan USA, region IT, prowincja CN, prefektura JP”.

postalCodeNumber

string

OPCJONALNIE: wbrew nazwie wartości wartościPostalCodeNumber mają często postać alfanumeryczną. Przykłady: „94043”, „SW1W”, „SW1W 9TQ”.

countryCode

string

OPCJONALNIE: kod kraju w adresie klienta. Oczekiwany kod to ISO-3166-1 Alpha-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ą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.