Перейти к содержанию

Google Pay на собственной платежной странице

Если вы хотите разместить кнопку Google Pay для приема платежей через собственную платежную страницу на своем сайте, вам необходимо выполнить следующее:

  1. Зарегистрироваться в Google Pay Business Console. Ознакомиться и привести свой сайт в соответствие с условиями и правилами использования Google Pay, следовать правилам использования бренда при размещении кнопки Google Pay.

  2. Выбрать и использовать подходящий способ интеграции:

Регистрация в Google Pay Business Console

Перед началом приема платежей Google Pay в рабочем режиме вам необходимо зарегистрировать ваш сайт в Google Pay Business Console и получить одобрение процесса покупки от Google.

Для этого необходимо:

  1. Авторизоваться в Google Pay Business Console.
  2. Нажать Google Pay API на боковой панели.
  3. Нажать Add website в блоке Integrate with your website.
  4. Заполнить форму регистрации. Вам потребуется загрузить скриншоты процесса оплаты через Google Pay.

Google Pay для вебсайтов с использованием библиотеки bePaid

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

Выполните следующие действия:

1. Установите скрипт для подключения библиотеки к сайту:

<script type="text/javascript" src="https://js.bepaid.by/widget/google_pay.js"></script>

2. Разместите блок на веб-странице для отображения кнопки Google Pay:

<div id="google-pay-button"></div>

3. Добавьте следующий JavaScript-код для осуществления платежа через Google Pay. Запрос на обработку платежа будет совершаться автоматически.

Пример кода с использованием токена
<script defer>
      const params = {
        checkout_url: "https://checkout.bepaid.by",
        containerId: "google-pay-button",
        token: "{ТОКЕН ПЛАТЕЖА}",
        onSuccess: (response) => {},
        onInitalError: (error) => {},  
      };
      new GooglePay(params);
</script> 
Пример кода с использованием публичного ключа
<script defer>
      const params = {
        checkout_url: "https://checkout.bepaid.by",
        containerId: "google-pay-button",
        public_key: "{ПУБЛИЧНЫЙ КЛЮЧ МАГАЗИНА}",
        checkout: {
          transaction_type: "payment",
          order: {
            currency: "USD",
            amount: 100,
            description: "Test description",
          },
          test: true,
        },
        onSuccess: (response) => {},
        onInitalError: (error) => {},
      };
      new GooglePay(params);
</script> 
Параметр Тип Описание
checkout_url * обязательный
string https://checkout.bepaid.by
containerId * обязательный
string ID контейнера, к которому будет добавлена кнопка Google Pay.
token * обязательный
string Для получения токена выполнить запрос, описание которого размещено на странице Токен платежа.
public_key * условно обязательный
string Публичный ключ магазина. Обязателен, если не прислан параметр token.
onSuccess callback function Параметр для обработки автоматических уведомлений о результатах транзакции.
onInitalError callback function Параметр для обработки автоматических уведомлений об ошибках при инициализации оплаты.

Google Pay для вебсайтов с использованием Google Pay API

При собственной реализации интеграции для приема платежей Google Pay на сайте вам необходимо:

1. Получить платежный токен Google Pay, используя Google Pay API интеграцию. Для обработки платежа системой bePaid при запросе токена у Google (шаги 2 - 4 Руководства Google Pay API) вам необходимо использовать следующие параметры:

Параметр Тип Описание
type * обязательный
string payment_gateway
gateway * обязательный
string ``
gatewayMerchantId * обязательный
integer ID магазина в системе bePaid.
allowedCardNetworks * обязательный
array visa, masterCard
allowedCardAuthMethods array PAN_ONLY, CRYPTOGRAM_3DS
BillingAddressParameters object Параметры billing address не являются обязательными для процессинга через bePaid Gateway API.
Пример кода для параметров запроса токена Google Pay
const baseRequest = {
  apiVersion: 2,
  apiVersionMinor: 0
};

const tokenizationSpecification = {
  type: 'payment_gateway',
  parameters: {
    'gateway': '{psp.google_pay.gateway_id}',
    'gatewayMerchantId': 'exampleGatewayMerchantId'
  }
};

const allowedCardNetworks = ["MASTERCARD", "VISA"];

const allowedCardAuthMethods = ["PAN_ONLY", "CRYPTOGRAM_3DS"];
Пример ответа Google Pay API version 2.0 при оплате картой
{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "paymentMethodData": {
    "type": "CARD",
    "description": "Visa •••• 1234",
    "info": {
      "cardNetwork": "VISA",
      "cardDetails": "1234"
    },
    "tokenizationData": {
      "type": "PAYMENT_GATEWAY",
      "token": "examplePaymentMethodToken"
    }
  }
}

Запрос

2. Отправить запрос оплаты, авторизации или взимания платы, в котором необходимо передать зашифрованный токен Google Pay как значение параметра request.credit_card.token в формате, описанном ниже.

Формат зашифрованного токена Google Pay при передаче его в качестве токена карты

Передавайте зашифрованный токен Google Pay в запросах в качестве токена карты в формате $begateway_google_pay_1_0_0$<base64_PaymentToken_here>, где:

  • $begateway_google_pay_1_0_0$ - обязательный префикс при передаче зашифрованного токена Google Pay;
  • <base64_PaymentToken_here> - это полученный от Google Pay токен (paymentMethodData.tokenizationData.token для Google Pay API version 2.0) в формате JSON, сконвертированный в формат Base64-strict.

Для рекуррентных платежей или платежей по сохраненной карте, передайте параметр request.additional_data.contract в запросе оплаты, авторизации или взимания платы, чтобы получить в ответ токен карты для последующих операций оплаты без участия пользователя.

Пример запроса оплаты с зашифрованным токеном Google Pay
{
  "request": {
    "amount": 100,
    "currency": "USD",
    "description": "Google Pay test transaction",
    "tracking_id": "your_uniq_number",
    "credit_card": {
      "token": "$begateway_google_pay_1_0_0$eyJzaWduYXR1cmUiOiJNRVlDSVFES2R2dFlEVFdNemh1MVhNanNTdlgxZzJFek1hdFN5Z3J3QVU0cFpyd2tnUUloQUlEMzRtUGdMa1pRU1ZvbUptSjNyM3NKZ1ZveFc5eVpIUnR6QkVjOVZiTHIiLCJpbnRlcm1lZGlhdGVTaWduaW5nS2V5Ijp7InNpZ25lZEtleSI6IntcImtleVZhbHVlXCI6XCJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUV5cUdEYUxLN3lvVWJGWVRFWnQzaHhPTTlPckZacFUyenJJTXJ3WWhuV25HbksraDkvWWFHNllnczBUcWp0eGhFcExDUVl1RVpuTFM5S3RlN0xWRlJaUVxcdTAwM2RcXHUwMDNkXCIsXCJrZXlFeHBpcmF0aW9uXCI6XCIxNTk4NDg4NzUxMTg5XCJ9Iiwic2lnbmF0dXJlcyI6WyJNRVFDSUJmRWdXVmtxN0FtSlp2WmhpQ3hKazBPNUV6Z042NWt4dXZmb2dSM3YxT1dBaUFnd1VnMXZuWGFlK2JXM0NtbWhvRFEvTFFIcG9leUZINFNGQk9jOXBVeS93XFx1MDAzZFxcdTAwM2QiXX0sInByb3RvY29sVmVyc2lvbiI6IkVDdjIiLCJzaWduZWRNZXNzYWdlIjoie1wiZW5jcnlwdGVkTWVzc2FnZVwiOlwiY1BkQmZwbjJpa3dSSThVYWIzQTIrM0lIVitQMEZSMlFzbjNwTG9FK2NYeTZiMnE4V2R4S1gyWi9QY3M4b3JMc0toL2FsT05HZmE1RzJmMkVTK0xjNWVEWnc0YlN5aXFUb09XK2NkQjVLNFNSUUVFSkV2WitoanVvUmVINU8zakZxUXhNYk44V3V5aXlrMzlUQnZyUmQ4MXptNEEvOVkrOEdFU1NDNVhSRUd1Skk1Y2VoRzZKUDZBVnArUnpmZVAzM09INTd1dWlVdldYamsvQXZUb0VmUXprTDM3ZUJKdFI0eWRTWnhNam9zcFN5cU5CenlKZDk3RDNydkZMRmdoZGdrQ1ozMEZRbDc4NGdBelpQVVhkVDBMNW5WZnFXNGxZMHU3VTdiRGxNekxYdWErcTdZU2JQOWFtN0Z0Y2F2LzFKUjBvM1Q2clYzR1ZDdjQ1Q3lQclI1NkN0aU4xZUdONmxsUlRuTDhVMVdZY2JOQWJLQlRkTnhKTlljN2FMQTZCaUYwc01LQWdid2ltK2U5UWR2UzV6ZDJwcVJ1ZTJiYkRsVnBsdSs3ZE1WMWlJTVpVQ3JYRHFROHE3RzQvK3lLWmp6dHk1RDlYS29aSVZzeXFOUFlQTnJaRDdJQ0w5QVxcdTAwM2RcXHUwMDNkIiwiZXBoZW1lcmFsUHVibGljS2V5IjoiQklpOTRmUUhGV0NVVWYrWms0cHdLWEJXTlc5a0d5WTlJQkJrb3ZqZS9kNkJULzZaMjdTeURueFFGS0xOTWRtaUZZcXhkRko3clNkeTRqMTMrNTM3cTRJXFx1MDAzZCIsInRhZyI6InpwZXQ1SHVmbk01WXJOWHdQSjRQQ1lBWU1MeG4vMzNZaDkzNzhLZU1Ba3dcXHUwMDNkIn0ifQ=="
    }
  }
}

Info

В проекте Google Pay Server Demos вы также можете посмотреть JavaScript-код примера запроса на проведение оплаты в систему bePaid с токеном Google Pay. Дополнительно этот проект можно использовать для тестирования интеграции.

Ответ

Ответ на запрос оплаты по токену Google Pay будет возвращен вместе с его статусом и будет полностью соответствовать ответам операций оплаты или авторизации.