Связывает учетную запись клиента с платежной системой с добавляемым инструментом Google.
Привязка учетной записи происходит после того, как интегратор аутентифицирует пользователя. Связь происходит посредством межсерверного вызова, который содержит requestId
для связанного потока аутентификации ( authenticationRequestId
), associationId
и googlePaymentToken
(GPT). Обработчик платежей должен связать associationId
и googlePaymentToken
с учетной записью клиента для аутентификации. GPT используется для инициации платежей. associationId
используется во время вызовов повторной аутентификации для идентификации учетной записи для аутентификации.
Если Google отправляет associationId
или googlePaymentToken
, который интегратор уже видел во время другой ассоциации, он выдает ошибку.
Если конечная точка обнаруживает ошибку при обработке запроса, тело ответа от этой конечной точки должно иметь тип
.ErrorResponse
Пример запроса выглядит так:
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 0,
"revision": 0
},
"requestId": "cmVxdWVzdDE",
"requestTimestamp": "1481899949606"
},
"googlePaymentToken": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ__",
"authenticationRequestId": "bnAxdWTydDX==",
"associationId": "LmddbXBsZSByZWZlcmVuY2UgdG9rZW4gdmFsdWU_",
"provideUserInformation": true
}
Пример ответа выглядит так:
{
"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"
}
HTTP-запрос
POST https://www.integratorhost.example.com/v1/associateAccount
Тело запроса
Тело запроса содержит данные следующей структуры:
JSON-представление |
---|
{ "requestHeader": { object ( |
Поля | |
---|---|
requestHeader | ОБЯЗАТЕЛЬНО : общий заголовок для всех запросов. |
provideUserInformation | ОБЯЗАТЕЛЬНО : true, если мы хотим, чтобы интегратор предоставил адрес, связанный с этой учетной записью. |
googlePaymentToken | ОБЯЗАТЕЛЬНО : токен, который Google будет использовать для инициирования покупок через платежную систему. Это строка, максимальная длина которой составляет 100 символов. |
associationId | ОБЯЗАТЕЛЬНО : идентификатор этой ассоциации. Этот идентификатор создается Google и отправляется во время повторной аутентификации, чтобы определить, какая учетная запись должна быть аутентифицирована. Это строка, максимальная длина которой составляет 100 символов. |
Поле объединения | |
authenticationRequestId | НЕОБЯЗАТЕЛЬНО : |
otpVerification | НЕОБЯЗАТЕЛЬНО : данные, необходимые для проверки OTP, сгенерированного |
Тело ответа
Объект ответа для метода связанной учетной записи.
В случае успеха тело ответа содержит данные следующей структуры:
JSON-представление |
---|
{ "responseHeader": { object ( |
Поля | |
---|---|
responseHeader | ОБЯЗАТЕЛЬНО : общий заголовок для всех ответов. |
paymentIntegratorAssociateAccountId | ОБЯЗАТЕЛЬНО : этот идентификатор специфичен для интегратора и генерируется интегратором. Он используется в целях отладки только для идентификации этого вызова. Это идентификатор, по которому интегратор знает этот вызов. |
tokenExpirationTime | НЕОБЯЗАТЕЛЬНО : миллисекунды с момента истечения срока действия токена. Используйте |
accountId | ОБЯЗАТЕЛЬНО : идентификатор учетной записи пользователя у интегратора. Это используется для анализа рисков Google, чтобы понять повторное использование учетной записи и взаимосвязь между ней, а также агентов по работе с клиентами Google, чтобы помочь клиентам диагностировать проблемы. Этот идентификатор должен быть узнаваемым пользователем (например, пользователь знает этот идентификатор, поскольку он указан в его выписке или появляется на веб-сайте после входа в учетную запись). Это значение должно быть неизменным на протяжении всего срока действия учетной записи. |
userMessage | УСТАРЕЛО : описание результата, которое будет отображаться пользователю, если результат не |
userInformation | ОБЯЗАТЕЛЬНО : информация о пользователе, которую интегратор знает и будет передавать в Google об этом клиенте. Используется для информации о рисках и предварительного заполнения адресов. |
result | ОБЯЗАТЕЛЬНО : результат этой ассоциации. |
Поле объединения | |
accountNickname | НЕОБЯЗАТЕЛЬНО : строка, по которой пользователь узнает эту учетную запись для целей отображения. Это суффикс ника учетной записи. Например, последние четыре цифры номера телефона. Google укажет в пользовательском интерфейсе, что это всего лишь суффикс ника. Это значение будет отображаться в пользовательских интерфейсах, таких как поток покупок, чтобы пользователь мог различать способы оплаты. |
fullAccountNickname | НЕОБЯЗАТЕЛЬНО : строка, по которой пользователь узнает эту учетную запись для целей отображения. В отличие от Это значение будет отображаться в пользовательских интерфейсах, таких как поток покупок, чтобы пользователь мог различать способы оплаты. |
Информация о пользователе
Структура, содержащая информацию о пользователе.
JSON-представление |
---|
{ "name": string, "addressLine": [ string ], "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string, "phone": string, "emailAddress": string } |
Поля | |
---|---|
name | НЕОБЯЗАТЕЛЬНО : полное имя клиента. |
addressLine[] | НЕОБЯЗАТЕЛЬНО : содержит неструктурированный текст адреса. |
localityName | НЕОБЯЗАТЕЛЬНО : это довольно расплывчатый термин, но обычно он относится к части адреса, посвященной городу. В регионах мира, где населенные пункты не определены четко или плохо вписываются в эту структуру (например, Япония и Китай), оставьте localityName пустым и используйте адресную строку. Примеры: город в США, ИТ-коммуна, почтовый город Великобритании. |
administrativeAreaName | НЕОБЯЗАТЕЛЬНО : высшее административное подразделение этой страны. Примеры: штат США, ИТ-регион, провинция CN, префектура JP. |
postalCodeNumber | НЕОБЯЗАТЕЛЬНО : несмотря на название, значения postalCodeNumber часто являются буквенно-цифровыми. Примеры: «94043», «SW1W», «SW1W 9TQ». |
countryCode | НЕОБЯЗАТЕЛЬНО : код страны адреса клиента, который, как ожидается, будет ISO-3166-1 Alpha-2. |
phone | НЕОБЯЗАТЕЛЬНО : номер телефона клиента. |
emailAddress | НЕОБЯЗАТЕЛЬНО : адрес электронной почты клиента. |
AssociateAccountResultCode
Коды результатов для связанной учетной записи.
Перечисления | |
---|---|
UNKNOWN_RESULT | Никогда не устанавливайте это значение по умолчанию! |
SUCCESS | Успешное объединение. |
USER_AUTHENTICATION_FAILED | Несмотря на то, что пакет аутентификации учетной записи был возвращен, аутентификация пользователя не удалась. |
NOT_ELIGIBLE | Учетная запись пользователя не имеет права на эту услугу. |
OTP_NOT_MATCHED | OTP не соответствовал тому, что отправил интегратор. |
OTP_ALREADY_USED | OTP уже использовался. |
OTP_LIMIT_REACHED | Пользователь запросил или попытался подтвердить слишком много одноразовых паролей. |
OTP_EXPIRED | Срок действия OTP истек. |