Төлем виджеті

Маңызды: осы құжаттаманы зерделеу кезінде Apple Pay төлем әдісін қолдану мүмкін болмайтынын ескеруіңізді сұраймыз, өйткені төлемдерді токендеу саясаты Apple Pay батырмасын виджет арқылы ашылған бетте көрсетуге мүмкіндік бермейді.

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

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

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

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: "webapi usermanagement email_send verification statement statistics payment"
client_id: "ClientID"
client_secret: "ClientSecret"
invoiceID:"Тапсырыс нөмірі"
amount: 100
currency: "KZT"
terminal: "TerminalID"

ЖолыСипаттамасы
grant_typeAвторизация түрі, төлем жасау үшін client_credentials түрі қолданылады
scopePесурс
client_idКоммерсанттың сәйкестендіргішін кабинеттен алуға болады, тіркеу кезінде беріледі
client_secretКоммерсанттың кіру кілтін кабинеттен алуға болады, тіркеу кезінде беріледі
invoiceIDТапсырыс нөмірін коммерсант жасайды, әрбір жаңа тапсырыс үшін тапсырыс нөмірі бірегей, 6-дан 15 цифрға дейін болуы керек. Егер сіздің тапсырыс нөміріңізде 6-дан астам таңба болса, онда бірегейлік қосымша соңғы 6 таңба бойынша сақталуы керек
amountТапсырыс сомасы
currencyВалюта
terminalСату орнының сәйкестендіргішін кабинеттен алуға болады, тіркеу кезінде беріледі

Жауап:

{
  "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Авторизация түрі

Виджетті шақыру

Бетте JS-кітапханасын қосып, онда halyk.showPaymentWidget() әдісін шақыруыңыз керек.

URL: https://test-epay.homebank.kz/payform/payment-api.js

Мына әдіске

halyk.showPaymentWidget(createPaymentObject(auth, invoiceId, amount), callBk)
келесі параметрлерді беру керек.

var createPaymentObject = function(auth, invoiceId, amount) {
            var paymentObject = {
					invoiceId: "000001",
          invoiceIdAlt: "000001",
					backLink: "https://example.kz/success.html",
					failureBackLink: "https://example.kz/failure.html",
					postLink: "https://example.kz/",
					failurePostLink: "https://example.kz/order/1123/fail",
					language: "rus",
					description: "Интернет дүкенде төлеу ",
					accountId: "testuser1",
					terminal: "TerminalID",
					amount: 100,
          name: "Arman Ali",
					currency: "KZT",
          data: "{\"statement\":{\"name\":\"Arman     Ali\",\"invoiceID\":\"80000016\"}}",
                };
            paymentObject.auth = auth;
            return paymentObject;
        };

halyk.showPaymentWidget(createPaymentObject(auth, invoiceId, amount), callBk);

ЖолыСипаттамасы
invoiceIdТапсырыс нөмірін коммерсант жасайды, әрбір жаңа тапсырыс үшін тапсырыс нөмірі бірегей, 6-дан 15 цифрға дейін болуы керек. Егер сіздің тапсырыс нөміріңізде 6-дан астам таңба болса, онда бірегейлік қосымша соңғы 6 таңба бойынша сақталуы керек
invoiceIdAltБалама тапсырыс нөмірін коммерсант жасайды, әрбір жаңа тапсырыс үшін тапсырыс нөмірі бірегей, 6-дан 15 цифрға дейін болуы керек.
backLinkТөлем сәтті болған кезде дүкенге оралу сілтемесі
failureBackLinkТөлем сәтсіз болған кезде дүкенге оралу сілтемесі
postLinkТөлем туралы хабарлама
failurePostLinkСәтсіз төлем туралы хабарлама, егер толтырылмаған болса, онда ақпарат postlink-те көрсетілген мекенжайға жіберіледі
languageТілі rus/kaz/eng
descriptionТапсырыс сипаттамасы, рұқсат етілген таңбалар саны 125 байт
accountIdДүкен клиентінің сәйкестендіргішін көрсетуге арналған міндетті емес жол
terminalДүкен сәйкестендіргіші
amountТапсырыс сомасы
nameтөлеушінің аты, тек латын тілінде (міндетті емес)
currencyВалюта
authТокен / толығымен объект ретінде беріледі, токеннің сұрау салуы бойынша epay-ден алынған барлық деректер
callBk{ success: true объектісі беріледі
dataқосымша жол толтырылған кезде есепте таратылады (міндетті емес)

halyk.showPaymentWidget() әдісі төлемді пысықтау нәтижелері бойынша шақырылатын колбекті екінші параметр етіп қабылдайды.

Postlink

PostLink жолында көрсетілген 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",
    "invoiceIdAlt":"8564546",
    "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
}