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

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 на сайте Вы можете воспользоваться библиотекой, разработанной PayLink. Она совместима по параметрам и поведению с библиотекой платежного виджета.

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

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

<script type="text/javascript" src="https://js.paylink.kz/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.paylink.kz",
        containerId: "google-pay-button",
        token: "{ТОКЕН ПЛАТЕЖА}",
        onSuccess: (response) => {},
        onInitalError: (error) => {},  
      };
      new GooglePay(params);
</script> 
Пример кода с использованием публичного ключа
<script defer>
      const params = {
        checkout_url: "https://checkout.paylink.kz",
        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.paylink.kz
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 интеграцию. Для обработки платежа системой PayLink при запросе токена у Google (шаги 2 - 4 Руководства Google Pay API) вам необходимо использовать следующие параметры:

Параметр Тип Описание
type * обязательный
string payment_gateway
gateway * обязательный
string ``
gatewayMerchantId * обязательный
integer ID магазина в системе PayLink.
allowedCardNetworks * обязательный
array visa, masterCard
allowedCardAuthMethods array PAN_ONLY, CRYPTOGRAM_3DS
BillingAddressParameters object Параметры billing address не являются обязательными для процессинга через PayLink 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-код примера запроса на проведение оплаты в систему PayLink с токеном Google Pay. Дополнительно этот проект можно использовать для тестирования интеграции.

Ответ

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