Google Pay by API
Для работы через API коммерсанту необходимо заерегестрироваться в системе GOOGLE и уметь расшифровывать данные, которые, в последствии необходимо будет передавать в систему EPAY Для работы по методу Pay by GOOGLE, компании необходимо наличие сертификации PCI DSS
Интеграцию возможно проводить только в продуктовой среде
ATTENTION:
PAN_ONLY: This authentication method is associated with payment cards stored on file with the user's Google Account. Returned payment data includes personal account number (PAN) with the expiration month and the expiration year
CRYPTOGRAM_3DS: This authentication method is associated with cards stored as Android device tokens. Returned payment data includes a 3-D Secure (3DS) cryptogram generated on the device
- TerminalID – идентификатор магазина
- ClientID – идентификатор клиента
- ClientSecret – секретный ключ
Данные для проведения тестовых платежей:
url | необходимо использовать продуктовые данные |
необходимо использовать продуктовые данные | |
password | необходимо использовать продуктовые данные |
ClientID | необходимо использовать продуктовые данные |
ClientSecret | необходимо использовать продуктовые данные |
TerminalID | необходимо использовать продуктовые данные |
Получение токена для проведения оплаты (для каждой операции необходимо получать и использовать оригинальный токен)
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"
}
Входящие параметры:
Название поля | описание | Обязательное/не обязательно |
---|---|---|
amount | сумма платежа | обязательное |
currency | валюта | обязательное |
name | имя держателя карты | обязательное |
сryptogram | закриптованные параметры платежной карты | обязательное |
invoiceId | Номер заказа в магазине | обязательное |
description | В данном поле передается информация о товарах или услугах, за которые производится оплата | |
accountId | Идентификатор клиента в системе коммерсанта или другой доп. параметр на усмотрение коммерсанта | необязательно |
email клиента | необязательное | |
phone | телефон клиента | необязательно |
postLink | Линк для отправки результата авторизации в магазин. | необязательное |
failurePostLink | Линк для отправки неудачного результата авторизации либо информации об ошибке в магазин. | необязательно |
cardSave | параметр сохранение карты, true - сохранить карту, false - не сохранять, boolean type | обязательное |
Подготовка криптограммы:
Структура криптограммы:
{ hpan string expDate string cvc string terminalId string } пример: { "hpan":"GOOGLEToken","expDate":"expToken","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