ข้ามไปยังเนื้อหาหลัก
เวอร์ชัน: ล่าสุด

สร้างตารางเวลา

สร้างตารางเวลาใหม่สำหรับการเรียกเก็บเงินหรือการโอนเงินแบบอัตโนมัติ ตารางเวลาช่วยให้คุณสามารถตั้งค่าการเรียกเก็บเงินแบบสมัครสมาชิก การชำระเงินแบบเป็นงวดๆ และการโอนเงินอัตโนมัติด้วยตัวเลือกความถี่ที่ยืดหยุ่น (รายวัน รายสัปดาห์ หรือรายเดือน)


พารามิเตอร์คำขอ

จำเป็น - 3 ฟิลด์การตั้งค่าตารางเวลา
`every`INTEGER(required)
ตัวคูณความถี่สำหรับช่วงเวลาของตาราง ตัวอย่างเช่น every=2 ร่วมกับ period=week หมายถึงทุก 2 สัปดาห์
Example:1
Constraints:ค่าต่ำสุด: 1
`period`STRING(required)
หน่วยเวลาสำหรับความถี่ของตารางเวลา
Example:"month"
Values:day, week, month
`on`OBJECT(required)
ระบุว่าตารางเวลาควรทำงานเมื่อใดภายในช่วงเวลา ฟิลด์ที่จำเป็นขึ้นอยู่กับประเภทของช่วงเวลา
Example:"{\"days_of_month\": [1, 15]}"
ไม่บังคับ - 2 ฟิลด์ระยะเวลาของตารางเวลา
`start_date`STRING(optional)
วันที่เริ่มต้นของตารางเวลาในรูปแบบ ISO 8601 (YYYY-MM-DD) หากไม่ระบุจะใช้วันนี้เป็นค่าเริ่มต้น
Example:"2025-01-01"
`end_date`STRING(optional)
วันที่สิ้นสุดของตารางเวลาในรูปแบบ ISO 8601 (YYYY-MM-DD) ตารางเวลาจะหมดอายุหลังจากวันที่นี้
Example:"2025-12-31"
มีเงื่อนไข - ใช้ charge หรือ transferการตั้งค่าการเรียกเก็บเงิน
`charge`OBJECT(optional)
การตั้งค่าสำหรับการเรียกเก็บเงินแบบเป็นงวดๆ จำเป็นหากไม่ได้ใช้ transfer
Example:"{\"amount\": 100000, \"currency\": \"THB\", \"customer\": \"cust_test_xxx\"}"
มีเงื่อนไข - ใช้ charge หรือ transferการตั้งค่าการโอนเงิน

การตอบกลับ

200

สร้างตารางเวลาสำเร็จ

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

ออบเจกต์ตารางเวลาประกอบด้วย:
  • id - รหัสตารางเวลา (schd_*)
  • livemode - โหมด Live หรือ test
  • location - เส้นทาง API ไปยังออบเจกต์
  • status - สถานะเริ่มต้น (โดยทั่วไปคือ "active")
  • active - ตารางเวลากำลังทำงานอยู่หรือไม่
  • every - ตัวคูณความถี่
  • period - หน่วยเวลา (day, week, month)
  • on - การตั้งค่าระยะเวลา
  • in_words - คำอธิบายของตารางเวลาในรูปแบบที่อ่านง่าย
  • start_on - วันที่เริ่มต้นตารางเวลา
  • end_on - วันที่สิ้นสุดตารางเวลา
  • next_occurrences_on - อาร์เรย์ของวันที่ดำเนินการที่จะมาถึงสูงสุด 30 รายการ
  • occurrences - รายการออบเจกต์ occurrence
  • charge หรือ transfer - พารามิเตอร์การดำเนินการ
  • created_at - เวลาที่สร้างตารางเวลา (ISO 8601)
  • deleted - ตารางเวลาถูกลบแล้วหรือไม่

400

คำขอไม่ถูกต้อง

การตรวจสอบคำขอล้มเหลว ตรวจสอบข้อความข้อผิดพลาดเพื่อดูรายละเอียด

สาเหตุที่พบบ่อย:
  • ขาดพารามิเตอร์ที่จำเป็น (every, period, on)
  • ค่า period ไม่ถูกต้อง
  • การตั้งค่า on ไม่ถูกต้องสำหรับ period ที่ระบุ
  • ไม่ได้ระบุทั้ง charge และ transfer
  • รหัสลูกค้าหรือรหัสผู้รับไม่ถูกต้อง
  • วันที่เริ่มต้นอยู่ในอดีต
  • วันที่สิ้นสุดอยู่ก่อนวันที่เริ่มต้น

401

ไม่ได้รับอนุญาต

การยืนยันตัวตนล้มเหลว API key ไม่ถูกต้องหรือไม่มี

สาเหตุที่พบบ่อย:
  • ไม่มี Authorization header
  • Secret key ไม่ถูกต้อง
  • ใช้ public key แทน secret key
  • รูปแบบ HTTP Basic Auth ไม่ถูกต้อง

404

ไม่พบ

ไม่พบทรัพยากรที่อ้างอิง

สาเหตุที่พบบ่อย:
  • รหัสลูกค้าไม่ถูกต้องในการตั้งค่า charge
  • รหัสผู้รับไม่ถูกต้องในการตั้งค่า transfer
  • รหัสบัตรที่ระบุไม่ถูกต้อง
  • ลูกค้าไม่มีบัตรเริ่มต้น

5xx

ข้อผิดพลาดของเซิร์ฟเวอร์

เกิดข้อผิดพลาดฝั่งเซิร์ฟเวอร์ ข้อผิดพลาดเหล่านี้พบได้น้อยแต่ควรจัดการอย่างเหมาะสม

วิธีจัดการ:

ตัวอย่างโค้ด

สร้างตารางเวลาเรียกเก็บเงิน

# ตารางเวลาเรียกเก็บเงินรายเดือนในวันที่ 1 และ 15
curl https://api.omise.co/schedules \
-u skey_test_5xuy4w91xqz7d1w9u0t: \
-d every=1 \
-d period=month \
-d "on[days_of_month][]=1" \
-d "on[days_of_month][]=15" \
-d start_date=2025-01-01 \
-d end_date=2025-12-31 \
-d "charge[amount]=100000" \
-d "charge[currency]=THB" \
-d "charge[customer]=cust_test_5xuy4w91xqz7d1w9u0t" \
-d "charge[description]=Monthly subscription"

สร้างตารางเวลาโอนเงิน

# ตารางเวลาโอนเงินทุกสัปดาห์ - ทุกวันจันทร์ 75% ของยอดคงเหลือ
curl https://api.omise.co/schedules \
-u skey_test_5xuy4w91xqz7d1w9u0t: \
-d every=1 \
-d period=week \
-d "on[weekdays][]=monday" \
-d start_date=2025-01-01 \
-d end_date=2025-12-31 \
-d "transfer[recipient]=recp_test_5xuy4w91xqz7d1w9u0t" \
-d "transfer[percentage_of_balance]=75"

# โอนเงินจำนวนคงที่รายเดือนในวันที่ 1
curl https://api.omise.co/schedules \
-u skey_test_5xuy4w91xqz7d1w9u0t: \
-d every=1 \
-d period=month \
-d "on[days_of_month][]=1" \
-d start_date=2025-01-01 \
-d "transfer[recipient]=recp_test_5xuy4w91xqz7d1w9u0t" \
-d "transfer[amount]=1000000"

รหัสข้อผิดพลาดและผลลัพธ์

รหัสข้อผิดพลาดที่พบบ่อย

รหัสคำอธิบายวิธีแก้ไข
authentication_failureAPI key ไม่ถูกต้องตรวจสอบว่า secret key ของคุณถูกต้อง
invalid_scheduleการตั้งค่าตารางเวลาไม่ถูกต้องตรวจสอบพารามิเตอร์ every, period และ on
invalid_customerไม่พบลูกค้าตรวจสอบว่ารหัสลูกค้ามีอยู่จริง
invalid_recipientไม่พบผู้รับตรวจสอบว่ารหัสผู้รับมีอยู่จริง
invalid_cardไม่พบบัตรหรือบัตรหมดอายุตรวจสอบรหัสบัตรหรือใช้บัตรเริ่มต้นของลูกค้า

การตั้งค่าช่วงเวลาของตารางเวลา

Periodพารามิเตอร์ on ที่จำเป็นตัวอย่าง
dayไม่จำเป็นทำงานทุก N วัน
weekweekdays{"weekdays": ["monday", "friday"]}
monthdays_of_month หรือ weekday_of_month{"days_of_month": [1, 15]}

🔑ข้อมูลยืนยันตัวตน API

ทดลองใช้งาน

จำเป็น - 3 ฟิลด์
IP ของคุณ: ...กำลังโหลด...