กระทบยอดการชำระเงิน
ภาพรวม
หน้า กระทบยอด /merchant/payments/reconciliation ช่วยตรวจสอบว่าเงินที่เก็บได้ตรงกับยอดคำสั่งซื้อหรือไม่ เหมาะสำหรับปิดบัญชีรายวัน/รายเดือน
ตัวชี้วัดหลัก
4 การ์ดสรุป
- รับสุทธิ — ยอดรวมหลังหักคืนเงิน
- คืนเงิน — ยอดคืนทั้งหมด
- รอดำเนินการ — Payment ที่ status = pending
- ล้มเหลว — Payment ที่ status = failed
สรุปตามสถานะ
แสดงจำนวน + ยอดรวมแยกตาม:
- completed (สำเร็จ)
- partially_refunded (คืนบางส่วน)
- refunded (คืนเต็ม)
- pending (รอดำเนินการ)
- failed (ล้มเหลว)
สรุปตามช่องทาง
แยกตาม: เงินสด, โอน, QR, บัตร, เครดิต, Wallet
สรุปตาม Gateway
ถ้าใช้ gateway เช่น Omise / 2C2P จะแสดงแยกให้
การตรวจจับความไม่ตรงกัน
ระบบจะเทียบ:
ยอดสินค้าของ Order vs ยอดชำระสุทธิ (หักคืนเงินแล้ว)
ถ้าไม่ตรงกัน จะแสดงในตาราง "คำสั่งซื้อที่ยอดไม่ตรง" พร้อมส่วนต่าง
สาเหตุที่พบบ่อย
| ส่วนต่าง | สาเหตุ |
|---|
| + (ยังขาด) | ลูกค้ายังชำระไม่ครบ |
| + (ขาดมาก) | ยังไม่ได้บันทึก payment |
| - (เกิน) | คืนเงินผิดจำนวน |
| - (เกินเล็กน้อย) | ปัดเศษ (tolerance 0.01) |
การคืนเงิน
ไปที่ /merchant/payments → เลือกรายการ → คืนเงิน
คืนเต็มจำนวน vs คืนบางส่วน
- เต็มจำนวน — คืนเท่ากับยอดชำระ
- บางส่วน — ระบุจำนวนได้ (ห้ามเกินยอดที่เหลือ)
ระบบจะ:
- สร้าง PaymentRefund record
- อัพเดต Payment.refundedAmount
- เปลี่ยน status เป็น partially_refunded หรือ refunded
- Log event สำหรับ audit
Retry Payment
ถ้า Payment status = failed หรือ pending สามารถกด "ลองใหม่" ได้
ระบบจะ:
- เพิ่ม retryCount
- คำนวณ nextRetryAt ด้วย exponential backoff (1, 2, 5, 15, 30 นาที)
- สูงสุด 5 ครั้ง ต่อรายการ
Export
กดปุ่ม Export CSV เพื่อดาวน์โหลดข้อมูลไปทำต่อใน Excel