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

จับยอด Charge

จับยอด charge ที่ได้รับอนุมัติก่อนหน้านี้เพื่อทำให้การชำระเงินเสร็จสมบูรณ์ ใช้สำหรับ workflow การอนุมัติล่วงหน้าที่คุณอนุมัติก่อน (ด้วย capture=false) แล้วจับยอดทีหลัง


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

จำเป็น - 1 ฟิลด์พารามิเตอร์ที่จำเป็น
`id`STRING(required)
Charge ID ที่ต้องการจับยอด ต้องเป็น charge ที่ได้รับอนุมัติแต่ยังไม่ได้จับยอด (status: successful, authorized: true, capture: false, capturable: true)
Example:"chrg_test_5xuy4w91xqz7d1w9u0t"
Constraints:ต้องขึ้นต้นด้วย chrg_, ต้องเป็น charge ที่ยังไม่ได้จับยอดที่ถูกต้อง, ต้องอยู่ในกรอบเวลาจับยอด (7 วัน)
เพิ่มเติม - 2 ฟิลด์พารามิเตอร์เพิ่มเติม

การตอบกลับ

200

จับยอดสำเร็จ

จับยอด charge สำเร็จ การชำระเงินเสร็จสมบูรณ์และเงินถูกโอนแล้ว

การเปลี่ยนแปลงฟิลด์หลักหลังจับยอด:
  • capture - เปลี่ยนจาก false เป็น true
  • paid - เปลี่ยนจาก false เป็น true
  • capturable - เปลี่ยนจาก true เป็น false
  • refundable - เปลี่ยนจาก false เป็น true
  • paid_at - ตั้งค่าเป็น timestamp ปัจจุบัน

400

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

พารามิเตอร์ที่ระบุไม่ถูกต้อง

สาเหตุทั่วไป:
  • capture_amount ไม่ถูกต้อง (เกินจำนวนเงินที่อนุมัติ)
  • รูปแบบ charge ID ไม่ถูกต้อง

401

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

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

สาเหตุทั่วไป:
  • ขาด Authorization header
  • Secret key ไม่ถูกต้อง
  • ใช้ public key แทน secret key

404

ไม่พบ

Charge ID ไม่มีอยู่

สาเหตุทั่วไป:
  • Charge ID ไม่ถูกต้อง
  • Charge จากบัญชีอื่น
  • ใช้ test key สำหรับ live charge (หรือในทางกลับกัน)

422

ไม่สามารถประมวลผลได้

ไม่สามารถจับยอด charge ได้

สาเหตุทั่วไป:
  • Charge ถูกจับยอดแล้ว
  • Charge ไม่สามารถจับยอดได้ (หมดอายุหรือถูกย้อนกลับ)
  • จำนวนเงินที่จับยอดเกินจำนวนเงินที่อนุมัติ
  • การอนุมัติหมดอายุ (เกินกรอบเวลา 7 วัน)

5xx

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

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

วิธีจัดการ:

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

curl https://api.omise.co/charges/chrg_test_5xuy4w91xqz7d1w9u0t/capture \
-X POST \
-u skey_test_5xuy4w91xqz7d1w9u0t:

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

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

รหัสคำอธิบายการแก้ไข
not_foundCharge ID ไม่มีอยู่ตรวจสอบว่า charge ID ถูกต้อง
already_capturedCharge ถูกจับยอดแล้วตรวจสอบสถานะ charge ก่อนจับยอด
not_capturableไม่สามารถจับยอด charge ได้ตรวจสอบว่าฟิลด์ capturable เป็น true
capture_amount_too_highจำนวนเงินเกินการอนุมัติลดค่า capture_amount
authorization_expiredการอนุมัติล่วงหน้าหมดอายุ (>7 วัน)สร้าง charge ใหม่

สถานะ Charge หลังจับยอด

ฟิลด์ก่อนจับยอดหลังจับยอด
capturefalsetrue
paidfalsetrue
capturabletruefalse
refundablefalsetrue
paid_atnullISO 8601 timestamp

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

ลองใช้งาน

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