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 – секретный ключ

Данные для проведения тестовых платежей:

urlHеобходимо использовать продуктовые данные
emailHеобходимо использовать продуктовые данные
passwordHеобходимо использовать продуктовые данные
ClientIDHеобходимо использовать продуктовые данные
ClientSecretHеобходимо использовать продуктовые данные
TerminalIDHеобходимо использовать продуктовые данные

Получение токена для проведения оплаты (для каждой операции необходимо получать и использовать оригинальный токен)

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писаниеОбязательное/не обязательно
amountCумма платежаOбязательное
currencyBалютаOбязательное
nameИмя держателя картыOбязательное
сryptogramЗакриптованные параметры платежной картыOбязательное
invoiceIdНомер заказа в магазинеОбязательное
descriptionВ данном поле передается информация о товарах или услугах, за которые производится оплата
accountIdИдентификатор клиента в системе коммерсанта или другой доп. параметр на усмотрение коммерсантанеобязательно
emailЕ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