Сведения об объектах JSON

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

Объекты запросов

IsReadyToPayRequest

В этом объекте указываются поддерживаемые способы оплаты.

Свойство Тип Обязательное Описание
apiVersion Число Да Основной номер версии API. В этой спецификации используется значение 2.
apiVersionMinor Число Да Дополнительный номер версии API. В этой спецификации используется значение 0.
allowedPaymentMethods PaymentMethod[] Да

Поддержка одного или нескольких способов оплаты из числа доступных в Google Pay API.

Для определения готовности пользователя к оплате значение tokenizationSpecification не требуется. Для каждого поддерживаемого способа оплаты, заданного в PaymentMethod, должны быть заданы все обязательные свойства parameters.

existingPaymentMethodRequired Логическое значение Нет

Если это свойство имеет значение true, то метод класса isReadyToPay() возвращает значение , когда текущий пользователь готов совершить оплату с помощью одного или нескольких способов, указанных в allowedPaymentMethods.

Пример

Ниже показано, как настроить поддержку платежных карт и токенов для устройств Android из всех доступных платежных систем.

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "allowedPaymentMethods": [
    {
      "type": "CARD",
      "parameters": {
        "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
        "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
      }
    }
  ]
}

PaymentDataRequest

Этот объект содержит информацию о поддержке Google Pay API вашим приложением.

Свойство Тип Обязательное Описание
apiVersion Число Да Основной номер версии API. Для этой спецификации используется значение 2.
apiVersionMinor Число Да Дополнительный номер версии API. Для этой спецификации используется значение 0.
merchantInfo MerchantInfo Да Информация о продавце, запрашивающем платежные данные.
allowedPaymentMethods PaymentMethod[] Да Поддержка одного или нескольких способов оплаты из числа доступных в Google Pay API.
transactionInfo TransactionInfo Да Информация о том, будет ли транзакция авторизована исходя из согласия пользователя на эту транзакцию. Включает сведения об итоговой цене и ее статусе.
emailRequired Логическое значение Нет Установите значение true, если нужно запрашивать адрес электронной почты.
shippingAddressRequired Логическое значение Нет Установите значение true, если нужно запрашивать полный адрес доставки.
shippingAddressParameters ShippingAddressParameters Нет Ограничения, связанные с доставкой (если shippingAddressParameters имеет значение true).

Пример

В этом примере показано, как настроить поддержку платежных карт и токенов для устройств Android из всех доступных платежных систем. Токенизация карт выполняется через шлюз example. Запрос способа оплаты осуществляется для списания окончательной суммы 12,34 доллара США.

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "merchantInfo": {
    "merchantName": "Example Merchant"
  },
  "allowedPaymentMethods": [
    {
      "type": "CARD",
      "parameters": {
        "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
        "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
      },
      "tokenizationSpecification": {
        "type": "PAYMENT_GATEWAY",
        "parameters": {
          "gateway": "example",
          "gatewayMerchantId": "exampleGatewayMerchantId"
        }
      }
    }
  ],
  "transactionInfo": {
    "totalPriceStatus": "FINAL",
    "totalPrice": "12.34",
    "currencyCode": "USD"
  }
}

MerchantInfo

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

Свойство Тип Обязательное Описание
merchantId Строка Да Идентификатор продавца Google. Выдается после одобрения сайта специалистами Google. Указывается обязательно, если при инициализации PaymentsClient свойство environment устанавливается равным PRODUCTION. Подробнее о процедуре одобрения и получении идентификатора продавца Google рассказано в этой статье.
merchantName Строка Нет Название продавца в кодировке UTF-8. Оно отображается на странице оплаты. Если продавец не распознан, а также в среде TEST, на странице оплаты появляется сообщение Pay Unverified Merchant (Оплата неподтвержденному продавцу).
merchantOrigin Строка Нет

Полное доменное имя поставщика, который совершает запрос от имени продавца. Задается обязательно, если на сайте используется кнопка оплаты через Google Pay и запрашивается платежная информация от имени другого сайта. Как правило, это нужно при интеграции страницы оплаты с сайтом продавца.

Пример

Ниже показан объект merchantInfo с именем merchantName.

merchantInfo: {
    merchantName: "Example Merchant",
}

PaymentMethod

В этом объекте задается один или несколько способов оплаты, поддерживаемых Google Pay API и доступных для вашего приложения.

Свойство Тип Обязательное Описание
type Строка Да

Короткий идентификатор поддерживаемого способа оплаты. В настоящее время поддерживаются только значения CARD и PAYPAL.

parameters Объект Да Обязательные параметры указанного способа оплаты. Подробнее о допустимых значениях для способа оплаты CARD рассказано здесь. Также советуем прочитать информацию о допустимых значениях для способа оплаты PayPal: PAYPALParameters.
tokenizationSpecification PaymentMethodTokenizationSpecification Нет

Настройка аккаунта или поставщика механизма расшифровки для получения платежной информации.

Это свойство является обязательным для способа оплаты CARD.

Это свойство не действует, если оно является частью объекта IsReadyToPayRequest.

CARD

В этом примере показано, как настроить поддержку платежных карт и токенов для устройств Android из всех доступных платежных систем. Токенизация выполняется через шлюз example.

{
  "type": "CARD",
  "parameters": {
    "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
    "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
  },
  "tokenizationSpecification": {
    "type": "PAYMENT_GATEWAY",
    "parameters": {
      "gateway": "example",
      "gatewayMerchantId": "exampleGatewayMerchantId"
    }
  }
}
PAYPAL

Ниже показано, как представить PayPal в качестве допустимого способа оплаты.

{
  “type”: “PAYPAL”,
  parameters: {
  	"purchase_context": {
    	     "purchase_units": [{
        		"payee": {
          		      "merchant_id": "PAYPAL_ACCOUNT_ID"
                      	   }
       	       } ]
  	  }
    },
   “tokenizationSpecification”: {
	type: “DIRECT”  }
}

TokenizationSpecification

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

Свойство Тип Обязательное Описание
type Строка Да

Тип токенизации для способа оплаты, указанного в PaymentMethod. Для способа оплаты CARD используйте тип PAYMENT_GATEWAY или DIRECT . Для способа оплаты (PaymentMethod) PAYPAL используйте тип DIRECT без указания параметров.

parameters Объект Да Параметры, связанные с типом токенизации выбранного способа оплаты.

Шлюз

Если вы зададите для параметра type значение PAYMENT_GATEWAY, то сможете получать платежные данные и информацию о клиенте от платежного шлюза, использующего Google Pay API. При этом свойства parameters должны настраиваться согласно инструкциям шлюза. Как правило, они включают полученный от Google идентификатор шлюза и ваш идентификатор аккаунта шлюза.

Gateway Parameters and documents
ACI
  "gateway": "aciworldwide"
  "gatewayMerchantId": "YOUR_ENTITY_ID"

Developer docs

Adyen
  "gateway": "adyen"
  "gatewayMerchantId": "YOUR_MERCHANT_ACCOUNT_NAME"

Developer docs

Alfa-Bank
  "gateway": "alfabank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

APPEX
  "gateway": "epos"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Assist
  "gateway": "assist"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Биллинговые Системы
  "gateway": "billingsystems"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Blue Media
  "gateway": "bluemedia"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

BlueSnap
  "gateway": "bluesnap"
  "gatewayMerchantId": "YOUR_shopToken"

Developer docs

Braintree
  "gateway": "braintree"
  "braintree:apiVersion": "v1"
  "braintree:sdkVersion": "braintree.client.VERSION"
  "braintree:merchantId": "YOUR_BRAINTREE_MERCHANT_ID"
  "braintree:clientKey": "YOUR_BRAINTREE_TOKENIZATION_KEY"

Developer docs

Braspag
  "gateway": "cielo"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

CardConnect
  "gateway": "cardconnect"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Cathay United Bank
  "gateway": "cathaybk"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Chase Paymentech
  "gateway": "chase"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Checkout.com
  "gateway": "checkoutltd"
  "gatewayMerchantId": "YOUR_PUBLIC_KEY"

Developer docs

CloudPayments
  "gateway": "cloudpayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Computop
  "gateway": "computop"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Cybersource
  "gateway": "cybersource"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Datatrans
  "gateway": "datatrans"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Dotpay
  "gateway": "dotpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

EasyPay
  "gateway": "easypay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

EBANX
  "gateway": "ebanx"
  "gatewayMerchantId": "YOUR_PUBLIC_INTEGRATION_KEY"

Developer docs

eCard
  "gateway": "ecard"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

ECPay
  "gateway": "ecpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

No developer docs available

eGHL
  "gateway": "eghl"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

eSafe
  "gateway": "esafe"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

No developer docs available

Evo Payment Gateway
  "gateway": "evopaymentgateway"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

No developer docs available

Fat Zebra
  "gateway": "fatzebra"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

First Data
  "gateway": "firstdata"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Gestpay
  "gateway": "gestpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Global One Pay
  "gateway": "globalonepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

No developer docs available

Global Payments
  "gateway": "globalpayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

GMO Payment Gateway
  "gateway": "gmopg"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

GoPay
  "gateway": "gopay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

GP Webpay
  "gateway": "gpwebpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

No developer docs available

HiTrust
  "gateway": "hitrustpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

IMSolutions
  "gateway": "imsolutions"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

iPay88
  "gateway": "ipay88"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

iQmetrix
  "gateway": "iqmetrixpaymentservicesgateway"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

JudoPay
  "gateway": "judopay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

No developer docs available

LogPay
  "gateway": "logpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Lyra
  "gateway": "lyra"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Mastercard Payment Gateway Services
  "gateway": "mpgs"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

MOBI.Money
  "gateway": "mobimoney"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Molpay
  "gateway": "molpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

No developer docs available

Moneris
  "gateway": "moneris"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Moneta
  "gateway": "moneta"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

No developer docs available

Monext
  "gateway": "monext"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Money.Mail.Ru
  "gateway": "moneymailru"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Multicarta
  "gateway": "mulitcarta"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Mundipagg
  "gateway": "mundipagg"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

MyCheck
  "gateway": "mycheck"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

MyPay
  "gateway": "mypay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

No developer docs available

Newebpay
  "gateway": "newebpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Nexi
  "gateway": "nexi"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

NMI
  "gateway": "creditcall"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Nuvei
  "gateway": "nuvei"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

PayLane
  "gateway": "paylane"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Payler
  "gateway": "payler"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Paysafe
  "gateway": "paysafe"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Payture
  "gateway": "payture"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

PayU
  "gateway": "payu"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Portmone
  "gateway": "portmonecom"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Przelewy24
  "gateway": "przelewy24"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

RBK.money
  "gateway": "rbkmoney"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Redsys
  "gateway": "redsys"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Sberbank
  "gateway": "sberbank"
  "gatewayMerchantId": "YOUR_ORGANIZATION_NAME"

Developer docs

Sipay
  "gateway": "sipay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Softbank Payment Service
  "gateway": "sbps"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Solid
  "gateway": "solid"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Sony Payment Services
  "gateway": "sonypaymentservices"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Spreedly
  "gateway": "spreedly"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Square
  "gateway": "square"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Stripe
  "gateway": "stripe"
  "stripe:version": "2018-10-31"
  "stripe:publishableKey": "YOUR_PUBLIC_STRIPE_KEY"

Developer docs

TapPay
  "gateway": "tappay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Tinkoff
  "gateway": "tinkoff"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

theMap
  "gateway": "themap"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

TPay.com
  "gateway": "tpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Tranzzo
  "gateway": "tranzzo"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Uniteller
  "gateway": "uniteller"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Vantiv
  "gateway": "vantiv"
  "vantiv:merchantPayPageId": "YOUR_PAY_PAGE_ID"
  "vantiv:merchantOrderId": "YOUR_ORDER_ID"
  "vantiv:merchantTransactionId": "YOUR_TRANSACTION_ID"
  "vantiv:merchantReportGroup": "*web"

Developer docs

Veritrans
  "gateway": "veritrans"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Vindicia
  "gateway": "vindicia"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

WayForPay
  "gateway": "wayforpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Wirecard
  "gateway": "wirecard"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Worldnet
  "gateway": "worldnet"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Developer docs

Worldpay
  "gateway": "worldpay"
  "gatewayMerchantId": "YOUR_WORLDPAY_MERCHANT_ID"

Developer docs

Yandex.Checkout
  "gateway": "yandexcheckout"
  "gatewayMerchantId": "YOUR_SHOP_ID"

Developer docs

Direct

Если для параметра type задано значение DIRECT, то ответ будет расшифровываться на ваших серверах. При этой конфигурации действуют дополнительные требования Google к безопасности данных и стандарты PCI DSS.

Свойство Тип Обязательное Описание
protocolVersion Строка Да Версия протокола шифрования/подписи, допустимая в ответе. В настоящее время поддерживается значение ECv2. Подробнее о доступных протоколах шифрования и подписи рассказывается в документе Криптография платежных данных для продавцов.
publicKey Строка Да Открытый ключ на эллиптической кривой, закодированный по стандарту Base64. Более подробную информацию можно найти в документации о криптографии для продавцов, в разделе Формат открытого ключа шифрования.
Пример

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

"tokenizationSpecification": {
  "type": "DIRECT",
  "parameters": {
    "protocolVersion": "ECv2",
    "publicKey": "BOdoXP1aiNp.....kh3JUhiSZKHYF2Y="
  }
}

CardParameters

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

Свойство Тип Обязательное Описание
allowedAuthMethods Строка[] Да

Поддерживаемые поля для аутентификации транзакций по карте:

  • PAN_ONLY – метод аутентификации для платежных карт, данные которых хранятся в аккаунте Google. Возвращает номер счета (PAN), а также месяц и год окончания срока действия.
  • CRYPTOGRAM_3DS – метод аутентификации для карт, данные которых хранятся в виде токенов для устройств Android. Возвращает криптограмму 3-D Secure (3DS), сгенерированную на устройстве.
allowedCardNetworks Строка Да

Одна или несколько из поддерживаемых вами платежных систем, доступных в Google Pay API.

  • AMEX
  • DISCOVER
  • INTERAC
  • JCB
  • MASTERCARD
  • VISA
allowPrepaidCards Логическое значение Нет Если предоплаченные карты не поддерживаются, установите значение false. По умолчанию предоплаченные карты поддерживаются для выбранных вами платежных систем.
billingAddressRequired Логическое значение Нет Если указывать платежный адрес обязательно, установите значение true. Платежный адрес запрашивается, только если он требуется для обработки транзакции. Запрос дополнительных данных усложняет процедуру покупки и может привести к снижению коэффициента конверсии. Запрашивайте платежный адрес только в том случае, если он действительно необходим для совершения транзакции.
billingAddressParameters BillingAddressParameters Нет Поля, которые возвращаются, если для параметра billingAddressRequired выбрано значение true.

Пример

Ниже приведен пример кода, с помощью которого можно настроить поддержку всех доступных типов карт и методов их аутентификации.

{
  "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
  "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
}

BillingAddressParameters

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

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

Формат платежного адреса для совершения транзакции:

  • MIN – имя, код страны и почтовый индекс (по умолчанию).
  • FULL – имя, почтовый адрес, населенный пункт, регион, код страны и почтовый индекс.
phoneNumberRequired Логическое значение Нет Если для обработки транзакции необходим номер телефона, установите значение true.

Пример

Ниже приведен запрос краткой версии платежного адреса (значение по умолчанию).

{
  "format": "MIN"
}

ShippingAddressParameters

Этот объект позволяет настроить ограничения для доставки.

Свойство Тип Обязательное Описание
allowedCountryCodes Строка[] Нет Значения кодов стран, в которые осуществляется доставка, в соответствии со стандартом ISO 3166-1 alpha-2. Если они не указаны, пользователь может вводить любой адрес доставки.
phoneNumberRequired Логическое значение Нет Если указывать номер телефона обязательно, установите значение true.

Пример

Ниже приведен запрос адреса доставки в США.

{
  "allowedCountryCodes": ["US"]
}

TransactionInfo

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

Свойство Тип Обязательное Описание
currencyCode Строка Да Буквенный код валюты в соответствии со стандартом ISO 4217.
countryCode Строка Нет (указывается только для стран ЕЭЗ) Код страны, где обрабатывается транзакция, в соответствии со стандартом ISO 3166-1 alpha-2. Это свойство является обязательным для продавцов, которые находятся в странах Европейской экономической зоны (ЕЭЗ).
totalPriceStatus Строка Да

Статус итоговой цены.

  • NOT_CURRENTLY_KNOWN. Используется для проверки возможности оплаты. Не использовать, если транзакция обрабатывается в стране ЕЭЗ
  • ESTIMATED. Итоговая цена может меняться в зависимости от переданных в ответе деталей (например, платежный адрес находится в стране, где взимается налог с продаж).
  • FINAL. Итоговая цена не отличается от суммы, показанной покупателю.
totalPrice Строка Нет

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

Формат строки должен соответствовать формату регулярного выражения: ^[0-9]+(\.[0-9][0-9])?$

displayItems DisplayItem[] Нет Все доступные списания, связанные с текущим запросом. Все доступные списания, связанные с текущим запросом. Заполняется, только если используется авторизация платежей или динамическое обновление цен. Поле является обязательным, если включена авторизация платежей или динамическое обновление цен.
totalPriceLabel Строка Нет Пользовательский ярлык с итоговой ценой отображаемых товаров.
checkoutOption Строка Нет

Позволяет настроить текст кнопки отправки на странице оплаты Google Pay.

  • DEFAULT – стандартный текст для выбранного статуса totalPriceStatus (по умолчанию).
  • COMPLETE_IMMEDIATE_PURCHASE – оплата указанным способом сразу после того, как покупатель подтвердит выбранные им параметры. Этот вариант доступен, только если для totalPriceStatus установлено значение FINAL.

Пример итоговой цены

Ниже приведен пример итоговой цены в долларах США.

{
  displayItems: [
    {
      label: "Subtotal",
      type: "SUBTOTAL",
      price: "11.00",
    },
    {
      label: "Tax",
      type: "TAX",
      price: "1.00",
    }
  ],
    currencyCode: "USD",
    countryCode: "US",
    totalPriceStatus: "FINAL",
    totalPrice: "12.00",
    totalPriceLabel: "Total",
    checkoutOption: "DEFAULT",
    newShippingOptions: {
 	    defaultSelectedOptionId: "shipping-001",
      shippingOptions: [
        {
          "id": "shipping-001",
          "label": "Free: Standard shipping",
          "description": "Free Shipping delivered in 5 business days."
        }
      ]
    },
    error: {
   	  reason: "SHIPPING_ADDRESS_UNSERVICEABLE",
      message: "Cannot ship to the selected address",
      intent: "SHIPPING_ADDRESS"
    }
}

PayPalParameters

Этот объект позволяет определить параметры PayPal.

Свойство Тип Обязательное Описание
purchase_context PurchaseContext Да Описание, составленное из информации о заказе.

Пример

Ниже показано, как включить поддержку оплаты через PayPal.

{
  "purchase_context": {
    "purchase_units": [
      {
        "payee": {
          "merchant_id": "PAYPAL_ACCOUNT_ID"
        }
      }
    ]
  }
}

PurchaseContext

В этом объекте содержатся сведения о заказе.

Свойство Тип Обязательное Описание
purchase_units PurchaseUnit[] Да Сведения о договоре между продавцом и покупателем.

PurchaseUnit

Этот объект описывает договор между покупателем и продавцом в системе PayPal. Подробнее об объекте purchase_unit рассказывается в документации по API-интерфейсам PayPal.

Свойство Тип Обязательное Описание
payee Payee Да Получатель средств по транзакции.

Payee

В этом объекте содержится информация о продавце – получателе средств. Подробнее об объекте payee написано в документации по API-интерфейсам PayPal.

О других поддерживаемых дополнительных параметрах говорится в этом разделе документации PayPal.

Пример

Ниже показано, как включить поддержку оплаты через PayPal.

{
  “type”: “PAYPAL”,
  parameters: {
  	"purchase_context": {
    	     "purchase_units": [{
        		"payee": {
          		      "merchant_id": "PAYPAL_ACCOUNT_ID"
                      	   }
       	       } ]
  	  }
    },
   “tokenizationSpecification”: {
	type: “DIRECT”  }
}

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

Объекты ответов – это объекты, возвращаемые методами клиента Google Pay API.

PaymentData

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

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

Пример

Ниже показано, как выглядит результат запроса в Google Pay API версии 2.0, если на странице оплаты выбран способ оплаты CARD. Токен создан для шлюза example.

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

PaymentMethodData

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

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

Отображающееся для пользователя описание выбранного способа оплаты.

.
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 Строка Да Сведения о карте. Это значение обычно содержит последние четыре цифры выбранного номера счета.
cardNetwork Строка Да

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

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

billingAddress Address Нет Платежный адрес, связанный с выбранным способом оплаты. Указывается, если для параметра billingAddressRequired в объекте CardParameters выбрано значение true.

Пример

Пример карты, которая относится к платежной системе Visa:

{
  "cardNetwork": "VISA",
  "cardDetails": "1234"
}

PaymentMethodTokenizationData

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

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

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

Пример

Так выглядит токенизированный ответ, подготовленный для шлюза example.

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

Address

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

Адрес может быть возвращен в формате MIN, если для параметра billingAddressFormat выбрано значение . Адрес доставки отображается в формате FULL. Все свойства ответа в формате MIN содержатся и в ответе в формате FULL.

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

Пример

Пример адреса в США, состоящего из нескольких строк.

{
  "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": ""
}