P2P

Тіркеу кезінде сізге төлем жасаған кезде пайдалануыңыз қажет деректер беріледі:

TerminalIDДүкен сәйкестендіргіші
ClientIDКлиент сәйкестендіргіші
ClientSecretҚұпия кілт

ePay жүйесіне қосылуды бастамас бұрын, коммерсант басылған кезде ауысу функциясын орындайтын батырманы жасауы керек, uf.p2p деп атайық.

Өз кезегінде, бұл батырма invoiceId жасауды орындайды.

Төлем жасау үшін токенді алу (әр операция үшін түпнұсқа токенді алу және пайдалану қажет)

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"


ЖолыСипаттамасы
grant_typeAвторизация түрі, төлем жасау үшін client_credentials түрі қолданылады
scopeресурс
client_idКоммерсанттың сәйкестендіргішін кабинеттен алуға болады, тіркеу кезінде беріледі
client_secretКоммерсанттың кіру кілтін кабинеттен алуға болады, тіркеу кезінде беріледі
terminalСату орнының сәйкестендіргішін кабинеттен алуға болады, тіркеу кезінде беріледі

Жауап

{
  "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Клиенттің телефон нөмірі (міндетті емес)
emailКлиенттің email-ы (міндетті емес)
cardSaveKартаны сақтау
authТокен / толығымен объект ретінде беріледі, токеннің сұрау салуы бойынша epay-ден алынған барлық деректер

Postlink

Post Link жолында көрсетілген URL-ға хабарлама жіберіледі.

Сәтті болған жағдайдағы жауап:

{ 
    "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
}