Apple Pay by API
API арқылы жұмыс істеу үшін коммерсант apple жүйесіне тіркеліп, кейінірек біздің жүйеге жіберілуі керек деректерді толық аша білуі керек
Интеграция тек өнім ортасында жүзеге асырылуы мүмкін
- TerminalID – дүкен сәйкестендіргіші
- ClientID – клиент сәйкестендіргіші
- ClientSecret – құпия кілт
Тестілік төлемдерді жүргізуге арналған деректер:
url | өнім деректерін пайдалану қажет |
өнім деректерін пайдалану қажет | |
password | өнім деректерін пайдалану қажет |
ClientID | өнім деректерін пайдалану қажет |
ClientSecret | өнім деректерін пайдалану қажет |
TerminalID | өнім деректерін пайдалану қажет |
Төлем жасау үшін токенді алу (әр операция үшін түпнұсқа токенді алу және пайдалану қажет)
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"
}
Кіру параметрлері
Жол атауы | Cипаттамасы | Міндетті/міндетті емес |
---|---|---|
amount | Tөлем сомасы | Mіндетті |
currency | Bалюта | Mіндетті |
name | Kарта ұстаушының аты | Mіндетті |
сryptogram | Tөлем картасының скриптелген параметрлері | Mіндетті |
invoiceId | Дүкендегі тапсырыс нөмірі | Mіндетті |
invoiceIdAlt | Дүкендегі қосымша тапсырыс нөмірі | Mіндетті емес |
description | Бұл жолда төлем жүргізілетін тауарлар немесе қызметтер туралы ақпарат беріледі | |
accountId | Коммерсант жүйесіндегі клиент сәйкестендіргіші немесе коммерсанттың қалауы бойынша басқа қосымша параметр | Mіндетті емес |
Kлиенттің email-ы | Mіндетті емес | |
phone | Kлиент телефоны | Mіндетті емес |
postLink | Авторизация нәтижесін дүкенге жіберуге арналған сілтеме | Mіндетті емес |
failurePostLink | Сәтсіз авторизация нәтижесін немесе қате туралы ақпаратты дүкенге жіберуге арналған сілтеме | Mіндетті емес |
cardSave | Kартаны сақтау параметрі, true - картаны сақтау, false-сақтамау, boolean type | Mіндетті |
Криптограмманы дайындау
Криптограмма құрылымы:
{ hpan string expDate string cvc string terminalId string }
Мысал:
{ "hpan":"AppleToken","expDate":"expToken","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", "cryptogramApplePay": "Apple-дан шифрланған криптограммалар", "cryptogram": "jkasDHJIHUIHDUIOHUI23HDUI2NUIBN2I23NDJIN2OIEN2IODN0I23J0M230IDJMI023MDKDMKLSFJSDF651454564SDFIOHF984N98HFIJ2HF" "invoiceId": "163637162556226", "invoiceIdAlt": "8564546", "description": "ApplePay арқылы төлеу", "accountId": "", "email": "armanali@gmail.com", "phone": "+77771232380", "backLink": "http://example/backLink", "failureBackLink": "http://example/failureBackLink", "postLink": "http://example/postLink", "failurePostLink": "http://example/failurePostLink", "paymentType": "applePay" }
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", "id": "", "reference": "", "accountId": "uuid000001" }
3DSecure арқылы төлеу бойынша жасалған операцияның нәтижесі
{ "id": "7943816b-58a8-47f6-a11e-67b63c4228c7", "accountId": "", "amount": 100, "amountBonus": 0, "currency": "KZT", "description": "Тапсырыс үшін төлем 938290483290", "email": "", "invoiceID": "938290483290", "invoiceIdAlt":"8564546", "language": "RU", "phone": "", "reference": "", "intReference": "", "secure3D": { "paReq": "eyJtZXNzYWdlVHlwZSI2lvbiI6IjIuMS4wIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiIyMDFiZDlmYy1kM2IzLTQ4YjUtYWRiNy1jYjM1YT6IjA1In0", "md": "MjAxYmQ5ZmsadasdtY2IzNWE1NjFhM2Mw", "action": "https://epay-proxy.homebank.kz/" }, "cardID": "", "fee": 0 }
3D Secure арқылы төлеу бойынша нәтижені алғаннан кейін клиентті құпиясөзді енгізу нысанына бағыттау қажет.
Ол үшін мынадай алынған параметрлер қолданылады: paReq, md, action. TermUrl параметрінде мерчант жүйесі 3D Secure құпиясөзді тексеру нәтижесін алатын мекенжайды пайдалану қажет.
Клиентті қайта бағыттау үшін нысанды құру мысалы:
<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(); }
Мерчанттың TermUrl-ға алынатын 3DSecure тексеру нәтижесі:
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: MjAxYmQ5ZmsadasdtY2IzNWE1NjFhM2Mw
Төлемді растау (3D Secure құпиясөзін тексеру нәтижесін жіберу)
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": "MjAxYmQ5ZmsadasdtY2IzNWE1NjFhM2Mw", }
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