รหัสข้อผิดพลาดและการจัดการ

ทำความเข้าใจและจัดการข้อผิดพลาดของ API

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

การตอบกลับข้อผิดพลาดทั้งหมดใช้รูปแบบมาตรฐาน:

{
  "error": {
    "code": "ERROR_CODE",
    "message": "ข้อความข้อผิดพลาดที่มนุษย์อ่านได้",
    "details": "บริบทเพิ่มเติม (ไม่บังคับ)"
  }
}

💡 ใช้ error.code เป็นเงื่อนไขการแยกสาขาที่เสถียร (message อาจเปลี่ยนแปลงได้)

รหัสสถานะ HTTP

200 OK

คำขอสำเร็จ

200

201 Created

การสร้างทรัพยากรสำเร็จ

201

400 Bad Request

พารามิเตอร์คำขอไม่ถูกต้อง

400
{
  "code": "INVALID_REQUEST",
  "message": "รูปแบบคำขอไม่ถูกต้อง"
}

401 Unauthorized

ไม่ได้ยืนยันตัวตนหรือ API key ไม่ถูกต้อง

401
{
  "code": "UNAUTHORIZED",
  "message": "API key ไม่ถูกต้องหรือหมดอายุ"
}

403 Forbidden

ยอดเงินในบัญชีไม่เพียงพอหรือไม่มีสิทธิ์

403
{
  "code": "INSUFFICIENT_BALANCE",
  "message": "ยอดเงินในบัญชีไม่เพียงพอ"
}

404 Not Found

ไม่พบทรัพยากร

404
{
  "code": "ORDER_NOT_FOUND",
  "message": "ไม่พบคำสั่งซื้อ"
}

409 Conflict

ทรัพยากรขัดแย้ง

409
{
  "code": "ADDRESS_EXISTS",
  "message": "ที่อยู่มีอยู่แล้ว"
}

429 Too Many Requests

เกินขีดจำกัดอัตราของ API key

429
{
  "code": "RATE_LIMITED",
  "message": "เกินขีดจำกัดอัตรา"
}

500 Internal Server Error

ข้อผิดพลาดภายในเซิร์ฟเวอร์

500
{
  "code": "INTERNAL_ERROR",
  "message": "เกิดข้อผิดพลาดที่ไม่คาดคิด"
}

503 Service Unavailable

บริการไม่พร้อมใช้งานชั่วคราว (กำลังบำรุงรักษา)

503
{
  "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 (ข้อผิดพลาดฝั่งไคลเอนต์)