ทุกการตอบสนองข้อผิดพลาดมีสองฟิลด์: error (อ่านได้โดยเครื่องจักร เสถียร ไม่เปลี่ยนแปลงระหว่างเวอร์ชน) และ message (อ่านได้โดยมนุษย์ อาจปรับปรุงตามเวลา) เสมอให้สลับ error ในโค้ดของคุณ แสดง message ให้กับผู้ใช้

รูปแบบข้อผิดพลาด

การตอบสนองข้อผิดพลาดทั้งหมดปฏิบัติตามโครงสร้างเดียวกัน:

การตอบสนองข้อผิดพลาด
{ "error": "error_code_here", "message": "Human-readable explanation" }

ข้อผิดพลาดบางรายการมีฟิลด์เพิ่มเติม: ref (รหัสอ้างอิงสำหรับการมอบหมายพลังงาน) และ refund (รายละเอียดเกี่ยวกับการคืนเงินอัตโนมัติ)

ข้อผิดพลาดในการตรวจสอบ

รหัสข้อผิดพลาดHTTPสาเหตุวิธีแก้ไข
invalid_tx_hash400tx_hash ไม่ใช่สตริง hex ที่มี 64 ตัวอักษรตรวจสอบรูปแบบแฮช ต้องเป็น hex 64 ตัวอักษรพอดี ไม่มีคำนำหน้า
invalid_address400delegate_to ไม่ใช่ที่อยู่ Tron ที่ถูกต้องตรวจสอบที่อยู่ด้วย TronWeb.isAddress() ก่อนเรียก
missing_signature400ไม่มีลายเซ็นในคำขอลงนามข้อความ {tx_hash}:{delegate_to} ด้วย tronWeb.trx.signMessageV2() จากกระเป๋าเงินที่ส่ง TRX
invalid_signature401ไม่สามารถตรวจสอบลายเซ็นได้ตรวจสอบว่าคุณลงนามในข้อมูลต่อไปนี้อย่างแน่นอน {tx_hash}:{delegate_to} (แฮช hex ตัวพิมพ์เล็ก ลำไส้ใหญ่ ที่อยู่ Tron ที่แน่นอน)
signature_mismatch403ที่อยู่ผู้ลงนามไม่ตรงกับผู้ส่งชำระเงินลายเซ็นต้องมาจากกระเป๋าเงินเดียวกันที่ส่งการชำระเงิน TRX ต่างกระเป๋าเงิน = ปฏิเสธ

ข้อผิดพลาดในการชำระเงิน

รหัสข้อผิดพลาดHTTPสาเหตุวิธีแก้ไข
payment_verification_failed404 / 400ไม่สามารถตรวจสอบการชำระเงินในเชน ฟิลด์ message อธิบายสาเหตุเฉพาะสาเหตุทั่วไป: tx ยังไม่ได้ยืนยัน (รอ 3-5 วินาทีและลองใหม่อีกครั้ง) ที่อยู่ผู้รับผิด ธุรกรรมไม่ใช่การโอน TRX ต่ำกว่าขั้นต่ำ 4 TRX
hash_already_used409แฮชธุรกรรมนี้ได้รับการเรียกร้องแล้วแต่ละแฮชการชำระเงินสามารถใช้ได้เพียงครั้งเดียว ส่งการชำระเงินใหม่สำหรับการมอบหมายพลังงานใหม่

ข้อผิดพลาดของบริการ

รหัสข้อผิดพลาดHTTPสาเหตุวิธีแก้ไข
delegation_failed400 / 500ผู้ให้บริการไม่สามารถส่งมอบการมอบหมายพลังงานหากความล้มเหลวเกิดขึ้นหลังจากที่การชำระเงินของคุณได้รับการยืนยัน จะมีการเรียกคิวการคืนเงินอัตโนมัติ ตรวจสอบ refund object โปรดลองใหม่ หรือติดต่อ support พร้อมกับ ref ID
rate_limited429คำขอมากเกินไปจาก IP นี้ชะลอการร้องขอและลองใหม่ ขีดจำกัดคือ 20 คำขอต่อวินาที
server_error500เกิดข้อผิดพลาดภายในที่ไม่คาดคิดลองใหม่หลังจากผ่านไปสักครู่ หากปัญหายังคงเกิดขึ้น ติดต่อ support พร้อมกับ 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