Skip to main content

ขีดจำกัดอัตราการเรียก

เพื่อรับประกันประสิทธิภาพและความน่าเชื่อถือของ PayerScan API สำหรับร้านค้าทุกราย เราบังคับใช้ขีดจำกัดอัตราการเรียก API ด้วยโครงสร้างควบคุมแบบคู่ (Burst และ Sustained)

ขอบเขตการจำกัด

ขีดจำกัดอัตราการเรียกใช้ ต่อ API Key หากไม่มี API Key จะใช้ที่อยู่ IP แทน หมายความว่า:

  • หลายเซิร์ฟเวอร์ที่ใช้ API Key เดียวกัน แชร์ขีดจำกัดร่วมกัน
  • ร้านค้าต่างกันที่มี API Key ต่างกัน มีขีดจำกัดอิสระ

API สร้างใบแจ้งหนี้ (POST /payment/crypto)

ประเภทขีดจำกัดเกณฑ์
Burst (สูงสุดทันที)5 คำขอ / วินาที
Sustained60 คำขอ / นาที

API ตรวจสอบใบแจ้งหนี้ (GET /invoice/:trans_id)

ประเภทขีดจำกัดเกณฑ์
Burst (สูงสุดทันที)20 คำขอ / วินาที
Sustained200 คำขอ / นาที

เมื่อเกินขีดจำกัด

หากระบบของคุณเกินเกณฑ์ที่กำหนด API จะตอบกลับ:

  • HTTP Status Code: 429 Too Many Requests

เกินขีดจำกัด burst (POST /payment/crypto):

{
"status": "error",
"message": "Too many requests per second. Please slow down.",
"error_code": "RATE_LIMIT_EXCEEDED",
"limit_type": "burst",
"retry_after_seconds": 1
}

เกินขีดจำกัด sustained (POST /payment/crypto):

{
"status": "error",
"message": "Rate limit exceeded. Maximum 60 requests per minute.",
"error_code": "RATE_LIMIT_EXCEEDED",
"limit_type": "sustained",
"retry_after_seconds": 60
}
note

ค่า message และ retry_after_seconds แตกต่างกันตาม endpoint เช่น endpoint GET จะตอบกลับ "Maximum 200 requests per minute." พร้อม "retry_after_seconds": 60

Header ขีดจำกัดอัตราการเรียก

API ส่ง header ขีดจำกัดอัตราการเรียกมาตรฐานในทุก response:

Headerคำอธิบาย
RateLimit-Limitจำนวนคำขอสูงสุดที่อนุญาตในหน้าต่างปัจจุบัน
RateLimit-Remainingจำนวนคำขอที่เหลือในหน้าต่างปัจจุบัน
RateLimit-Resetเวลา (วินาที) จนกว่าหน้าต่างขีดจำกัดจะรีเซ็ต

ใช้ header เหล่านี้เพื่อตรวจสอบการใช้งานและหลีกเลี่ยงการเกินขีดจำกัด

tip

กำหนดค่ากลไก Exponential Backoff ในไลบรารีคำขอของคุณ (เช่น Axios-retry) เพื่อลองใหม่อัตโนมัติหลังจากค่า retry_after_seconds เมื่อพบข้อผิดพลาด HTTP 429