Google Pay на собственной платежной странице
Если вы хотите разместить кнопку Google Pay для приема платежей через собственную платежную страницу на своем сайте, вам необходимо выполнить следующее:
-
Зарегистрироваться в Google Pay Business Console. Ознакомиться и привести свой сайт в соответствие с условиями и правилами использования Google Pay, следовать правилам использования бренда при размещении кнопки Google Pay.
-
Выбрать и использовать подходящий способ интеграции:
Регистрация в Google Pay Business Console
Перед началом приема платежей Google Pay в рабочем режиме вам необходимо зарегистрировать ваш сайт в Google Pay Business Console и получить одобрение процесса покупки от Google.
Для этого необходимо:
- Авторизоваться в Google Pay Business Console.
- Нажать Google Pay API на боковой панели.
- Нажать Add website в блоке Integrate with your website.
- Заполнить форму регистрации. Вам потребуется загрузить скриншоты процесса оплаты через 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 будет возвращен вместе с его статусом и будет полностью соответствовать ответам операций оплаты или авторизации.