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

จับการชาร์จ

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


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

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

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

การตอบกลับ

200

จับสำเร็จ

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

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

400

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

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

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

401

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

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

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

404

ไม่พบ

ID การชาร์จไม่มีอยู่

สาเหตุทั่วไป:
  • ID การชาร์จไม่ถูกต้อง
  • การชาร์จจากบัญชีอื่น
  • ใช้ key ทดสอบกับการชาร์จจริง (หรือตรงกันข้าม)

422

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

ไม่สามารถจับการชาร์จได้

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

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

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

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

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

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

สถานะการชาร์จหลังจากการจับ

Fieldก่อนจับหลังจับ
capturefalsetrue
paidfalsetrue
capturabletruefalse
refundablefalsetrue
paid_atnullISO 8601 timestamp

ลองใช้งาน

จำเป็น - 1 ฟิลด์
เพิ่มเติม - 1 ฟิลด์