Платеж по сохраненной карте
При регистрации вам будут выданы данные, которые нужно будет использовать при проведении платежа:
| TerminalID | Идентификатор магазина |
| ClientID | Идентификатор клиента |
| ClientSecret | Секретный ключ |
Карта является сохранённой если вы ранее передавали параметр cardsave: true, оплата прошла успешно и в ответе вы получили CardID
При регистрации и выдаче терминала настройка проверки 3DSecure будет определяться в соответствии с указанным в заявке. Она может быть либо включена, либо отключена. В зависимости от этой настройки ответы системы будут различаться: при включенной проверке 3DSecure они будут отличаться от ответов, полученных при отключенной проверке. При отключенной проверке 3DSecure не предусмотрен вызов 3D-страницы, в связи с этим операции не имеют необходимого уровня защиты.
Получение токена для проведения оплаты (для каждой операции необходимо получать и использовать оригинальный токен)
TEST URL POST https://test-epay-oauth.epayment.kz/oauth2/token PROD URL POST https://epay-oauth.homebank.kz/oauth2/token
Запрос
Body: form-data
grant_type: "client_credentials" scope: "webapi usermanagement email_send verification statement statistics payment" client_id: "test" client_secret: "yF587AV9Ms94qN2QShFzVR3vFnWkhjbAK3sG" invoiceID: "000000001" amount: 100 currency: "KZT" terminal: "67e34d63-102f-4bd1-898e-370781d0074d" postLink: "" failurePostLink: ""
| Поле | Описание |
|---|---|
| grant_type | Тип авторизации, для проведения платежа используется тип client_credentials |
| scope | Ресурс |
| client_id | Идентификатор коммерсанта, можно получить в кабинете, выдается при регистрации |
| client_secret | Ключ доступа коммерсанта, можно получить в кабинете, выдается при регистрации |
| invoiceID | Номер заказа, генерируется коммерсантом, должен быть уникальный для каждого нового заказа, от 6 до 15 цифр. Если ваш номер заказа содержит более 6 символов, то дополнительно уникальность должна соблюдаться по последним 6ти символам |
| amount | Сумма заказа |
| currency | Валюта |
| terminal | Идентификатор точки продаж, можно получит в кабинете, выдается при регистрации |
| postLink | Не обязательный параметры. отправка postlink в случае успеха |
| failurePostLink | Не обязательный параметры. отправка postlink в случае неудачи |
Ответ
{ "access_token":"DCEB8O_ZM5U7SO_T_U5EJQ", "expires_in": 7200, "refresh_token":"", "scope":"webapi usermanagement email_send verification statement statistics payment", "token_type":"Bearer" }
| Поле | Описание |
|---|---|
| access_token | Токен для проведения операции |
| expires_in | Время истечения токена |
| refresh_token | Не используется при данном типе авторизации |
| scope | Ресурс, для проведения платежа используется ресурс payment |
| token_type | Тип авторизации |
Проведение платежа
Для проведения платежа с cardID необходимо указывать параметр paymentType = cardId
Входящие параметры на страницу оплаты
| Название поля | описание | Обязательное/не обязательно |
|---|---|---|
| invoiceId | Номер заказа, генерируется коммерсантом, должен быть уникальный для каждого нового заказа, от 6 до 15 цифр. Если ваш номер заказа содержит более 6 символов, то дополнительно уникальность должна соблюдаться по последним 6ти символам | обязательное |
| backLink | Линк для возврата покупателя в магазин (на сайт) после успешного проведения оплаты | обязательное |
| failureBackLink | Линк для возврата покупателя в магазин (на сайт) после оплаты в случае неудачной авторизации | необязательно |
| postLink | Линк для отправки результата авторизации в магазин. | обязательное |
| failurePostLink | Линк для отправки неудачного результата авторизации либо информации об ошибке в магазин. | необязательно |
| language | В данном поле передается информация о языке интерфейса сервера авторизации rus, eng, kaz | необязательно |
| description | В данном поле передается информация о товарах или услугах, за которые производится оплата, допустимое количество символов 125 байтов | обязательное |
| accountId | Персональный идентификатор Клиента в Системе коммерсанта | обязательное |
| terminalId | Номер терминала для оплаты | обязательное |
| amount | Сумма платежа | обязательное |
| currency | Валюта | обязательное |
| paymentType | Тип платежа - cardId | обязательное |
| recurrent | Флаг для рекуррентных платежей | необязательное |
| cardid | Токен карты | обязательное |
TEST URL POST https://test-epay-api.epayment.kz/payments/cards/auth PROD URL POST https://epay-api.homebank.kz/payments/cards/auth
Request
Headers: Authorization: bearer KJHKJH8&5F&D3&F Body: { "amount":100, "currency":"KZT", "name":"TEST TEST", "terminalId":"67e34d63-102f-4bd1-898e-370781d0074d", "invoiceId":"10101112", "invoiceIdAlt":"8564546", "description":"test", "accountId":"uuid000001", "email":"parkhomchik@gmail.com", "phone":"77472261170", "backLink":"https://testmerchant/order/1123", "failureBackLink":"https://testmerchant/order/1123/fail", "postLink":"https://testmerchant/order/1123", "failurePostLink":"https://testmerchant/order/1123/fail", "language":"rus", "paymentType":"cardId", "recurrent": true, "cardId":{ "id":"e7e2587f-de26-4f41-ae1f-80c1fea31728" //значение полученного ранее cardID, при первичной оплате } }
Response
HTTP Code 200
{ "id": "75890cc5-157a-4cce-9624-16b227c2b9ec", "accountId": "", "amount": 100, "amountBonus": 0, "currency": "KZT", "description": "payment", "email": "test@example.com", "invoiceID": "9999999", "invoiceIdAlt":"8564546", "language": "RU", "phone": "77777777777", "reference": "099467918563", "intReference": "C3B673466V9600X3", "secure3D": null, "cardID": "22f2c5db-64d8-475f-8066-af3de3dc8233", "code": 0, "status": "AUTH" } В случае ошибки HTTP Code 4xx { "code": -1, "message": "error message" }
Ответ с 3DSecure (не является окончательным): HTTP Code 2xx
{ "id": "d5782400-d8c5-4856-b5b9-115be68b63ca", "accountId": "", "amount": 10, "amountBonus": 0, "currency": "", "description": "", "email": "", "invoiceID": "", "language": "", "phone": "", "reference": "", "intReference": "", "secure3D": { "paReq": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiJlMGQyNmQwMS0yZjA0LTRlZjYtYTNmYy00NGI1OTMyMTdjOTEiLCJhY3NUcmFuc0lEIjoiN2FlZDkxYjctODJmZS00N2Y0LWJiNDAtZGRjNTYyYWE1ZjNhIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0", "md": "ZTBkMjZkMDEtMmYwNC00ZWY2LWEzZmMtNDRiNTkzMjE3Yzkx", "action": "https://epay-proxy.homebank.kz/" }, "cardID": "ХХХХХХХ-c686-6634-e063-ХХХХХХХХХ", "fee": 0, "code": 0, "status": "3D" }
После получения результата по оплате с 3DSecure необходимо переадресовать клиента на форму ввода пароля.
Для этого используются полученные параметры: paReq, md, action.
В параметре TermUrl необходимо использовать адрес, на который система мерчанта получит результат проверки 3DSecure.
На странице партнера (TermUrl) необходимо после получения данных выполнить confirm.
Пример построения формы для перенаправления клиента:
* <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(); }*