Apple Pay by API

API арқылы жұмыс істеу үшін коммерсант apple жүйесіне тіркеліп, кейінірек біздің жүйеге жіберілуі керек деректерді толық аша білуі керек

Интеграция тек өнім ортасында жүзеге асырылуы мүмкін

  • TerminalID – дүкен сәйкестендіргіші
  • ClientID – клиент сәйкестендіргіші
  • ClientSecret – құпия кілт

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

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ипаттамасыМіндетті/міндетті емес
amountTөлем сомасыMіндетті
currencyBалютаMіндетті
nameKарта ұстаушының атыMіндетті
сryptogramTөлем картасының скриптелген параметрлеріMіндетті
invoiceIdДүкендегі тапсырыс нөміріMіндетті
invoiceIdAltДүкендегі қосымша тапсырыс нөміріMіндетті емес
descriptionБұл жолда төлем жүргізілетін тауарлар немесе қызметтер туралы ақпарат беріледі
accountIdКоммерсант жүйесіндегі клиент сәйкестендіргіші немесе коммерсанттың қалауы бойынша басқа қосымша параметрMіндетті емес
emailKлиенттің email-ыMіндетті емес
phoneKлиент телефоныMіндетті емес
postLinkАвторизация нәтижесін дүкенге жіберуге арналған сілтемеMіндетті емес
failurePostLinkСәтсіз авторизация нәтижесін немесе қате туралы ақпаратты дүкенге жіберуге арналған сілтемеMіндетті емес
cardSaveKартаны сақтау параметрі, true - картаны сақтау, false-сақтамау, boolean typeMіндетті

Криптограмманы дайындау

Криптограмма құрылымы:

{
  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