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

ดาวน์โหลดรายงานสถานะแบบกลุ่ม

ดาวน์โหลดรายงานสถานะโดยละเอียดสำหรับงานสร้างกำหนดการเรียกเก็บเงินแบบกลุ่มที่เสร็จสมบูรณ์ รายงานประกอบด้วยข้อมูล CSV ดั้งเดิมพร้อมคอลัมน์เพิ่มเติมที่แสดงสถานะการสร้างและข้อความข้อผิดพลาดสำหรับแต่ละแถว


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

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

จำเป็น - 1 ฟิลด์พารามิเตอร์พาธ
`recurring_id`STRING(required)
Recurring export ID ที่ได้รับจาก endpoint การสร้างแบบกลุ่ม IDs เริ่มต้นด้วย recr_ งานต้องอยู่ในสถานะ "completed"
Example:"recr_test_5xuy4w91xqz7d1w9u0t"

การตอบกลับ

200

ดาวน์โหลดรายงานสำเร็จ

ส่งคืนไฟล์ CSV ที่มีรายงานสถานะ Content-Type ของการตอบกลับคือ text/csv

คอลัมน์ CSV ประกอบด้วย:
  • คอลัมน์ดั้งเดิมทั้งหมดจาก CSV ที่อัปโหลด
  • status - สถานะการประมวลผลแถว (success หรือ failed)
  • schedule_id - Schedule ID ที่สร้าง (schd_*) สำหรับแถวที่สำเร็จ
  • error_code - รหัสข้อผิดพลาดสำหรับแถวที่ล้มเหลว
  • error_message - คำอธิบายข้อผิดพลาดโดยละเอียดสำหรับแถวที่ล้มเหลว
ตัวอย่างผลลัพธ์:

customer_key,customer,card,amount,description,every,period,days_of_month,start_date,end_date,status,schedule_id,error_code,error_message sub_001,cust_test_abc123,,100000,Monthly plan,1,month,1,2025-02-01,2026-01-31,success,schd_test_xyz789,, sub_002,cust_test_invalid,,50000,Basic plan,1,month,15,2025-02-01,,failed,,invalid_customer,Customer not found

400

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

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

สาเหตุทั่วไป:
  • รูปแบบ recurring_id ไม่ถูกต้อง
  • งานยังไม่เสร็จสมบูรณ์ (ยังอยู่ในสถานะ pending หรือ processing)

401

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

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

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

404

ไม่พบ

ไม่พบงานสร้างแบบกลุ่มหรือรายงานไม่พร้อมใช้งาน

สาเหตุทั่วไป:
  • recurring_id ไม่ถูกต้อง
  • งานเป็นของบัญชีอื่น
  • ใช้คีย์โหมด test และ live ปนกัน
  • รายงานหมดอายุแล้ว (เก่ากว่า 30 วัน)

5xx

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

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

วิธีจัดการ:

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

# ดาวน์โหลดรายงานสถานะการสร้างแบบกลุ่ม
curl https://api.omise.co/recurring_exports/recr_test_5xuy4w91xqz7d1w9u0t/download \
-u skey_test_5xuy4w91xqz7d1w9u0t: \
-o status_report.csv

การประมวลผลรายงานสถานะ

หลังจากดาวน์โหลดรายงาน คุณสามารถประมวลผลเพื่อจัดการแถวที่ล้มเหลว:

import csv

def process_status_report(filepath):
successful = []
failed = []

with open(filepath, 'r') as f:
reader = csv.DictReader(f)
for row in reader:
if row['status'] == 'success':
successful.append({
'customer_key': row['customer_key'],
'schedule_id': row['schedule_id']
})
else:
failed.append({
'customer_key': row['customer_key'],
'error_code': row['error_code'],
'error_message': row['error_message']
})

print(f"Successful: {len(successful)}")
print(f"Failed: {len(failed)}")

# ลองแถวที่ล้มเหลวใหม่หรือแจ้งทีมที่เกี่ยวข้อง
for fail in failed:
print(f" - {fail['customer_key']}: {fail['error_message']}")

return successful, failed

successful, failed = process_status_report('status_report.csv')

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

ค่าสถานะแถว

สถานะคำอธิบาย
successสร้างกำหนดการสำเร็จ
failedการสร้างกำหนดการล้มเหลว

รหัสข้อผิดพลาดทั่วไปในรายงาน

รหัสคำอธิบายการแก้ไข
invalid_customerไม่พบ Customer IDตรวจสอบว่าลูกค้ามีอยู่และใช้งานอยู่
no_card_attachedลูกค้าไม่มีบัตรชำระเงินแนบบัตรให้ลูกค้า
invalid_cardไม่พบ Card ID หรือหมดอายุใช้บัตรที่ถูกต้องหรือลบออกเพื่อใช้ค่าเริ่มต้น
invalid_amountจำนวนเงินเป็นศูนย์ ติดลบ หรือไม่ถูกต้องระบุจำนวนเงินเป็นจำนวนเต็มบวก
invalid_periodไม่รู้จักค่า periodใช้ day, week, หรือ month
invalid_days_of_monthค่าวันไม่ถูกต้องใช้ค่า 1-28
invalid_date_formatไม่รู้จักรูปแบบวันที่ใช้รูปแบบ YYYY-MM-DD
start_date_in_pastวันที่เริ่มต้นอยู่ในอดีตใช้วันที่ปัจจุบันหรืออนาคต
end_date_before_startวันที่สิ้นสุดอยู่ก่อนวันที่เริ่มต้นตรวจสอบว่าวันที่สิ้นสุดอยู่หลังวันที่เริ่มต้น
duplicate_scheduleมีกำหนดการสำหรับลูกค้าแล้วตรวจสอบกำหนดการที่มีอยู่

ลองใช้งาน

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