P2P
При регистрации вам будут выданы данные, которые нужно будет использовать при проведении платежа:
| |
---|
TerminalID | Идентификатор магазина |
ClientID | Идентификатор клиента |
ClientSecret | Секретный ключ |
Перед началом подключения к системе ePay, коммерсанту необходимо создать кнопку которая будет при нажатии выполнять функцию перехода, назовем uf.p2p
В свою очередь, данная кнопка будет выполнять генерацию invoiceId.
Test merchant
| |
---|
url | https://test-epay.homebank.kz |
email | epay@halykbank.kz |
password | XZG1E@Mm |
ClientID | test |
ClientSecret | yF587AV9Ms94qN2QShFzVR3vFnWkhjbAK3sG |
TerminalID | 40a348cb-68a3-45d5-9002-a4836d79c3b5 |
Test payment card
PAN | Expire Date | CVC | Status |
---|
4405639704015096 | 01/25 | 815 | unlock |
5522042705066736 | 01/25 | 525 | unlock |
377514500004820 | 01/25 | 4169 | unlock |
4003032704547597 | 09/20 | 170 | lock |
5578342710750560 | 09/20 | 254 | lock |
Получение токена для проведения оплаты (для каждой операции необходимо получать и использовать оригинальный токен)
TEST URL POST https://testoauth.homebank.kz/epay2/oauth2/token
PROD URL POST https://epay-oauth.homebank.kz/oauth2/token
Запрос
Body: form-data
grant_type: "client_credentials"
scope: "transfer"
client_id: "test"
client_secret: "yF587AV9Ms94qN2QShFzVR3vFnWkhjbAK3sG"
terminal: "40a348cb-68a3-45d5-9002-a4836d79c3b5"
secret_hash: "JDKCNDDGGDTPSKJD"
Поле | Описание |
---|
grant_type | Tип авторизации, для проведения платежа используется тип client_credentials |
scope | Pесурс |
client_id | Идентификатор коммерсанта, можно получить в кабинете, выдается при регистрации |
client_secret | Ключ доступа коммерсанта, можно получить в кабинете, выдается при регистрации |
terminal | Идентификатор точки продаж, можно получит в кабинете, выдается при регистрации |
secret_hash | дополнительное секретное значение(строка), сгенерированное системой интернет-магазина, которое будет возвращено на Postlink |
Ответ
{
"access_token":"DCEB8O_ZM5U7SO_T_U5EJQ",
"expires_in": 7200,
"refresh_token":"",
"scope":"transfer",
"token_type":"Bearer"
}
Поле | Описание |
---|
access_token | Токен для проведения операции |
expires_in | Время истечения токена |
refresh_token | Не используется при данном типе авторизации |
scope | Ресурс, для проведения платежа используется ресурс |
token_type | Тип авторизации |
Перенаправление на платежную страницу
На странице нужно подключить JS-библиотеку и вызвать в ней метод halyk.oct
URL TEST: https://test-epay.homebank.kz/payform/payment-api.js
URL PROD: https://epay.homebank.kz/payform/payment-api.js
В метод halyk.p2p() нужно передать следующие параметры:
var createPaymentObject = function(auth, invoiceId, amount) {
var paymentObject = {
invoiceId: "000000001",
backLink: "https://example.kz/success.html",
failureBackLink: "https://example.kz/failure.html",
postLink: "https://example.kz/",
failurePostLink: "https://example.kz/order/1123/fail",
language: "RU",
description: "Оплата в интернет магазине",
accountId: "testuser1",
terminal: "40a348cb-68a3-45d5-9002-a4836d79c3b5",
amount: 100,
currency: "KZT",
phone: "77777777777",
email: "example@example.com"
cardSave: true //Параметр должен передаваться как Boolean
};
paymentObject.auth = auth;
return paymentObject;
};
halyk.pay(createPaymentObject(auth, invoiceId, amount));
Поле | Описание |
---|
invoiceId | Номер заказа, генерируется коммерсантом, должен быть уникальный для каждого нового заказа, только цифры от 6 до 15 символов |
backLink | Ссылка для возврата в магазин при удачном платеже |
failureBackLink | Ссылка для возврата в магазин при не удачном платеже |
postLink | Уведомление о платеже |
failurePostLink | Уведомление о неудачном платеже, если не заполнено, то информация будет отправлена на адрес указанный в postLink |
language | Язык |
description | Описание заказа |
accountId | Не обязательное поле для указание идентификатора клиента магазина |
terminal | Идентификатор магазина |
amount | Сумма заказа |
currency | Валюта |
phone | Hомер телефона клиента (не обязательно) |
email | Email клиента (не обязательно) |
cardSave | Cохренение карты |
auth | Токен / передается полностью как объект, все данные полученные от epay по запросу токена |
Postlink
На указанный URL указанный в поле postLink будет отправлено сообщение.
Ответ в случае успеха:
{
"accountId": "sad12eqsda",
"amount": 100,
"approvalCode": "157911",
"cardId": "11f1111b-f151-6f11-e161-1111010a2111",
"cardMask": "440043...2222",
"cardType": "VISA",
"code": "ok",
"currency": "KZT",
"dateTime": "2024-07-29T10:50:56.765674319+05:00",
"description": "Arman Alimguzhinov",
"email": "",
"id": "1d1a11f1-1111-111c-1113b-e8340ce51111",
"invoiceId": "191111111",
"ip": "213.148.6.204",
"ipCity": "",
"ipCountry": "",
"ipDistrict": "",
"ipLatitude": 0,
"ipLongitude": 0,
"ipRegion": "",
"issuer": "JSC KASPI BANK",
"language": "RUS",
"name": "STANDARD CARDHOLDER",
"phone": "",
"reason": "success",
"reasonCode": 0,
"reference": "411111111117",
"secure": "no",
"secureDetails":"F",
"terminal": "67e34d63-102f-4bd1-898e-370781d0074d"
}
Коды ошибок
Ответ в случае неудачи:
{
"id": "ffffffff-0000-000f-f000-00f0000f000f",
"dateTime": "2020-01-01T00:00:00.00000+06:00",
"invoiceId": "10000000001",
"amount": 100,
"currency": "KZT",
"terminal": "67e34d63-102f-4bd1-898e-370781d0074d",
"accountId": "1",
"description": "Оплата в интернет магазине",
"language": "RU",
"cardMask": "4444...4444",
"cardType": "",
"issuer": "Halyk bank",
"reference": "",
"secure": "no",
"secureDetails":"F",
"tokenRecipient": "",
"code": "error",
"reason": "описание ошибки",
"reasonCode": -498,
"name": "CARD HOLDER",
"email": "ch@example.kz",
"phone": "77777777777",
"ip": "5.188.155.135",
"ipCountry": "Kazakhstan",
"ipCity": "Almaty",
"ipRegion": "",
"ipDistrict": "",
"ipLongitude": 76.9293,
"ipLatitude": 43.2638
}