Объекты ответов

В этой статье описаны варианты объекта ответа Google Pay API, которые можно использовать на сайте. Объекты ответа возвращаются методами клиента Google Pay API.

IsReadyToPayResponse

Этот объект содержит информацию о том, может ли посетитель сайта предоставить платежные данные по запросу.

Свойство Тип Всегда существует Описание
result Логическое значение Да Посетитель может предоставить платежные данные сайту, который их запрашивает. Возможность оплаты может зависеть от того, поддерживает ли браузер посетителя компоненты, необходимые для работы указанных способов оплаты. в том числе когда они входят в аккаунт Google и указывают способ оплаты.
paymentMethodPresent Логическое значение Нет

Если возвращается значение true, у посетителя есть один или несколько способов оплаты, указанных в свойстве allowedPaymentMethods объекта IsReadyToPayRequest.

Существует, только если для existingPaymentMethodRequired задано значение true в IsReadyToPayRequest.

Если PaymentsClient инициализируется со свойством environment, равным TEST, способ оплаты всегда считается доступным.

Пример

В примере ниже показано, как определить, может ли текущий посетитель предоставить платежные данные сайту, который их запрашивает.

{
  "result": true
}

PaymentData

Это объект ответа, который возвращается Google после того, как плательщик одобрит платеж.

PaymentDataRequest.PaymentDataRequest.PaymentDataRequest.
Свойство Тип Всегда существует Описание
apiVersion число Да Основная версия API. Значение в ответе совпадает со значением, указанным в PaymentDataRequest.
apiVersionMinor число Да Дополнительная версия API. Значение в ответе совпадает со значением, указанным в PaymentDataRequest.
paymentMethodData PaymentMethodData Да Данные о выбранном способе оплаты.
email string Нет Адрес электронной почты, если для параметра emailRequired задано значение true в объекте PaymentDataRequest. Если в другом запросе для этого свойства задано значение true, оно не будет иметь силы.
shippingAddress Адрес Нет Адрес доставки, если для свойства shippingAddressRequired задано значение true в объекте PaymentDataRequest.

Пример

В этом примере ответа для Google Pay API версии 2.0 показан способ оплаты CARD, выбранный на платежной странице Google Pay. Для шлюза example был создан токен способа оплаты.

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "paymentMethodData": {
    "type": "CARD",
    "description": "Visa •••• 1234",
    "info": {
      "cardNetwork": "VISA",
      "cardDetails": "1234",
      "cardFundingSource": "CREDIT"
    },
    "tokenizationData": {
      "type": "PAYMENT_GATEWAY",
      "token": "examplePaymentMethodToken"
    }
  }
}

IntermediatePaymentData

Этот объект возвращается входными данными onPaymentDataChanged() Google Pay API, когда в окне оплаты меняется адрес доставки или способ доставки.

Свойство Тип Необходимость Описание
callbackTrigger Строка Необязательно

Описывает причину, по которой был вызван обратный вызов платежных данных.

  • INITIALIZE
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
  • PAYMENT_METHOD
  • OFFER
offerData OfferData Необязательно Промокод, предоставленный пользователем.
shippingAddress IntermediateAddress Необязательно Адрес, выбранный на странице оплаты.
shippingOptionData SelectionOptionData Необязательно Выбранный способ доставки.
paymentMethodData IntermediatePaymentMethodData Необязательно Данные о способе оплаты, выбранном на странице оплаты.

Примеры

В этом примере показана промежуточная полезная нагрузка, возвращаемая Google Pay API при изменении адреса доставки.

{
  "callbackTrigger": "SHIPPING_ADDRESS",
  "offerData": {
    "redemptionCode": "exampleCode"
  },
  "shippingAddress": {
    "administrativeArea": "NY",
    "countryCode": "US",
    "locality": "New York",
    "postalCode": "10011"
  },
  "shippingOptionData": {
    "id": "shipping-001"
  }
}

В этом примере показаны промежуточные полезные данные, возвращаемые при изменении способа оплаты.

{
  "callbackTrigger": "PAYMENT_METHOD",
  "paymentMethodData": {
    "type": "CARD",
    "info": {
      "cardNetwork": "VISA",
      "cardFundingSource": "CREDIT",
      "billingAddress": {
        "administrativeArea": "NY",
        "countryCode": "US",
        "locality": "New York",
        "postalCode": "10011"
      }
    }
  }
}

PaymentMethodData

Этот объект содержит данные о выбранном способе оплаты.

Свойство Тип Всегда существует Описание
type string Да PaymentMethod type, выбранный на странице оплаты Google Pay.
description string Да

Пользовательское сообщение с описанием способа оплаты, который используется для этой транзакции.

info Объект Да Значение этого свойства зависит от возвращенного способа оплаты type. Для CARD см. CardInfo.
tokenizationData PaymentMethodTokenizationData Нет Данные токенизации для выбранного способа оплаты.

Пример

В примере ответа показано, как способ оплаты CARD, выбранный на платежном листе Google Pay, генерирует токен способа оплаты для шлюза example.

{
  "type": "CARD",
  "description": "Visa •••• 1234",
  "info": {
    "cardNetwork": "VISA",
    "cardDetails": "1234"
  },
  "tokenizationData": {
    "type": "PAYMENT_GATEWAY",
    "token": "examplePaymentMethodToken"
  }
}

CardInfo

В этом объекте содержится информация о выбранной платежной карте.

Свойство Тип Всегда существует Описание
cardDetails string Да Информация о карте. Обычно это последние четыре цифры номера выбранного платежного аккаунта.
assuranceDetails AssuranceDetailsSpecifications Да В этом объекте содержится информация о верификации данных способа оплаты, если для параметра assuranceDetailsRequired задано значение true в объекте CardParameters.
cardNetwork string Да

Платежная система выбранного способа оплаты. Возвращаемые значения соответствуют формату allowedCardNetworks в CardParameters ( ).

Это значение не должно показываться покупателю. Он используется, когда нужны реквизиты карты покупателя. Например, если службе поддержки нужно определить, какую карту покупатель использовал для транзакции. Для описания, видимого пользователю, используйте свойство description объекта PaymentMethodData.

billingAddress Адрес Нет Платежный адрес, связанный с указанным способом оплаты, если для параметра billingAddressRequired задано значение true в CardParameters.
cardFundingSource string Да

Источник средств для выбранного способа оплаты.

  • UNKNOWN
  • CREDIT
  • DEBIT
  • PREPAID

Пример

В этом примере показана карта Visa.

{
  "cardNetwork": "VISA",
  "cardDetails": "1234",
  "cardFundingSource": "CREDIT",
  "assuranceDetails": {
    "cardHolderAuthenticated": false,
    "accountVerified": true
  }
}

AssuranceDetailsSpecifications

В этом объекте содержится информация о верификации данных для полученного способа оплаты. Это позволяет применять соответствующие проверки рисков.

Название Тип Описание
accountVerified Логическое значение Значение true говорит о том, что принадлежность карты владельцу была подтверждена.Cardholder
cardHolderAuthenticated Логическое значение

Значение true говорит о том, что была выполнена проверка личных данных.

Значение false говорит о том, что необходима та же процедура проверки, что и для транзакций по карте. Такая аутентификация на основе рисков может включать, помимо прочего, последовательную аутентификацию с использованием протокола 3D-Secure, если это применимо.

Вы можете получать и обрабатывать объект ответа, даже если не используете поле assuranceDetails. Чтобы получить этот объект, включите assuranceDetailsRequired: true в CardParameters объекта Request.

PaymentMethodTokenizationData

Этот объект содержит данные токенизации для способа оплаты.

Свойство Тип Всегда существует Описание
type string Да Тип токенизации, который будет применен к выбранному способу оплаты. Это значение соответствует значению type, заданному в PaymentMethodTokenizationSpecification.
token string Нет

Сгенерированный токен способа оплаты.

Пример

Ниже приведен пример токенизированного ответа, подготовленного для шлюза example.

{
  "type": "PAYMENT_GATEWAY",
  "token": "examplePaymentMethodToken"
}

PaymentAuthorizationResult

В этом объекте содержится информация о результате авторизации платежа.

Свойство Тип Необходимость Описание
transactionState Строка Обязательно Статус транзакции определяется одним из следующих результатов продавца:
  • SUCCESS
  • ERROR
error PaymentDataError Необязательно Ошибка, которая будет показана пользователю в окне оплаты, если потребуется повторить платеж.

Пример

В примере ниже показано, как возвращается результат платежа после его обработки:

{
  "transactionState": "ERROR",
  "error": {
    "reason": "PAYMENT_DATA_INVALID",
    "message": "Cannot pay with payment credentials",
    "intent": "PAYMENT_AUTHORIZATION"
  }
}

PaymentDataError

Свойство Тип Необходимость Описание
reason Строка Обязательно

Список стандартных причин ошибок:

  • OFFER_INVALID
  • PAYMENT_DATA_INVALID
  • SHIPPING_ADDRESS_INVALID
  • SHIPPING_ADDRESS_UNSERVICEABLE
  • SHIPPING_OPTION_INVALID
  • OTHER_ERROR
message Строка Обязательно Сообщение об ошибке, которое показывается пользователю в диалоговом окне.
intent Строка Обязательно

Намерение ошибки. Оно должно быть зарегистрировано в PaymentDataRequest с начала процесса.

  • OFFER
  • PAYMENT_AUTHORIZATION
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION

Пример

В этом примере показаны намерение ошибки и сообщение, которое будет отображаться на странице оплаты.

{
  "error": {
    "reason": "SHIPPING_OPTION_INVALID",
    "message": "This shipping option is invalid for the given address",
    "intent": "SHIPPING_OPTION"
  }
}

Адрес

В этом объекте содержится информация о запрошенном почтовом адресе. Все свойства являются строками.

Адреса могут возвращаться в форматах MIN, FULL и FULL-ISO3166. Свойства, относящиеся к каждому формату, приведены в таблице ниже.

Свойство Формат адреса Описание
name MIN, FULL, FULL-ISO3166 Полное имя адресата.
postalCode MIN, FULL, FULL-ISO3166 Почтовый индекс.
countryCode MIN, FULL, FULL-ISO3166 Код страны в соответствии со стандартом ISO 3166-1 alpha-2.
phoneNumber MIN, FULL, FULL-ISO3166 Номер телефона, если для свойства phoneNumberRequired задано значение true в объекте PaymentDataRequest.
address1 FULL, FULL-ISO3166 Первая строка адреса.
address2 FULL, FULL-ISO3166 Вторая строка адреса.
address3 FULL, FULL-ISO3166 Третья строка адреса.
locality FULL, FULL-ISO3166 Город, поселок, район или пригород.
administrativeArea FULL, FULL-ISO3166 Административная единица страны, например штат или область.
sortingCode FULL, FULL-ISO3166 Код сортировки.
iso3166AdministrativeArea FULL-ISO3166 Код административного района по стандарту ISO 3166-2, соответствующий значению administrativeArea.

Пример

Ниже приведен пример адреса в США в формате FULL-ISO3166 с несколькими строками почтового адреса.

{
  "name": "John Doe",
  "address1": "c/o Google LLC",
  "address2": "1600 Amphitheatre Pkwy",
  "address3": "Building 40",
  "locality": "Mountain View",
  "administrativeArea": "CA",
  "countryCode": "US",
  "postalCode": "94043",
  "sortingCode": ""
  "iso3166AdministrativeArea": "US-CA"
}

IntermediateAddress

Промежуточный адрес содержит отредактированный адрес доставки (без строк адреса на уровне улицы или имен получателей), чтобы можно было рассчитать применимый налог и варианты доставки до того, как пользователь авторизует платеж.

Свойство Тип Необходимость Описание
administrativeArea Строка Обязательно Административная единица страны, например штат или область.
countryCode Строка Обязательно Код страны в соответствии со стандартом ISO 3166-1 alpha-2.
locality Строка Обязательно Город, поселок, район или пригород.
postalCode Строка Обязательно Отредактированный почтовый индекс на основе страны. Для Канады и Великобритании указываются только первые три символа. Для США указываются первые пять цифр.
iso3166AdministrativeArea Строка Необязательно Код административного района по стандарту ISO 3166-2, соответствующий значению administrativeArea. Указывается, только если адрес доставки имеет формат FULL-ISO3166.

Пример

В этом примере показан адрес, выбранный на платежной странице.

{
  "administrativeArea": "NY",
  "countryCode": "US",
  "locality": "New York",
  "postalCode": "10011"
  "iso3166AdministrativeArea": "US-NY"
}

SelectionOptionData

Свойство Тип Необходимость Описание
id Строка Обязательно Совпадения с SelectionOption.id

Пример

В этом примере показан способ доставки, выбранный на странице оплаты.

{
  "id": "shipping-001"
}

OfferData

Этот объект содержит информацию о промокоде, введенном на странице оплаты.

Свойство Тип Необходимость Описание
redemptionCodes Массив Всегда существует Набор промокодов, введенных в платежный лист. Включает коды, которые уже были одобрены.

Пример

В примере ниже показан объект OfferData с массивом redemptionCodes.

"offerData": {
    "redemptionCodes": ["PROMOTIONALCODE"]
}

IntermediatePaymentMethodData

Этот объект содержит ограниченную информацию о выбранном способе оплаты для обратных вызовов разработчика.

Свойство Тип Необходимость Описание
type string Обязательно Тип способа оплаты. Для этого обратного вызова поддерживается только CARD.
info IntermediateCardInfo Необязательно Информация о выбранной карте. Указывается, только если type имеет значение CARD.

IntermediateCardInfo

Этот объект содержит ограниченную информацию о выбранной карте, которая используется в обратных вызовах разработчика.

Свойство Тип Необходимость Описание
billingAddress IntermediateAddress Необязательно Платежный адрес, связанный с картой. Заполняется, только если платежный адрес обязателен.
cardNetwork string Необязательно

Платежная система выбранной карты. Возвращаемые значения соответствуют формату allowedCardNetworks в CardParameters.

Это значение платежной системы не должно показываться покупателю.

cardFundingSource string Необязательно

Источник средств для выбранной платежной карты.

  • UNKNOWN
  • CREDIT
  • DEBIT
  • PREPAID