รหัสข้อผิดพลาดและการจัดการ
ทำความเข้าใจและจัดการข้อผิดพลาดของ API
รูปแบบการตอบกลับข้อผิดพลาด
การตอบกลับข้อผิดพลาดทั้งหมดใช้รูปแบบมาตรฐาน:
{
"error": {
"code": "ERROR_CODE",
"message": "ข้อความข้อผิดพลาดที่มนุษย์อ่านได้",
"details": "บริบทเพิ่มเติม (ไม่บังคับ)"
}
} 💡 ใช้ error.code เป็นเงื่อนไขการแยกสาขาที่เสถียร (message อาจเปลี่ยนแปลงได้)
รหัสสถานะ HTTP
200 OK
คำขอสำเร็จ
201 Created
การสร้างทรัพยากรสำเร็จ
400 Bad Request
พารามิเตอร์คำขอไม่ถูกต้อง
{
"code": "INVALID_REQUEST",
"message": "รูปแบบคำขอไม่ถูกต้อง"
} 401 Unauthorized
ไม่ได้ยืนยันตัวตนหรือ API key ไม่ถูกต้อง
{
"code": "UNAUTHORIZED",
"message": "API key ไม่ถูกต้องหรือหมดอายุ"
} 403 Forbidden
ยอดเงินในบัญชีไม่เพียงพอหรือไม่มีสิทธิ์
{
"code": "INSUFFICIENT_BALANCE",
"message": "ยอดเงินในบัญชีไม่เพียงพอ"
} 404 Not Found
ไม่พบทรัพยากร
{
"code": "ORDER_NOT_FOUND",
"message": "ไม่พบคำสั่งซื้อ"
} 409 Conflict
ทรัพยากรขัดแย้ง
{
"code": "ADDRESS_EXISTS",
"message": "ที่อยู่มีอยู่แล้ว"
} 429 Too Many Requests
เกินขีดจำกัดอัตราของ API key
{
"code": "RATE_LIMITED",
"message": "เกินขีดจำกัดอัตรา"
} 500 Internal Server Error
ข้อผิดพลาดภายในเซิร์ฟเวอร์
{
"code": "INTERNAL_ERROR",
"message": "เกิดข้อผิดพลาดที่ไม่คาดคิด"
} 503 Service Unavailable
บริการไม่พร้อมใช้งานชั่วคราว (กำลังบำรุงรักษา)
{
"code": "SERVICE_UNAVAILABLE",
"message": "บริการไม่พร้อมใช้งานชั่วคราว"
} รหัสข้อผิดพลาดที่พบบ่อย
| Error Code | Status | Description | Solution |
|---|---|---|---|
| UNAUTHORIZED | 401 | API key ไม่ถูกต้อง หมดอายุ หรือถูกยกเลิก | ตรวจสอบว่า API key ถูกต้อง หากจำเป็นให้สร้างใหม่ |
| INSUFFICIENT_BALANCE | 403 | ยอดเงินในบัญชีไม่เพียงพอ | เติมเงินในบัญชี |
| INVALID_ADDRESS | 400 | รูปแบบที่อยู่ TRON ไม่ถูกต้อง | ตรวจสอบว่าที่อยู่เป็นที่อยู่ TRON ที่ถูกต้อง (เริ่มต้นด้วย T) |
| INVALID_ENERGY_AMOUNT | 400 | จำนวนพลังงานไม่ถูกต้อง | จำนวนพลังงานต้องเป็นจำนวนเต็มบวก แนะนำ 65000 สำหรับการโอน USDT |
| INVALID_DURATION | 400 | ระยะเวลาเช่าไม่ถูกต้อง | ใช้ระยะเวลาที่ถูกต้อง: 1H, 1D, 3D, 7D, 14D, 30D |
| ORDER_NOT_FOUND | 404 | ไม่มีคำสั่งซื้อ | ตรวจสอบว่า ID คำสั่งซื้อถูกต้อง |
| ADDRESS_EXISTS | 409 | ที่อยู่มีอยู่แล้ว | ตรวจสอบว่าที่อยู่ถูกเพิ่มแล้วหรือใช้ที่อยู่ที่มีอยู่ |
| RATE_LIMITED | 429 | เกินขีดจำกัดอัตราของ API key (ปัจจุบันใช้เฉพาะกับ POST /v1/wallet/recharges) | ลองใหม่โดยใช้ exponential backoff หรือลดความถี่ของการเรียก |
วิธีจัดการ
| Error | Handling |
|---|---|
| 401 UNAUTHORIZED | ตรวจสอบ/หมุนเวียน API key |
| 403 INSUFFICIENT_BALANCE | เติมเงินหรือลดจำนวนที่ขอ |
| 409 ADDRESS_EXISTS | เปลี่ยนไปใช้การสอบถาม/การประมวลผลแบบ idempotent |
| 429 RATE_LIMITED | ลองใหม่โดยมีการรอสักครู่ (ปฏิบัติตาม Retry-After ถ้ามี หากไม่มีให้ใช้ exponential backoff) |
| 5xx | ลองใหม่ + บันทึกบริบทของคำขอ |
แนวทางการลองใหม่
- • การลองใหม่สูงสุด: 3 ครั้ง
- • การรอ: แบบ exponential (1s, 2s, 4s...)
- • ลองใหม่เฉพาะกับ 429/5xx
- • อย่าลองใหม่กับ 4xx (ข้อผิดพลาดฝั่งไคลเอนต์)