Webhook
Шот-фактураның күйі өзгерген кезде, хабарлама сұранысы шот-фактураны жасау кезінде көрсетілген URL_CALLBER-ге жіберіледі.
Жауап
Жауап параметрлері
Есім | Анықтама |
---|---|
type | Шот-фактура түрі (Әмиян / төлем) |
uuid | төлем туралы ууид |
order_id | Жүйеде жеке куәлік (тапсырыс беру үшін) |
amount | Шот-фактураның мөлшері |
payment_amount | Тапсырыс берген сома |
payment_amount_usd | АҚШ долларымен төлеген сома |
merchant_amount | Саудагердің балансына қосқан сома, барлық комиссиялар алынып тасталды. |
commission | Cryptomus комиссиясының сомасы |
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 төледі (төлеуші өзінің Cryptomus шотынан шот-фактурадан қаражат тапқан шот-фактурада көрсетілген мекен-жайға және төлем тек біздің жүйеде жасалған) төленді.2) төлем төленбеді3) Төлемде бірдеңе дұрыс болмады немесе клиент қателік жіберді және біз оны «төленген» деп белгіледі |
sign | Қол |
Анықтама
Шот-фактура түрі (Әмиян / төлем)Анықтама
төлем туралы ууидАнықтама
Жүйеде жеке куәлік (тапсырыс беру үшін)Анықтама
Шот-фактураның мөлшеріАнықтама
Тапсырыс берген сомаАнықтама
АҚШ долларымен төлеген сомаАнықтама
Саудагердің балансына қосқан сома, барлық комиссиялар алынып тасталды.Анықтама
Cryptomus комиссиясының сомасыАнықтама
Шот-фактураның аяқталуы керек пе. Шот-фактура аяқталған кезде шот-фактураны төлеу мүмкін емес (ол төленген немесе мерзімі аяқталған)Анықтама
Төлем мәртебесіҚол жетімді опциялар:- 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 төледі (төлеуші өзінің Cryptomus шотынан шот-фактурадан қаражат тапқан шот-фактурада көрсетілген мекен-жайға және төлем тек біздің жүйеде жасалған) төленді.2) төлем төленбеді3) Төлемде бірдеңе дұрыс болмады немесе клиент қателік жіберді және біз оны «төленген» деп белгіледіАнықтама
Қол
Құрылымы convert
Есім | Анықтама |
---|---|
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}
ЕліктеуВеб -hook тексеруі
Бұдан кейін веб-үйлерді алу арқылы сіз өнімдерді босатасыз немесе пайдаланушылардың қалдықтарын есептеусіз, сіз өзіңіздің емес және басқа ешкімнен емес, WebHook-тен келгеніңізге көз жеткізуіңіз керек.
Мұны екі жолмен тексеруді ұсынамыз:
- IP мекенжайын пайдаланып, ақ тізімді қолданыңыз және сұрауды тек біздің IPS-тен url_callback-ке рұқсат етіңіз. Біз IP-дан веб -хандарды жібереміз. 91.227.144.54
- Url_Callback-қа келетін барлық веб -Hook ішіндегі қолтаңбаны тексеріңіз, төменде осы туралы толығырақ оқыңыз.
Веб-кіру қолтаңбасын тексеру
API пернелері құпия және сізден басқа ешкім жоқ және криптомис оларды білуі керек. Сонымен, қолтаңбаны тексерген кезде, сіз веб -хананың криптомис арқылы жіберілгеніне сенімді боласыз.
Біз осы алгоритмді пайдаланып қол қоямыз. POST сұранысының MD5 хэші BASE64-те кодталған және API кілтін біріктірілген.
Сұранымның денесінде қолтаңба, оны тексеру үшін, сіз оны растау органынан алу, денеден және API пернесінен хэш алуыңыз керек және оны белгі параметрімен сәйкестендіруіңіз керек.
PHP-де үлгі:
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}
ЕліктеуОсы кезде веб -Hook Cryptomus-тен және барлық деректерді дұрыс алғанына сенімді бола аласыз
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
Еліктеу