Google Pay by API
Для работы через API коммерсанту необходимо зарегистрироваться в системе GOOGLE и уметь расшифровывать данные, которые, в последствии необходимо будет передавать в систему EPAY Для работы по методу Pay by GOOGLE, компании необходимо наличие сертификации PCI DSS
Интеграцию возможно проводить только в продуктовой среде
ВНИМАНИЕ:
PAN_ONLY: Этот метод аутентификации связан с платежными картами, хранящимися в файле с учетной записью пользователя Google. Возвращаемые платежные данные включают номер личного счета (PAN) с указанием месяца и года истечения срока действия.
CRYPTOGRAM_3DS: Этот метод аутентификации связан с картами, хранящимися в виде токенов устройства Android. Возвращаемые платежные данные включают криптограмму 3D Secure (3DS), сгенерированную на устройстве
- TerminalID – идентификатор магазина
- ClientID – идентификатор клиента
- ClientSecret – секретный ключ
Данные для проведения тестовых платежей:
url | Hеобходимо использовать продуктовые данные |
Hеобходимо использовать продуктовые данные | |
password | Hеобходимо использовать продуктовые данные |
ClientID | Hеобходимо использовать продуктовые данные |
ClientSecret | Hеобходимо использовать продуктовые данные |
TerminalID | Hеобходимо использовать продуктовые данные |
Получение токена для проведения оплаты (для каждой операции необходимо получать и использовать оригинальный токен)
PROD URL POST https://epay-oauth.homebank.kz/oauth2/token
Запрос:
grant_type: "client_credentials" scope: "webapi usermanagement email_send verification statement statistics payment" client_id: "ClientID" client_secret: "ClientSecret" invoiceID: "Номер заказа" amount: 100 currency: "KZT" terminal: "67e34d63-102f-4bd1-898e-370781d0074d"
Ответ:
{
"access_token": "DCEB8O_ZM5U7SO_T_U5EJQ",
"expires_in": 7200,
"scope": "webapi usermanagement email_send verification statement statistics payment",
"token_type": "Bearer"
}
Входящие параметры:
Название поля | Oписание | Обязательное/не обязательно |
---|---|---|
amount | Cумма платежа | Oбязательное |
currency | Bалюта | Oбязательное |
name | Имя держателя карты | Oбязательное |
сryptogram | Закриптованные параметры платежной карты | Oбязательное |
invoiceId | Номер заказа в магазине | Обязательное |
description | В данном поле передается информация о товарах или услугах, за которые производится оплата | |
accountId | Идентификатор клиента в системе коммерсанта или другой доп. параметр на усмотрение коммерсанта | необязательно |
Еmail клиента | Необязательное | |
phone | Телефон клиента | Необязательно |
postLink | Линк для отправки результата авторизации в магазин | Необязательное |
failurePostLink | Линк для отправки неудачного результата авторизации либо информации об ошибке в магазин | Необязательно |
cardSave | Параметр сохранение карты, true - сохранить карту, false - не сохранять, boolean type | Обязательное |
Подготовка криптограммы:
Структура криптограммы:
{ hpan string expDate string cvc string terminalId string }
Пример:
{ "hpan":"GOOGLEToken", "expDate":"mmyy", "cvc":"", "terminalId":"67e34d63-102f-4bd1-898e-370781d0074d" }
Структура должна быть зашифрована при помощи публичного RSA-ключа, который доступен по адресу https://epay-api.homebank.kz/public.rsa
Проведение платежа:
POST URL https://epay-api.homebank.kz/payment/cryptopay
Запрос:
Заголовок запроса:
Content-Type: application/json Authorization: Bearer DCEB8O_ZM5U7SO_T_U5EJQ
Тело запроса:
{ "amount": 10.0, "currency": "KZT", "name": "Arman Ali", "cryptogramGooglePay": "Расшифрованная криптограмм от Google", "сryptogram": "jkasDHJIHUIHDUIOHUI23HDUI2NUIBN2I23NDJIN2OIEN2IODN0I23J0M230IDJMI023MDKDMKLSFJSDF651454564SDFIOHF984N98HFIJ2HF" "invoiceId": "163637162556226", "invoiceIdAlt":"8564546", "description": "Оплата через Google", "accountId": "", "email": "ch.kabykenov@gmail.com", "phone": "+77778871188", "backLink": "http://example/backLink", "failureBackLink": "http://example/failureBackLink", "postLink": "http://example/postLink", "failurePostLink": "http://example/failurePostLink", "paymentType": "googlePay" }
Результат операции по оплате без 3DSecure
HTTP/1.1 200 OK { "id": "7943816b-58a8-47f6-a11e-67b63c4228c7", "amount": 100, "currency": "KZT", "invoiceID": "938290483290", "invoiceIdAlt": "8564546", "accountID": "uuid000001", "phone": "77777777777", "email": "jj@example.com", "description": "test payment", "reference": "114537489258", "language": "rus" }
Результат операции по неуспешной оплате
HTTP/1.1 400 OK { "code": 487, "message": " Not permitted to merchant", "invoiceId": "8161284658525", "invoiceIdAlt":"8564546", "id": "", "reference": "", "accountId": "uuid000001" }
Status Code
BUYER_ACCOUNT_ERROR.
Текущий пользователь Google не может предоставить платежную информацию.
DEVELOPER_ERROR.
Переданный параметр имеет неправильный формат. Сообщение об ошибке может появиться в консоли браузера для всех настроенных сред.
MERCHANT_ACCOUNT_ERROR.
Сайт, обращающийся к Google Pay API, не имеет необходимого разрешения. Это может быть связано как с некорректной настройкой, так и с некорректным идентификатором мерчанта, указанным в запросе. Проверьте поле statusMessage для более подробной информации. Если у вас по-прежнему возникают проблемы, обратитесь в службу поддержки.
INTERNAL_ERROR. Общая ошибка сервера.
Результат операции по оплате с 3DSecure
HTTP/1.1 200 OK "id": "7943816b-58a8-47f6-a11e-67b63c4228c7", "accountId": "uuid000001", "amount": 10, "amountBonus": 0, "currency": "KZT", "description": "test payment", "email": "jj@example.com", "invoiceID": "123456813", "invoiceIdAlt":"8564546", "language": "RU", "phone": "77777777777", "reference": "", "intReference": "", "secure3D": { "paReq": "eJxVUl1TozAU/SsMrx1JSFuXdm7jsFZ23dbKmrbO+hYhCrYEDEFrf70JC3683XPunXPuPQmcHYq98yJUnZdy5voedh0hkzLN5ePM3ayjk8A9o7DOlBBzJpJGCQpXoq75o3Dy258741Sm14EUXbV5dC26bQGVCjijqhWtTaMWcVhjLWlgL0ecr5bxtxok1q4QMLgrh4iaRaln8I44PX1cM+/DHJ5pkNvh2yVrlJjYzwaetlASArg7o3Rd03MNW37/EOlXHEpA==", "md": "271710719-E54F6D8F865285D4", "action": "https://cardsecure.kkb.kz/CommerSafeACS/pa?id=YLcP2547mFFVw" }, "cardID": ""
После получения результата по оплате с 3DSecure необходимо переадресовать клиента на форму ввода пароля.
Для этого используются полученные параметры: paReq, md, action.
В параметре TermUrl необходимо использовать адрес, на который система мерчанта получит результат проверки 3DSecure пароля.
Пример построения формы для перенаправления клиента:
<body onload="javascript:OnLoadEvent();"> <FORM ACTION="<%=action%>" METHOD="post" NAME="ThreeDform" target="_self"> <input name="PaReq" type="hidden" value="<%=paReq%>"> <input name="MD" type="hidden" value="<%=md%>"> <input name="TermUrl" type="hidden" value="https://merchantsite.com/3dRes"> </FORM> <div align="center"> <h1>Дождитесь ответа! <br><br> Жауабын күтіңіз!<br><br> Wait for an answer!<br><br> </h1> </div> </body> <SCRIPT>function OnLoadEvent () { document.forms[0].submit(); }
Результат проверки 3DSecure, получаемый на TermUrl мерчанта:
PaRes: eJzNWVnT4jiy/SsdPY9Et3ewO6gvQt53bPD+5g3vNmCDjX/9FXxV1TXVPXHnzsONIYJATqcyU0rlOZLYO+Utz/lTnt5v+cfeyMcxLvJfquzLrxY45tc/Qp0HJ6UBIXZEC3EqspDgx/nXj/3r9fhWfKv8dpgvVMRu/efRq2VFBVDlkd/Gaug/sN/R3/E98u0RermlZdxPH/s4vbKK+UGSKLWl9sjXx32X3xT+w1QcXbcEhsYIFKewPfIp3iN/9rfur9YII1+q7MM9CLyv42mIMwEpTXPmM13cLamyob/skZfGPoun/ANHcQylcPoXDP0DJf+gtnvkLd9fXuZAN9yhbYyBbtE98qNsD2fplvfp84Ng6D3y/WmfL5ehz6EGHOb39h75M7xL3H+gP3wwCmOgbSjdO8HHfqq6n8Ki/sChrbd8P07xdB8/H+vOG631x//574XXT/OPfDv8D83MUpA== MD: 270469967-9CA5EC5779A3358E
Подтверждение платежа (отправка результата проверки 3DSecure пароля)
URL POST /payment/confirm
Body { "ID": "7943816b-58a8-47f6-a11e-67b63c4228c7", "PaRes": "/ZUo742DgULQ4CotpdByEwF6eQvOAFEggSRUtE+rfsh+A9pV1Uq7VX/B/aPaKfTyYOucmfHx8YzhaLOYa7cYJ34UVvWcYeoahjzy/HBa1YeD+kFZP2IwmMWINQf5OkYGbUwSd4qa71X1nt3HVeXqPK1PHHpCg1l+dHs84rlyszPVGWRpBrsLmNQ3KJA9lUoxn7lhysDlq+NmhxUKZvGwCGRHYYFxs8acRrd32rctWrQKZl4KfIQhdBfIGt32qSowLm6AZBHg0TpM4zuWt8pA9gTW8ZzN0nRZIQSX7p0RBGMjuAei4kC+rPTWCiVSZ+N7DEm/1LpqrobjktO6HNdaw/GNV+f2ZNCuAlEV4LkpMmrmLOmtpJlWpUArNAcki4O7UAZk3pTP+sCwVFfY3xLfAyC7HMsh7P3vGeBmGYWojgD5xOBhwpn4LV7FP7F9exBbTfzRxLN4kfjx7Zd4kfuDJv6Lrfgr15NKiUfpTp0D8vXak4YaA09lZ+3Lnj09871waEX3tU5wPUKPu5PuxJlTNZ", "MD": "271710719-E54F6D8F865285D4", }
Response
Redirect Http code 200
Success https://epay.homebank.kz/payform/success.html Params amount currency invoiceID accountID description reference language cardid
Error https://epay.homebank.kz/payform/ invoiceID code message