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необходимо использовать продуктовые данные
emailнеобходимо использовать продуктовые данные
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Идентификатор клиента в системе коммерсанта или другой доп. параметр на усмотрение коммерсантанеобязательно
emailemail клиентанеобязательное
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