Научитесь принимать платежи при помощи Google Pay™.
Инструкция по подключению
Данная инструкция предназначена для подключения возможности оплаты через Google Pay на своей странице оплаты при взаимодействии по API. При таком способе интеграции страница оплаты должна соответствовать определенным требованиям, в том числе работать через https и отвечать требованиям Google Pay™:
Принцип работы с сервисом
Нажав на кнопку Google Pay, пользователь переходит на страницу, где указаны способы оплаты и адреса доставки, сохраненные в его аккаунте Google. Здесь пользователь может быстро выбрать способ оплаты.
Как происходит процесс оплаты:
- Нажав кнопку Google Pay, пользователь переходит на страницу со списком доступных способов оплаты и выбирает нужный;
- Google Pay безопасно передает токен, соответствующий указанному способу оплаты, на ваш сайт;
- Ваш сайт отправляет своему серверу токен и другие детали платежа;
- Сервер обрабатывает данные и передает токен поставщику платежных услуг.
Платёж через API
Для работы через API компании необходимо наличие сертификации PCI DSS.
При регистрации Вам будут выданы данные ниже, которые нужно будет использовать при проведении платежа:
- MerchantID – идентификатор магазина
- ClientID – идентификатор клиента
- ClientSecret – секретный ключ
Получение токена для проведения оплаты
URL POST https://testoauth.homebank.kz/epay2/oauth2/token
Запрос
grant_type: "client_credentials" scope: "payment" client_id: "ClientID" client_secret: "ClientSecret" invoiceID: "Номер заказа" amount: 100 currency: "KZT" terminal: "MerchantID"
Ответ
{
"access_token":"DCEB8O_ZM5U7SO_T_U5EJQ",
"expires_in": 7200,
"scope": "payment",
"token_type": "Bearer"
}
Дополнительно прикладываем ссылки:
https://testepay.homebank.kz/api/payment/cryptopay -> Test URL https://epay-api-staging.homebank.kz/api/payment/cryptopay –> Staging URL https://epay-api.homebank.kz/api/payment/cryptopay -> Prod URL
Заголовок запроса
Content-Type: application/json Authorization: Bearer <code> DCEB8O_ZM5U7SO_T_U5EJQ </code>
Request JSON
{
"amount": 100.0,
"currency": "KZT",
"name": "",
"invoiceId": "",
"description": "",
"accountId": "",
"email": "",
"phone": "",
"backLink": "",
"failureBackLink": "l",
"postLink": "",
"failurePostLink": "",
"language": "",
"paymentType": "googlePay",
"googlePay": {
"apiVersionMinor": 0,
"apiVersion": 2,
"paymentMethodData": {
"description": "Visa •••• 1111",
"tokenizationData": {
"type": "DIRECT",
"token": "{\"signature\":\"MEUCIQCg8EVRDoaFCClQt/B4P85kaI0o01Te7PtzK4geb020NgIgH/4QjV0g90wiSaIp5j2khIUehyBra5EBUYW4dRi9zWw\\u003d\",\"intermediateSigningKey\":{\"signedKey\":\"{\\\"keyValue\\\":\\\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEiPFGsUB3r5u94GfMb/qudvqnUm1ChMQJKb9DII454LnSflKA2CmwSCofunjyme+3YFEt58fQEhMCQTrfbJNSCA\\\\u003d\\\\u003d\\\",\\\"keyExpiration\\\":\\\"1650607298547\\\"}\",\"signatures\":[\"MEQCICLflkEi/5Gcf+yZVeoyqSgpobNYrTbfU8RYWooXoGMPAiAdeWeuPw5PMNCJynZN+2/AzHKEujn5x8DWb6nqwD0BdA\\u003d\\u003d\"]},\"protocolVersion\":\"ECv2\",\"signedMessage\":\"{\\\"encryptedMessage\\\":\\\"YDpsNtp8w1jnvnW1O6OBVjlX4p/cw+060kxrdHU3hOo5Dhq0UeO/2Pk6Y/lOpSq6xHgPQRM1BcalJU9QxKt6DjVm4mRx4CjZjiUu283ktfghFEmitR69HiTmvb1kRE1YAjcUpFadfoM9SsGC5YrJEe/5eRybwkn6IcSgJZZZ9CLqaw7qAjIZkZGbjNrSy9QdESDUdzcN5A7GMOWRMuQC/k9BmsBkvT7SLzikasPhLPP8z56J8E+m01nNBE5BCPhrLyu/aGoJNSdIJoRJoN88b//mS5b+TKsEIglGej8w54lpwpPr8GbqSPePHooN53QCkplY2t+LxO2Pr4jHEMb/ZaTQ36+58ZqUfV4jaYcds1SLuLMTns/3hnuTVZgg1zfBMQsNgZE5niAKPybL/RaRavRDX/GK4kVNjgsF1QWs8z2aOlBsx9krppHdthE\\\\u003d\\\",\\\"ephemeralPublicKey\\\":\\\"BP3QeTVZ6wpe3D83/OzF5A5FoNHDDnvBffeR8PAagr5PZP55SNR237a+QPyKUYmvKPYXe1R0I61GVK09LvkeGWE\\\\u003d\\\",\\\"tag\\\":\\\"Lq8NsPTu1rdHhthYFUtzptcV7aD7ViLVD8UddD8hNzY\\\\u003d\\\"}\"}"
},
"type": "CARD",
"info": {
"cardNetwork": "VISA",
"cardDetails": "1111"
}
}
}
}
Действия продавца, необходимые для подключения Google Pay к вэб-странице
Перед тем, как принимать платежи с помощью Google Pay, ознакомьтесь со всеми требованиями и условиями со стороны Google.
Подключение веб-страницы к Googel Pay API:
Документация по подключению:
Рекомендации для подключения веб-страницы к Google Pay:
Документация по разбору полезной нагрузки
Набор тестовых карт
Действия продавца, необходимые для подключения Google Pay к приложению
Перед тем, как принимать платежи с помощью Google Pay, обязательно ознакомьтесь со всеми требованиями и условиями со стороны Google.
Подключение Android приложения к Google Pay API:
Документация по подключению:
Рекомендации для подключения Android приложения к Google Pay:
Параметры для платёжных данных
В качестве параметров необходимо указать:
Доступные методы платежа: const allowedCardAuthMethods = ['PAN_ONLY', 'CRYPTOGRAM_3DS'];
Тип токенизации - PAYMENT_GATEWAY
Параметр gateway halykbank и gatewayMerchantId – можно использовать для Вашего тестирования, но для реальных платежей этот параметр должен быть получен у вашего менеджера:
const tokenizationSpecification = { type: "PAYMENT_GATEWAY", parameters: { 'gateway': "halykbank", 'gatewayMerchantId': "halykbank"
Пример настройки запросов
1. Параметры для запуска запроса:
isReadyToPay
const readyToPayRequest = {
"apiVersion": 2,
"apiVersionMinor": 0,
"allowedPaymentMethods": [
{
"type": "CARD",
"parameters": {
"allowedAuthMethods": [
"PAN_ONLY",
"CRYPTOGRAM_3DS"
],
"allowedCardNetworks": [
"MASTERCARD",
"VISA"
]
}
}
]
}
2. Параметры для запуска запроса:
loadPaymentData
const paymentDataRequest = {
"apiVersion": 2,
"apiVersionMinor": 0,
"allowedPaymentMethods": [
{
"type": "CARD",
"parameters": {
"allowedAuthMethods": [
"PAN_ONLY",
"CRYPTOGRAM_3DS"
],
"allowedCardNetworks": [
"MASTERCARD",
"VISA"
]
},
"tokenizationSpecification": {
"type": "PAYMENT_GATEWAY",
"parameters": {
"gateway": "halykbank",
"gatewayMerchantId": "halykbank"
}
}
}
],
"transactionInfo": {
"countryCode": "RU",
"currencyCode": "RUB",
"totalPriceStatus": "FINAL",
"totalPrice": "1.00"
}
Сценарий оплаты
- Клиент выбирает способ оплаты Google Pay.
- Клиент выбирает карту или добавляет ее если нет сохраненных карт.
- Google Pay возвращает в приложение маскированные карточные данные.
- Приложение отображает клиенту маскированные данные карты, добавленной в Google Pay.
- Клиент подтверждает оплату с помощью добавленной в Google Pay карты.
- Приложение запрашивает Google Pay зашифрованные карточные данные.
- Google шифрует данные, используя открытый ключ - соответствующий ему закрытый ключ расположен в платёжном шлюзе. Открытый ключ формируем сами и отправляем в Google (https://developers.google.com/pay/api/web/guides/resources/payment-data-cryptography?hl=ru )
- Google возвращает в приложение зашифрованные данные о платеже.
- Приложение отправляет в платёжный шлюз запрос на оплату Google Pay, указывая полученный от системы Google Pay токен.
- Платёжный шлюз расшифровывает полученный токен и производит оплату.
- При условии, что карта вовлечена в 3-D Secure, платёжный шлюз отправляет ответ на запрос на оплату, в котором содержится ссылка перенаправления на сервер где мы вводим данные по 3D.
- Пользователь переходит на сайт и аутентифицируется.
- После успешной аутентификации пользователя перенаправляют с сайта ACS на старницу платёжного шлюза.
- Платёжный шлюз возвращает результат оплаты в приложение.
- Приложение отображает результат оплаты клиенту.
Все продавцы должны соблюдать Политику использования API Google Play и принимать условия, определенные в Условиях предоставления услуг API Google Pay. https://payments.developers.google.com/terms/aup https://payments.developers.google.com/terms/sellertos