ყოველ შეცდომის პასუხს აქვს ორი ველი: error (მანქანის წაკითხვადი, სტაბილური, არასდროს იცვლება ვერსიებს შორის) და message (ადამიანის წაკითხვადი, შესაძლოა გაუმჯობესდეს დროთა განმავლობაში). ყოველთვის გადართეთ error თქვენს კოდში. აჩვენეთ message მომხმარებლებს.

შეცდომის ფორმატი

ყველა შეცდომის პასუხი მიჰყვება იმავე სტრუქტურას:

შეცდომის პასუხი
{ "error": "error_code_here", "message": "Human-readable explanation" }

ზოგიერთ შეცდომაში შედის დამატებითი ველები: ref (დელეგირების მცდელობის საცნობარო ID) და refund (ავტომატური დაბრუნების დეტალები).

ვალიდაციის შეცდომები

შეცდომის კოდიHTTPმიზეზიგადაწყვეტა
invalid_tx_hash400tx_hash არ არის 64-სიმბოლოიანი hex სტრიქონიშეამოწმეთ hash-ის ფორმატი. უნდა იყოს ზუსტად 64 hex სიმბოლო, პრეფიქსის გარეშე.
invalid_address400delegate_to არ არის ვალიდური Tron მისამართიგამოიყენეთ TronWeb.isAddress() მისამართის ვალიდაციისთვის სამსახურის გამოძახებამდე.
missing_signature400ხელმოწერა არ არის მოწოდებული მოთხოვნაშიხელი მოაწერეთ შეტყობინებას {tx_hash}:{delegate_to} -ით tronWeb.trx.signMessageV2() -დან იმ საფულიდან, რომელმაც გაგზავნა TRX.
invalid_signature401ხელმოწერა ვერ გადამოწმდადარწმუნდით, რომ თქვენ ხელი მოაწერეთ ზუსტად {tx_hash}:{delegate_to} (მცირე ასოების hex hash, მორის ხაზი, ზუსტი Tron მისამართი).
signature_mismatch403ხელმომწერის მისამართი არ ემთხვევა გადახდის მომწერსხელმოწერა უნდა მომდინარეობდეს იმავე საფულიდან, რომელმაც გაგზავნა TRX გადახდა. სხვადსხვა საფულე = უარყოფილი.

გადახდის შეცდომები

შეცდომის კოდიHTTPმიზეზიგადაწყვეტა
payment_verification_failed404 / 400ჯაჭვზე შემავალი გადახდა ვერ გადამოწმდა. message ველი აღწერს კონკრეტულ მიზეზს.ხშირი მიზეზები: tx ჯერ არ არის დასტური (დაიცადეთ 3-5 წამი და კიდევ ერთხელ სცადეთ), არასწორი მიმღების მისამართი, ტრანზაქცია არ არის TRX გადარიცხვა, 4 TRX მინიმუმზე ნაკლები.
hash_already_used409ეს tx hash უკვე დამტკიცებულიათითოეული გადახდის hash მხოლოდ ერთხელ შეიძლება გამოყენებულ იქნას. নতুნი დელეგირებისთვის გაგზავნეთ ახალი გადახდა.

სერვისის შეცდომები

შეცდომის კოდიHTTPმიზეზიგადაწყვეტა
delegation_failed400 / 500პროვайდერმა ვერ შედგა ენერგიის დელეგირებათუ მარცხი მოხდა თქვენი გადახდის დადასტურების შემდეგ, ავტომატური დაბრუნება რიგშია. შეამოწმეთ refund ობიექტი. წინააღმდეგ შემთხვევაში სცადეთ ხელახლა, ან დაუკავშირდით მხარდამჭერს ref ID.
rate_limited429ძალიან ბევრი მოთხოვნა ამ IP მისამართიდანშენელეთ და სცადეთ ხელახლა. ლიმიტი არის 20 მოთხოვნა წამში.
server_error500მოულოდნელი შიდა შეცდომასცადეთ ხელახლა რამდენიმე წამის შემდეგ. თუ პრობლემა ის გრძელდება, დაუკავშირდით მხარდამჭერს ref თუ ხელმისაწვდომია.

შეცდომების დამუშავება კოდში

რეკომენდებული შეცდომების დამუშავება
const result = await fetch('https://api.tronnrg.com/delegate', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ tx_hash: hash, delegate_to: addr, signature: sig }), }).then(r => r.json()); if (result.error) { switch (result.error) { case 'payment_verification_failed': // Most common: tx not yet indexed. Wait 3s and retry once. await new Promise(r => setTimeout(r, 3000)); return retry(hash, addr); case 'hash_already_used': // Already claimed. Don't retry. throw new Error('Duplicate delegation attempt'); case 'signature_mismatch': // Signer != payment sender. Sign with the same key. throw new Error('Signer does not match payment sender'); case 'delegation_failed': // Refund queued automatically if payment was verified. if (result.refund) console.log('Refund queued:', result.refund); break; default: console.error(result.error, result.message); } return; } // Success console.log('Delegated:', result.energy, 'energy'); console.log('Delegation tx:', result.delegations[0].tx); // verify on TronScan console.log('Ref:', result.ref);
Telegram WhatsApp