Apple Pay by API

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

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

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

Тестілік төлемдерді жүргізуге арналған деректер:

urlөнім деректерін пайдалану қажет
emailөнім деректерін пайдалану қажет
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"
}

Кіру параметрлері

Жол атауысипаттамасыМіндетті/міндетті емес
amountтөлем сомасыміндетті
currencyвалютаміндетті
nameкарта ұстаушының атыміндетті
сryptogramтөлем картасының скриптелген параметрлеріміндетті
invoiceIdДүкендегі тапсырыс нөміріміндетті
invoiceIdAltдүкендегі қосымша тапсырыс нөміріміндетті емес
descriptionБұл жолда төлем жүргізілетін тауарлар немесе қызметтер туралы ақпарат беріледі
accountIdКоммерсант жүйесіндегі клиент сәйкестендіргіші немесе коммерсанттың қалауы бойынша басқа қосымша параметрміндетті емес
emailклиенттің email-ыміндетті емес
phoneклиент телефоныміндетті емес
postLinkАвторизация нәтижесін дүкенге жіберуге арналған сілтемеміндетті емес
failurePostLinkСәтсіз авторизация нәтижесін немесе қате туралы ақпаратты дүкенге жіберуге арналған сілтемеміндетті емес
cardSaveкартаны сақтау параметрі, true - картаны сақтау, false-сақтамау, boolean typeміндетті

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

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

{
  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