เอกสารสำหรับนักพัฒนา
ERROR CODES
รายการรหัสข้อผิดพลาด API TronEnergy ทั้งหมด พร้อมคำอธิบายและขั้นตอนการแก้ไข
ข้อความแสดงข้อผิดพลาดทุกข้อความจะมีสองส่วน: error (เครื่องอ่านได้ เสถียร ไม่เปลี่ยนแปลงระหว่างเวอร์ชัน) และ message (อ่านง่าย อาจปรับปรุงได้ในอนาคต) เปิดใช้งานเสมอ error ในโค้ดของคุณ แสดงผล message ให้กับผู้ใช้
รูปแบบข้อผิดพลาด
ข้อความแสดงข้อผิดพลาดทั้งหมดมีโครงสร้างเดียวกัน:
error response
{
"error": "error_code_here",
"message": "Human-readable explanation"
}
ข้อผิดพลาดบางอย่างอาจมีฟิลด์เพิ่มเติม: ref (รหัสอ้างอิงสำหรับการพยายามมอบหมายอำนาจ) และ refund (รายละเอียดเกี่ยวกับการคืนเงินอัตโนมัติ)
ข้อผิดพลาดในการตรวจสอบความถูกต้อง
| รหัสข้อผิดพลาด | HTTP | สาเหตุ | ปณิธาน |
|---|---|---|---|
invalid_tx_hash | 400 | tx_hash ไม่ใช่สตริงเลขฐานสิบหกที่มี 64 ตัวอักษร | ตรวจสอบรูปแบบแฮช ต้องมีอักขระเลขฐานสิบหก 64 ตัวเท่านั้น ห้ามมีคำนำหน้า |
invalid_address | 400 | delegate_to ไม่ใช่ที่อยู่ Tron ที่ถูกต้อง | ตรวจสอบความถูกต้องของที่อยู่ด้วย TronWeb () ก่อนโทรออก |
missing_signature | 400 | ไม่มีลายเซ็นในคำขอ | ลงชื่อในข้อความ {tx_hash}:{delegate_to} กับ tronWeb.trx.signMessageV2() จากกระเป๋าเงินที่ส่ง TRX มาให้ |
invalid_signature | 401 | ไม่สามารถตรวจสอบลายเซ็นได้ | โปรดตรวจสอบให้แน่ใจว่าคุณได้ลงนามอย่างถูกต้อง {tx_hash}:{delegate_to} (แฮชเลขฐานสิบหกตัวพิมพ์เล็ก, โคลอน, ที่อยู่ Tron ที่ถูกต้อง) |
signature_mismatch | 403 | ที่อยู่ของผู้ลงนามไม่ตรงกับที่อยู่ของผู้ส่งเงิน | ลายเซ็นต้องมาจากกระเป๋าเงินดิจิทัลเดียวกันกับที่ส่งการชำระเงิน TRX หากใช้กระเป๋าเงินคนละใบ = ปฏิเสธ |
ข้อผิดพลาดในการชำระเงิน
| รหัสข้อผิดพลาด | HTTP | สาเหตุ | ปณิธาน |
|---|---|---|---|
payment_verification_failed | 404 / 400 | ไม่สามารถตรวจสอบการชำระเงินบนบล็อกเชนได้ message ช่องนี้อธิบายถึงสาเหตุที่เฉพาะเจาะจง | สาเหตุทั่วไป: ธุรกรรมยังไม่ได้รับการยืนยัน (รอ 3-5 วินาทีแล้วลองใหม่อีกครั้ง), ที่อยู่ผู้รับไม่ถูกต้อง, ธุรกรรมไม่ใช่การโอน TRX , จำนวน TRX น้อยกว่าขั้นต่ำ 4 |
hash_already_used | 409 | แฮชธุรกรรมนี้ถูกใช้งานไปแล้ว | แต่ละแฮชการชำระเงินสามารถใช้ได้เพียงครั้งเดียวเท่านั้น ส่งการชำระเงินใหม่สำหรับการมอบหมายใหม่ |
ข้อผิดพลาดในการให้บริการ
| รหัสข้อผิดพลาด | HTTP | สาเหตุ | ปณิธาน |
|---|---|---|---|
delegation_failed | 400 / 500 | ผู้ให้บริการไม่สามารถส่งมอบการมอบหมายพลังงานได้ | หากเกิดข้อผิดพลาดหลังจากยืนยันการชำระเงินแล้ว ระบบจะดำเนินการคืนเงินโดยอัตโนมัติ โปรดตรวจสอบ refund วัตถุนั้น หากไม่เช่นนั้น ให้ลองใหม่อีกครั้ง หรือติดต่อฝ่ายสนับสนุนพร้อมกับวัตถุนั้น ref รหัสประจำตัว |
rate_limited | 429 | มีการส่งคำขอจาก IP นี้มากเกินไป | ลดความเร็วลงแล้วลองใหม่อีกครั้ง จำกัดอยู่ที่ 20 คำขอต่อวินาที |
server_error | 500 | เกิดข้อผิดพลาดภายในที่ไม่คาดคิด | ลองใหม่อีกครั้งหลังจากผ่านไปสองสามวินาที หากยังคงมีปัญหา โปรดติดต่อฝ่ายสนับสนุน 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);