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

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

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

error response
{ "error": "error_code_here", "message": "Human-readable explanation" }

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

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

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

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

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

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

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

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

recommended error handling
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