Сақталған карта бойынша төлем
Тіркеу кезінде сізге төлем жасаған кезде пайдалануыңыз қажет деректер беріледі:
| TerminalID | Дүкен сәйкестендіргіші |
| ClientID | Клиент сәйкестендіргіші |
| ClientSecret | Құпия кілт |
Егер сіз бұрын cardsave: true параметрін берген болсаңыз, карта сақталды, төлем сәтті өтті және берілген жауапта сіз CardID алдыңыз
Бұл функционал үшін 3D бетін шақыру қарастырылмағанын хабарлаймыз, сондықтан операциялардың қажетті қауіпсіздік деңгейі жоқ.
Тіркелу және терминал беру кезінде 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 | Aвторизация түрі, төлем жасау үшін client_credentials түрі қолданылады |
| scope | Pесурс |
| client_id | Коммерсанттың сәйкестендіргішін кабинеттен алуға болады, тіркеу кезінде беріледі |
| client_secret | Коммерсанттың кіру кілтін кабинеттен алуға болады, тіркеу кезінде беріледі |
| invoiceID | Тапсырыс нөмірін коммерсант жасайды, әрбір жаңа тапсырыс үшін тапсырыс нөмірі бірегей, 6-дан 15 цифрға дейін болуы керек. Егер сіздің тапсырыс нөміріңізде 6-дан астам таңба болса, онда бірегейлік қосымша соңғы 6 таңба бойынша сақталуы керек |
| amount | Тапсырыс сомасы |
| terminal | Сату орнының сәйкестендіргішін кабинеттен алуға болады, тіркеу кезінде беріледі |
| postLink | Mіндетті емес параметрлер, сәтті болған жағдайда postlink жіберу |
| failurePostLink | Mіндетті емес параметрлер, сәтсіз болған жағдайда 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 | Авторизация түрі |
Төлем жасау
Card ID арқылы төлем жасау үшін paymentType = cardId параметрін көрсету қажет
Төлем бетіне кіріс параметрлер
| Жол атауы | Сипаттамасы | Міндетті/міндетті емес |
|---|---|---|
| invoiceId | Тапсырыс нөмірін коммерсант жасайды, әрбір жаңа тапсырыс үшін тапсырыс нөмірі бірегей, 6-дан 15 цифрға дейін болуы керек. Егер сіздің тапсырыс нөміріңізде 6-дан астам таңба болса, онда бірегейлік қосымша соңғы 6 таңба бойынша сақталуы керек | міндетті |
| backLink | Төлем жасау сәтті өткеннен кейін сатып алушыны дүкенге (сайтқа) қайтаруға арналған сілтеме | міндетті |
| failureBackLink | Авторизация сәтсіз өткен жағдайда, төлегеннен кейін сатып алушыны дүкенге (сайтқа) қайтаруға арналған сілтеме | міндетті емес |
| postLink | Авторизация нәтижесін дүкенге жіберуге арналған сілтеме | міндетті |
| failurePostLink | Сәтсіз авторизация нәтижесін немесе қате туралы ақпаратты дүкенге жіберуге арналған сілтеме. | міндетті емес |
| language | Бұл жолда rus, eng, kaz авторизациялау сервері интерфейсінің тілі туралы ақпарат беріледі | міндетті емес |
| description | Бұл жолда төлем жүргізілетін тауарлар немесе қызметтер туралы ақпарат беріледі, рұқсат етілген таңбалар саны 125 байт | міндетті |
| accountId | Коммерсант жүйесіндегі клиенттің жеке идентификаторы | міндетті |
| terminalId | Tөлем жасауға арналған терминал нөмірі | міндетті |
| amount | Tөлем сомасы | міндетті |
| currency | Валюта | міндетті |
| paymentType | Tөлем түрі - cardId | міндетті |
| 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
Headres: 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", "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(); }*