Басты
/Төлемдер
/Webhook
Webhook - бұл төлем туралы ақпарат алудың кері байланысы.
Шот-фактураның күйі өзгергенде, шот-фактураны жасаған кезде көрсетілген url_callback мекенжайына POST сұранысы жіберіледі.
| Есім | Анықтама |
|---|---|
| type | Шот-фактура түрі (Әмиян / төлем) |
| uuid | төлем туралы ууид |
| order_id | Жүйеңіздегі тапсырыс идентификаторы (тапсырысты анықтау үшін) |
| amount | Шот-фактураның мөлшері |
| payment_amount | Тапсырыс берген сома |
| payment_amount_usd | АҚШ долларымен төлеген сома |
| merchant_amount | Саудагердің балансына қосқан сома, барлық комиссиялар алынып тасталды. |
| commission | Хелекет комиссиясының мөлшері |
| is_final | Шот-фактураның аяқталуы керек пе. Шот-фактура аяқталған кезде шот-фактураны төлеу мүмкін емес (ол төленген немесе мерзімі аяқталған) |
| status | Төлем мәртебесіҚол жетімді опциялар:• confirm_check• paid• paid_over• fail• wrong_amount• cancel• system_fail• refund_process• refund_fail• refund_paid |
| from | Төлеушінің әмиянының мекен-жайы |
| wallet_address_uuid | Статикалық әмиянның uuid |
| network | Төлем жасалатын блоктық желі |
| currency | Шот-фактура валютасы |
| payer_currency | Клиенттің іс жүзінде төлеген валютасы |
| additional_data | Шот-фактураны құру кезінде ұсынған қосымша ақпарат жолы |
| convert | Төлем автоматты түрде айырбасталатын валюта туралы ақпарат. Айырбастау Payer_currency USDT-тен орындалады convert өрісіне payer_currency (e.g. BTC-ге автоматты түрде түрлендіру) қосылмаған болса Құрылым |
| txid | BlockChain-дегі транзакция хэш.txid өрісі болмайды, егер1) Төлемді P2P төледі (төлеуші өзінің Heleket шотынан шот-фактурадан қаражат тапқан шот-фактурада көрсетілген мекен-жайға және төлем тек біздің жүйеде жасалған) төленді.2) төлем төленбеді3) Төлемде бірдеңе дұрыс болмады немесе клиент қателік жіберді және біз оны «төленген» деп белгіледі |
| sign | Қол |
Анықтама
Шот-фактура түрі (Әмиян / төлем)Анықтама
төлем туралы ууидАнықтама
Жүйеңіздегі тапсырыс идентификаторы (тапсырысты анықтау үшін)Анықтама
Шот-фактураның мөлшеріАнықтама
Тапсырыс берген сомаАнықтама
АҚШ долларымен төлеген сомаАнықтама
Саудагердің балансына қосқан сома, барлық комиссиялар алынып тасталды.Анықтама
Хелекет комиссиясының мөлшеріАнықтама
Шот-фактураның аяқталуы керек пе. Шот-фактура аяқталған кезде шот-фактураны төлеу мүмкін емес (ол төленген немесе мерзімі аяқталған)Анықтама
Төлем мәртебесіҚол жетімді опциялар:- confirm_check- paid- paid_over- fail- wrong_amount- cancel- system_fail- refund_process- refund_fail- refund_paidАнықтама
Төлеушінің әмиянының мекен-жайыАнықтама
Статикалық әмиянның uuidАнықтама
Төлем жасалатын блоктық желіАнықтама
Шот-фактура валютасыАнықтама
Клиенттің іс жүзінде төлеген валютасыАнықтама
Шот-фактураны құру кезінде ұсынған қосымша ақпарат жолыАнықтама
Төлем автоматты түрде айырбасталатын валюта туралы ақпарат. Айырбастау Payer_currency USDT-тен орындалады convert өрісіне payer_currency (e.g. BTC-ге автоматты түрде түрлендіру) қосылмаған болса ҚұрылымАнықтама
BlockChain-дегі транзакция хэш.txid өрісі болмайды, егер1) Төлемді P2P төледі (төлеуші өзінің Heleket шотынан шот-фактурадан қаражат тапқан шот-фактурада көрсетілген мекен-жайға және төлем тек біздің жүйеде жасалған) төленді.2) төлем төленбеді3) Төлемде бірдеңе дұрыс болмады немесе клиент қателік жіберді және біз оны «төленген» деп белгіледіАнықтама
Қол| Есім | Анықтама |
|---|---|
| to_currency | Төлем болып айырылған валюта коды |
| commission | Конверсия ақысы |
| rate | Конверсия көрсеткіші |
| amount | Барлық комиссияларды шегеріп, сатушының балансына қосылған to_currency түріндегі айырбастау сомасы.Мұндағы сома Mess_amount * мөлшерлемесі |
Анықтама
Төлем болып айырылған валюта кодыАнықтама
Конверсия ақысыАнықтама
Конверсия көрсеткішіАнықтама
Барлық комиссияларды шегеріп, сатушының балансына қосылған to_currency түріндегі айырбастау сомасы.Мұндағы сома Mess_amount * мөлшерлемесі
1{
2 "type": "payment",
3 "uuid": "62f88b36-a9d5-4fa6-aa26-e040c3dbf26d",
4 "order_id": "97a75bf8eda5cca41ba9d2e104840fcd",
5 "amount": "3.00000000",
6 "payment_amount": "3.00000000",
7 "payment_amount_usd": "0.23",
8 "merchant_amount": "2.94000000",
9 "commission": "0.06000000",
10 "is_final": true,
11 "status": "paid",
12 "from": "THgEWubVc8tPKXLJ4VZ5zbiiAK7AgqSeGH",
13 "wallet_address_uuid": null,
14 "network": "tron",
15 "currency": "TRX",
16 "payer_currency": "TRX",
17 "additional_data": null,
18 "convert": {
19 "to_currency": "USDT",
20 "commission": null,
21 "rate": "0.07700000",
22 "amount": "0.22638000"
23 },
24 "txid": "6f0d9c8374db57cac0d806251473de754f361c83a03cd805f74aa9da3193486b",
25 "sign": "a76c0d77f3e8e1a419b138af04ab600a"
26}КөшіруБұдан кейін веб-үйлерді алу арқылы сіз өнімдерді босатасыз немесе пайдаланушылардың қалдықтарын есептеусіз, сіз өзіңіздің емес және басқа ешкімнен емес, WebHook-тен келгеніңізге көз жеткізуіңіз керек.
Мұны екі жолмен тексеруді ұсынамыз:
Сіздің API кілттеріңіз құпия және оларды тек сіз бен Heleket білуі керек. Сондықтан, қолтаңбаны тексергенде, сіз webhook-тың Heleket тарапынан жіберілгеніне сенімді боласыз.
Біз осы алгоритмді пайдаланып қол қоямыз. POST сұранысының MD5 хэші BASE64-те кодталған және API кілтін біріктірілген.
Сұранымның денесінде қолтаңба, оны тексеру үшін, сіз оны растау органынан алу, денеден және API пернесінен хэш алуыңыз керек және оны белгі параметрімен сәйкестендіруіңіз керек.
Webhook өңдегішіге жіберілген JSON деректерін алу үшін:
1$data = file_get_contents('php://input');
2$data = json_decode($data, true);КөшіруWebhook-ті деректермен бірге алайық осы киім
Біріншіден, біз массивтің белгісін алуымыз керек:
1$sign = $data['sign'];
2unset($data['sign']);КөшіруЕнді біздің API төлем кілтін пайдаланып қол қоюға мүмкіндік береді:
1$hash = md5(base64_encode(json_encode($data, JSON_UNESCAPED_UNICODE)) . $apiPaymentKey);КөшіруАқырында, біз API төлемдерімізбен жасалған қолтаңба webhook-ке келген белгіні теңестіре аламыз.
1if (!hash_equals($hash, $sign)) {
2 return new InvalidHashException();
3}
4
5// or
6
7if ($hash !== $sign) {
8 return new InvalidHashException();
9}КөшіруБұл сәтте сіз webhook-тың Heleket-тен екенін және барлық деректерді дұрыс алғаныңызды сенімді түрде біле аласыз.
PHP-де:
1// data array
2$data = [
3 'amount' => '20',
4 'currency' => 'USDT',
5 'network' => 'tron',
6 'txid' => 'someTxidWith/Slash'
7];
8
9// json data we send to webhooks
10$data = json_encode($data, true);
11echo $data;
12// Outputs a string, slash in txid is escaped, pay attention to this.
13// we send a webhook data with all escaped slashes
14// {"amount":"20","currency":"USD","network":"btc","txid":"someTxidWith\/Slash"}КөшіруJS-де:
1const data = {
2 amount: '20',
3 currency: 'USDT',
4 network: 'tron',
5 txid: 'someTxidWith/Slash'
6};
7
8const jsonData = JSON.stringify(data);
9console.log(jsonData);
10// {"amount":"20","currency":"USDT","network":"tron","txid":"someTxidWith/Slash"}
11// slash in txid is not escaped and you will get error checking sign.
12// Instead, you should do it like this:
13// const jsonData = JSON.stringify(data).replace(/\//mg, "\/");
14 Көшіру