โลโก้ LOCO Loco Payment GatewaySystem Specification
เอกสารระบบ · ฉบับใช้งาน

ระบบบริหารการชำระเงิน Loco Payment Gateway Management

ศูนย์ควบคุมการรับชำระเงินของ LOCO ที่เชื่อมกับธนาคาร KBank และ SCB ครอบคลุมการรับชำระทุกช่องทาง ธุรกรรม ลิงก์ชำระเงิน คืนเงิน การกระทบยอดและรอบโอนเงิน พร้อมรายงานและการจัดการสิทธิ์ เอกสารฉบับนี้อธิบายระบบตามที่สร้างจริง พร้อมการออกแบบการเชื่อมต่อธนาคารสำหรับการใช้งานจริง

เวอร์ชันระบบ
V1 (ต้นแบบ)
วันที่เอกสาร
16 ตุลาคม 2569
รูปแบบระบบ
เว็บแอปไฟล์เดียว · Cloudflare Pages
ที่ตั้งระบบ
loco-payment-gateway.pages.dev

01

บทนำและขอบเขต

Loco Payment Gateway Management เป็นระบบบริหารการชำระเงินออนไลน์ของ LOCO ทำหน้าที่เป็น ศูนย์ควบคุมการรับชำระเงินจากทุกจุดรับเงิน ตั้งแต่ลูกค้าสแกน QR พร้อมเพย์ แตะบัตรเครดิต ผ่อนชำระ หรือจ่ายผ่านวอลเล็ต ไปจนถึงรอบโอนเงินเข้าบัญชีบริษัท โดยทำงานเชื่อมกับระบบของธนาคาร KBank และ SCB ทั้งการขอรายการชำระ การรับผลยืนยันอัตโนมัติ และการกระทบยอดรายวัน

ระบบถูกออกแบบให้ทีมปฏิบัติการและการเงินเห็นทุกอย่างจบในที่เดียว: ธุรกรรมทุกรายการตรวจย้อนได้ ค่าธรรมเนียมแยกตามช่องทาง รอบโอนและกระทบยอดชัดเจน และจัดการจุดรับเงินได้ทุกแห่งในเครือ ปัจจุบันระบบอยู่ในเวอร์ชันต้นแบบที่ทำงานครบทุกหน้าจอในโหมดสาธิต พร้อมการออกแบบการเชื่อมต่อจริงที่ระบุไว้ในบทที่ 6 และ 9

หน้าจอใช้งาน
12
ครบวงจรรับชำระถึงปิดงบ
บทบาทผู้ใช้
4
ผู้ดูแลระบบ · การเงิน · ปฏิบัติการ · ผู้ชมรายงาน
ช่องทางธนาคาร
2
KBank และ SCB
จุดรับเงิน
29
พร้อม Merchant ID แยกรายธนาคาร
วิธีรับชำระ
4
QR พร้อมเพย์ · บัตร · ผ่อนชำระ · วอลเล็ต
รอบโอนเงิน
T+1
กระทบยอดอัตโนมัติก่อนโอน

สิ่งที่ระบบทำได้ในภาพรวม

  • ภาพรวมเรียลไทม์: ยอดรับชำระวันนี้ อัตราความสำเร็จ ยอดรอชำระบัญชี และยอดคืนเงิน พร้อมกราฟแยกรายธนาคารและสถานะการเชื่อมต่อ
  • ธุรกรรมครบวงจร: ค้นหาและกรองทุกมิติ ดูรายละเอียดแบบไทม์ไลน์ คืนเงิน ส่ง Webhook ซ้ำ และส่งออกไฟล์ CSV
  • ลิงก์ชำระเงิน: สร้าง QR และลิงก์เรียกเก็บเงินรายรายการ พร้อมวันหมดอายุและการติดตามสถานะ
  • คืนเงิน: คืนแบบเต็มจำนวนหรือบางส่วน ส่งคำขอไปธนาคาร และติดตามผลจนจบขั้นตอน
  • กระทบยอดและรอบโอน: รวมยอดรายวันเป็นรอบ T+1 หักค่าธรรมเนียม แสดงความถูกต้องของทุกรอบ และแจ้งเมื่อยอดไม่ตรง
  • ช่องทางธนาคาร: เปิดและปิดบริการของ KBank และ SCB ต่อจุดรับเงิน จัดการคีย์เชื่อมต่อ Webhook และค่าธรรมเนียม
  • จุดรับเงิน: บริหารสถานะและบริการของจุดรับเงินทุกแห่ง พร้อมยอดรับชำระล่าสุดของแต่ละจุด
  • รายงาน: สรุปยอดรับชำระ ค่าธรรมเนียม และอัตราความสำเร็จ แยกตามวัน จุดรับเงิน และช่องทาง พร้อมส่งออก CSV
  • ผู้ใช้และสิทธิ์: 4 บทบาท 10 สิทธิ์ กำหนดขอบเขตจุดรับเงินที่แต่ละคนรับผิดชอบได้
  • บันทึกระบบ: ประวัติการเรียก API และการส่ง Webhook ทุกครั้ง พร้อมความหน่วงและผลตอบกลับสำหรับตรวจสอบ

ขอบเขตของเอกสารฉบับนี้

เอกสารนี้อธิบาย ระบบต้นแบบเวอร์ชัน V1 ตามที่สร้างจริง ณ วันที่ระบุ โดยแยกให้ชัดเจนระหว่าง (หนึ่ง) ส่วนที่ทำงานแล้วในโหมดสาธิต ซึ่งเปิดใช้ได้ทันทีจากไฟล์เว็บแอป และ (สอง) ส่วนการเชื่อมต่อธนาคารจริง ซึ่งออกแบบไว้พร้อมใช้งานและสรุปขั้นตอนดำเนินการไว้ในบทที่ 9 เอกสารนี้จึงใช้ได้ทั้งสำหรับทบทวนการออกแบบ ชี้แจงผู้มีส่วนได้ส่วนเสีย และเป็นคู่มือตั้งต้นของทีมที่ดูแลระบบต่อ

02

สถาปัตยกรรมระบบ

ระบบแบ่งการทำงานเป็นสามชั้นชัดเจน ได้แก่ ชั้นคอนโซลบริหารสำหรับทีมงาน ชั้นบริการชำระเงินที่สร้างรายการและรับผลจากธนาคาร และชั้นเชื่อมต่อธนาคารที่คุยกับ KBank และ SCB ในเวอร์ชันต้นแบบ ชั้นทั้งหมดรวมอยู่ในไฟล์เว็บแอปเดียวเพื่อสาธิตครบทุกฟังก์ชัน เมื่อใช้งานจริง แยกเป็นหน้าบ้าน ระบบบริการ และฐานข้อมูลกลางตามแนวทางที่ระบุในแผนภาพ โดยใช้แนวทางแบบเดียวกับระบบ LOCO24Park ที่ใช้งานอยู่แล้ว (Cloudflare Worker + D1)

สถาปัตยกรรมระบบ Loco Payment Gateway Management ทีมปฏิบัติการ ลูกค้า และระบบปลายทาง เชื่อมต่อกับคอนโซล Payment Gateway ซึ่งสร้างรายการรับชำระ ส่งคำขอไปยังธนาคาร KBank และ SCB รับผลยืนยันผ่าน Webhook นำเข้าสู่รอบโอนเงิน T+1 และกระทบยอดก่อนโอนเข้าบัญชีบริษัท โดยโหมดสาธิตใช้ข้อมูลฝังในตัว และแนวทางการใช้งานจริงจัดเก็บข้อมูลกลางด้วย Cloudflare Worker และ D1 ผู้ใช้และระบบที่เชื่อมต่อ ทีมปฏิบัติการและการเงิน เบราว์เซอร์ · คอนโซล 12 หน้าจอ สิทธิ์แยก 4 บทบาทตามหน้าที่ ค้นหา กรอง คืนเงิน ส่งออกรายงาน ลูกค้าผู้ชำระเงิน สแกน QR พร้อมเพย์ / แตะบัตร ผ่อนชำระผ่านแอปธนาคาร ที่จุดรับเงินหรือลิงก์ชำระเงิน ระบบปลายทาง LOCO24Park · loco.co รับ Webhook แจ้งผลอัตโนมัติ เมื่อเชื่อมต่อใช้งานจริง ผู้ดูแลระบบ ดีพลอย · จัดการคีย์เชื่อมต่อ และช่องทางธนาคาร LOCO PAYMENT GATEWAY คอนโซลบริหาร (12 หน้าจอ) ภาพรวม · ธุรกรรม · ลิงก์ · คืนเงิน · ชำระบัญชี · ร้านค้า · ช่องทางธนาคาร · รายงาน · ผู้ใช้ · ตั้งค่า · บันทึกระบบ ระบบรับชำระเงิน สร้างรายการ · รับผลจากธนาคาร QR พร้อมเพย์ · บัตร · ผ่อน · วอลเล็ต ลิงก์ชำระเงินสำหรับเรียกเก็บ ส่ง Webhook ให้ระบบปลายทาง ระบบการเงิน รอบโอนเงินและกระทบยอด (T+1) ค่าธรรมเนียม (MDR) ต่อช่องทาง คืนเงินเต็มจำนวน / บางส่วน ยอดรอโอนแยกรายธนาคาร บันทึกและตรวจสอบ บันทึกธุรกรรมทุกรายการ · บันทึก API และ Webhook · สถานะ 4 ระดับ ตรวจย้อนได้ทุกขั้น ข้อมูลของระบบ โหมดสาธิตปัจจุบัน: หน้าจอทำงานด้วยข้อมูลตัวอย่างที่ฝังในตัว ครบทุกโมดูล ธุรกรรม · คืนเงิน · รอบโอน · ลิงก์ · จุดรับเงิน · บันทึกระบบ · บัญชีผู้ใช้ แนวทางการเชื่อมต่อจริง จัดเก็บข้อมูลกลางด้วย Cloudflare Worker + D1 · แนวทางเดียวกับระบบ LOCO24Park เก็บคีย์ธนาคารแบบเข้ารหัส · แยกสิทธิ์ตามบทบาท · บันทึกทุกคำขอที่เข้าและออก ข้อมูลพร้อมสำหรับรายงาน การกระทบยอด และการปิดงบตามรอบจริง ธนาคารและบัญชี KBank · ธนาคารกสิกรไทย QR พร้อมเพย์ · บัตรเครดิต · ผ่อนชำระ ยืนยันผลผ่าน Webhook อัตโนมัติ รอบโอนทุกวัน 17:00 น. (T+1) Merchant ID และคีย์ต่อจุดรับเงิน SCB · ธนาคารไทยพาณิชย์ QR พร้อมเพย์ · บัตรเครดิต · วอลเล็ต ยืนยันผลผ่าน Webhook อัตโนมัติ รอบโอนทุกวัน 16:30 น. (T+1) Merchant ID และคีย์ต่อจุดรับเงิน บัญชีบริษัท LOCO รับยอดสุทธิหลังหักค่าธรรมเนียม กระทบยอดอัตโนมัติก่อนบันทึก พร้อมรายงานสำหรับปิดงบ ทั้งสองธนาคารโอนเข้าบัญชีเดียวกันหลังกระทบยอด อัตราค่าธรรมเนียมและรอบโอนเป็นค่าตั้งต้นในโหมดสาธิต ปรับได้ตามสัญญาจริงกับธนาคาร HTTPS แจ้งผล คำขอ ผลกลับ คำขอ ผลกลับ โอนสุทธิ ลูกค้าชำระผ่านแอปธนาคารของตนเอง (QR · บัตร · ผ่อน) เส้นทึบ = คำขอและการยืนยันผลระหว่างคอนโซลกับธนาคาร · เส้นประสีส้ม = เส้นทางชำระเงินของลูกค้า · พื้นลายทแยง = ช่องทางที่ผู้ดูแลใช้งาน
แผนภาพสถาปัตยกรรม: ทีมงานใช้งานคอนโซล จุดรับเงินและลูกค้าชำระผ่านธนาคาร KBank และ SCB ระบบรับผลยืนยันอัตโนมัติผ่าน Webhook รวมรอบโอน T+1 กระทบยอด แล้วจึงแจ้งผลให้ระบบปลายทาง โดยแนวทางการใช้งานจริงจัดเก็บข้อมูลกลางที่ Cloudflare Worker + D1

องค์ประกอบหลัก

ตารางที่ 2.1 · องค์ประกอบของระบบ
องค์ประกอบหน้าที่
คอนโซลบริหารหน้าจอใช้งาน 12 หน้าสำหรับทีมงาน ครอบคลุมภาพรวม ธุรกรรม ลิงก์ชำระเงิน คืนเงิน ชำระบัญชี ร้านค้าและจุดรับเงิน ช่องทางธนาคาร รายงาน ผู้ใช้ ตั้งค่า และบันทึกระบบ
ระบบรับชำระเงินสร้างรายการชำระ (QR พร้อมเพย์ บัตร ผ่อนชำระ ลิงก์ชำระเงิน) รับผลยืนยันจากธนาคาร บันทึกธุรกรรม และส่ง Webhook แจ้งระบบปลายทาง
ระบบการเงินรวมยอดรายวันเป็นรอบโอนเงิน T+1 หักค่าธรรมเนียมตามอัตราต่อช่องทาง กระทบยอดกับรายงานธนาคาร และติดตามสถานะความถูกต้องของทุกรอบ
บันทึกและตรวจสอบบันทึกธุรกรรมทุกรายการ บันทึกการเรียก API และการส่ง Webhook พร้อมความหน่วงและรหัสผลตอบกลับ เพื่อการตรวจสอบย้อนหลัง
ชั้นข้อมูลโหมดสาธิตทำงานด้วยข้อมูลตัวอย่างฝังในตัว การใช้งานจริงออกแบบให้เก็บรวมที่ฐานข้อมูลกลางชุดเดียว พร้อมประวัติทุกการเคลื่อนไหว
ช่องทางธนาคารKBank และ SCB ผ่าน Merchant ID แยกต่อจุดรับเงิน ยืนยันผลด้วย Webhook และมีรอบโอนรายวันของแต่ละธนาคาร
ระบบปลายทางระบบอื่นในเครือ เช่น LOCO24Park และเว็บไซต์ loco.co รับแจ้งผลชำระเงิน คืนเงิน และสถานะอัตโนมัติผ่าน Webhook เมื่อเชื่อมต่อจริง

การไหลของคำขอ

ทุกการทำงานในระบบเดินตามเส้นทางเดียวกันเสมอ ทำให้ตรวจสอบและต่อระบบเพิ่มได้ง่าย:

  1. เข้าสู่ระบบ: ผู้ใช้เปิดคอนโซลและยืนยันตัวตน ระบบตรวจสิทธิ์ตาม 4 บทบาทก่อนแสดงข้อมูล
  2. สร้างรายการรับชำระ: จากจุดรับเงินหรือลิงก์ชำระเงิน ระบบส่งคำขอไปยังธนาคารของช่องทางนั้น
  3. ลูกค้าชำระเงิน: ลูกค้าจ่ายในแอปธนาคารของตนเอง (QR บัตร หรือผ่อนชำระ) ไม่ผ่านหน้าจอของระบบ
  4. รับผลยืนยัน: ธนาคารส่งผลกลับแบบ Webhook ระบบบันทึกธุรกรรมทันทีและแจ้งระบบปลายทาง
  5. รวมรอบโอนและกระทบยอด: สิ้นวัน ระบบรวมยอดเป็นรอบ T+1 หักค่าธรรมเนียม และเทียบยอดกับธนาคารอัตโนมัติ
  6. คืนเงินเมื่อจำเป็น: ทีมการเงินยืนยันคำขอ ระบบส่งไปธนาคารและติดตามผลจนบันทึกในรายงานครบถ้วน
สถานะปัจจุบัน คอนโซลในเวอร์ชันนี้ทำงานด้วย ข้อมูลตัวอย่างที่ฝังในตัว จึงเปิดใช้ได้ทันทีโดยไม่ต้องติดตั้งหรือเตรียมเซิร์ฟเวอร์ เหมาะสำหรับทบทวนการออกแบบและฝึกใช้งานทีม ส่วนการเชื่อมต่อธนาคารจริงใช้การออกแบบในบทที่ 6 และขั้นตอนดำเนินการในบทที่ 9
03

บทบาทและสิทธิ์การใช้งาน

ระบบแบ่งสิทธิ์ผู้ใช้เป็น 4 บทบาท ครอบคลุม 10 สิทธิ์ใน 4 กลุ่มงาน (ธุรกรรม การเงิน รายงาน และระบบ) โดยผู้ดูแลระบบกำหนดบทบาทของแต่ละคนได้ พร้อมกำหนดขอบเขตจุดรับเงินที่รับผิดชอบ (ทุกจุด หรือเลือกเฉพาะจุด) การแยกแบบนี้ทำให้ทีมปฏิบัติการสร้างรายการรับชำระได้ แต่แตะต้องงานเงินไม่ได้ และทีมการเงินคุมการคืนเงินกับกระทบยอดโดยไม่ต้องเห็นการตั้งค่าระบบ

ตารางที่ 3.1 · บทบาทผู้ใช้งาน
บทบาททำได้ขอบเขต
ผู้ดูแลระบบ ทุกส่วนของระบบ รวมการจัดการผู้ใช้งาน ช่องทางธนาคาร และการตั้งค่าระบบ (10 จาก 10 สิทธิ์) ทุกจุดรับเงิน
การเงิน ดูธุรกรรม คืนเงิน ดูรอบชำระบัญชี ยืนยันกระทบยอด ดูรายงาน และส่งออกรายงาน (6 สิทธิ์) ทุกจุดรับเงิน
ปฏิบัติการ ดูธุรกรรม สร้างลิงก์ชำระเงิน และดูรายงาน (3 สิทธิ์) เฉพาะจุดรับเงินที่ได้รับมอบหมาย
ผู้ชมรายงาน ดูธุรกรรมและดูรายงานได้อย่างเดียว (2 สิทธิ์) เหมาะกับผู้บริหารที่ต้องการติดตามผล ทุกจุดรับเงิน
ตารางที่ 3.2 · สิทธิ์รายกลุ่มงาน
สิทธิ์ผู้ดูแลระบบการเงินปฏิบัติการผู้ชมรายงาน
ดูรายการธุรกรรมทั้งหมด●●●●
สร้างและยืนยันการคืนเงิน●●
สร้างลิงก์ชำระเงิน●●
ดูรอบชำระบัญชีและยอดโอน●●
ยืนยันผลกระทบยอดกับธนาคาร●●
ดูรายงานสรุปและค่าธรรมเนียม●●●●
ส่งออกรายงานเป็นไฟล์●●
ตั้งค่าช่องทางธนาคาร●
จัดการผู้ใช้งานและบทบาท●
แก้ไขการตั้งค่าระบบ●
หลักการออกแบบสิทธิ์ แยกหน้าที่ชัดเจน (Separation of Duties): ผู้ที่สร้างรายการรับชำระไม่ใช่ผู้ที่ยืนยันการคืนเงินโดยอัตโนมัติ และการตั้งค่าช่องทางธนาคารจำกัดเฉพาะผู้ดูแลระบบ การเปลี่ยนแปลงบทบาทและสิทธิ์ทุกครั้งมีผลทันทีกับการเข้าใช้งานถัดไป
04

หน้าจอและความสามารถ

คอนโซลประกอบด้วย 12 หน้าจอ เรียงตามการใช้งานจริงของทีมงาน ตั้งแต่เห็นภาพรวม ลงรายละเอียดธุรกรรม จนถึงการตั้งค่าและตรวจสอบย้อนหลัง ทุกหน้าจอใช้ข้อมูลชุดเดียวกัน การแก้ไขในหน้าหนึ่งจึงสะท้อนถึงหน้าอื่นทันที เช่น เมื่อคืนเงินจากหน้าธุรกรรม รายการจะปรากฏในหน้าคืนเงินและตัวเลขในภาพรวมพร้อมกัน

ตารางที่ 4.1 · หน้าจอการทำงานทั้ง 12 หน้าจอ
หน้าจอทำอะไรได้
เข้าสู่ระบบยืนยันตัวตนด้วยอีเมลและรหัสผ่าน พร้อมตัวเลือกจำการเข้าใช้ในเครื่อง (โหมดสาธิตใช้บัญชีใดก็ได้เพื่อเข้าชม)
ภาพรวมตัวชี้วัด 4 ด้าน (ยอดรับชำระวันนี้ อัตราความสำเร็จ ยอดรอชำระบัญชี คืนเงินเดือนนี้) กราฟยอดรายวันแยก KBank และ SCB สัดส่วนวิธีชำระ จุดรับเงินยอดสูงสุด สถานะการเชื่อมต่อธนาคาร และธุรกรรมล่าสุด
ธุรกรรมค้นหาและกรองตามช่องทาง วิธีชำระ สถานะ และช่วงเวลา พร้อมแถบสรุปยอด เปิดรายละเอียดแบบไทม์ไลน์ 5 ขั้น คืนเงิน ส่ง Webhook ซ้ำ คัดลอกเลขอ้างอิง และส่งออก CSV
ลิงก์ชำระเงินสร้าง QR และลิงก์เรียกเก็บเงิน กำหนดยอด จุดรับเงิน ธนาคาร และอายุลิงก์ ดูตัวอย่าง QR คัดลอกลิงก์ และยกเลิกลิงก์ที่ไม่ใช้แล้ว
คืนเงินสร้างคำขอคืนเงินโดยเลือกธุรกรรมต้นทาง ระบุเหตุผล คืนเต็มจำนวนหรือบางส่วน ยืนยันก่อนส่งไปธนาคาร และติดตามสถานะจนจบ
ชำระบัญชีติดตามรอบโอนเงิน T+1 ของทั้งสองธนาคาร สรุปยอดรอโอน ค่าธรรมเนียม และผลกระทบยอด 4 สถานะ พร้อมขั้นตอนยืนยันเมื่อยอดไม่ตรง
ร้านค้าและจุดรับเงินบริหารจุดรับเงินทุกแห่ง แสดง Merchant ID ของทั้ง KBank และ SCB บริการที่เปิดใช้ จำนวนจุด QR ยอดรับชำระล่าสุด และการระงับหรือเปิดใช้งานจุด
ช่องทางธนาคารจัดการการเชื่อมต่อ KBank และ SCB เปิดปิดบริการรายวิธีชำระ ตรวจค่าธรรมเนียม (MDR) แก้ไข Merchant ID Terminal Webhook และคีย์ พร้อมทดสอบการเชื่อมต่อและดูกิจกรรมล่าสุด
รายงานสรุปยอดรับชำระ ค่าธรรมเนียม และอัตราความสำเร็จตามช่วงเวลา 7/14/30 วัน แนวโน้มรายวัน ตารางรายได้รายวัน แยกตามธนาคารและจุดรับเงิน พร้อมส่งออก CSV
ผู้ใช้และสิทธิ์เพิ่มและแก้ไขผู้ใช้งาน กำหนดบทบาทและขอบเขตจุดรับเงิน ระงับหรือคืนสิทธิ์ และแก้ไขชุดสิทธิ์ของแต่ละบทบาท
ตั้งค่าข้อมูลบริษัท การแจ้งเตือน 4 รายการ (ธุรกรรมล้มเหลว กระทบยอดไม่ตรง รายงานประจำวัน คำขอคืนเงิน) นโยบายความปลอดภัย และคีย์เชื่อมต่อสำหรับระบบภายนอกพร้อมการหมุนคีย์
บันทึกระบบประวัติการเรียก API และการส่ง Webhook ทุกครั้ง กรองตามประเภทหรือผลตอบกลับ ดูความหน่วงและข้อมูลคำขอฉบับเต็มสำหรับการตรวจสอบ

หลักการออกแบบหน้าจอ

  • ตัวเลขที่เชื่อถือได้: ตัวเลขการเงินทุกตัวใช้ฟอนต์แบบตาราง (tabular) หลักตรงกันทุกแถว อ่านเทียบกันได้ทันที
  • ทุกรายการตรวจย้อนได้: ทุกธุรกรรมมีไทม์ไลน์ ทุกการเรียก API มีบันทึก ทุกรอบโอนมีที่มาของยอด
  • สองธนาคารเป็นพลเมืองชั้นหนึ่ง: สีและสัญลักษณ์ของ KBank และ SCB ปรากฏสม่ำเสมอทั้งระบบ ช่วยการกวาดสายตาแยกรายธนาคารได้ทันที
  • ใช้ได้ทุกขนาดจอ: หน้าจอทำงานได้บนเดสก์ท็อป แท็บเล็ต และมือถือ โดยตารางข้อมูลเลื่อนในกรอบของตนเองไม่ทำหน้าเว็บแตก
05

ขั้นตอนการทำงานหลัก

การทำงานของระบบวนอยู่กับวงจรเดียวเสมอ: สร้างรายการ ลูกค้าจ่าย ธนาคารยืนยัน บันทึกและแจ้งผล รวมรอบโอน กระทบยอด แล้วเข้าบัญชี วงจรนี้ทำงานอัตโนมัติเกือบทั้งหมด ทีมงานเข้ามาแทรกเฉพาะกรณีคืนเงินหรือเมื่อยอดกระทบไม่ตรงเท่านั้น

วงจรชีวิตของการชำระเงิน เจ็ดขั้นตอนของการชำระเงิน ตั้งแต่สร้างรายการ ลูกค้าชำระเงิน ธนาคารยืนยันผล บันทึกและแจ้งระบบปลายทาง เข้ารอบโอน T+1 กระทบยอดอัตโนมัติ จนถึงเข้าบัญชีบริษัท พร้อมเส้นทางคืนเงินกรณีจำเป็น 01 02 03 04 05 06 07 สร้างรายการ ลูกค้าชำระเงิน ธนาคารยืนยันผล บันทึกและแจ้งผล เข้ารอบโอน T+1 กระทบยอดอัตโนมัติ เข้าบัญชีบริษัท รับชำระที่จุดรับเงิน หรือสร้างลิงก์ชำระเงิน QR พร้อมเพย์ · บัตร ผ่อนชำระ · วอลเล็ต KBank / SCB ส่ง Webhook เข้าระบบ บันทึกธุรกรรมทุกรายการ และแจ้งระบบปลายทาง หักค่าธรรมเนียม (MDR) ตามรอบของแต่ละธนาคาร เทียบยอดกับธนาคาร ก่อนยืนยันโอนเงิน ยอดสุทธิพร้อมรายงาน สำหรับปิดงบ รอชำระ กำลังประมวลผล สำเร็จ บันทึกแล้ว รอโอน กระทบยอดแล้ว โอนแล้ว เส้นทางคืนเงิน (เมื่อจำเป็น) ทีมงานยืนยันคำขอ › ส่งคำขอไปธนาคาร › คืนเข้าช่องทางเดิมของลูกค้า 1-3 วันทำการ › บันทึกในรายงานและกระทบยอดอัตโนมัติ สถานะ: รอดำเนินการ › สำเร็จ / ไม่สำเร็จ ขั้นตอนที่ 03 และ 04 ทำงานอัตโนมัติผ่าน Webhook · ผู้ใช้เห็นความคืบหน้าทั้งหมดได้ในหน้าธุรกรรม หน้าคืนเงิน และหน้าชำระบัญชี ทุกการเปลี่ยนสถานะถูกบันทึกในบันทึกระบบ พร้อมอ้างอิงธนาคารสำหรับการตรวจสอบย้อนหลัง
แผนภาพวงจรชีวิตของการชำระเงิน: เจ็ดขั้นตอนหลักจากสร้างรายการจนถึงเข้าบัญชีบริษัท พร้อมช่วงสถานะที่ทีมงานมองเห็นในแต่ละหน้าจอ และเส้นทางคืนเงินกรณีจำเป็น

5.1 การรับชำระเงินที่จุดรับเงิน

  1. ทีมงานเปิดรับชำระที่จุดรับเงิน เลือกวิธีชำระ (QR พร้อมเพย์ บัตรเครดิต/เดบิต ผ่อนชำระ หรือวอลเล็ต) และช่องทางธนาคาร
  2. ระบบสร้างรายการและส่งคำขอไปยังธนาคารของช่องทางนั้น ลูกค้าชำระเงินในแอปธนาคารของตนเอง
  3. ธนาคารประมวลผลและส่งผลยืนยันกลับแบบ Webhook ระบบบันทึกธุรกรรมพร้อมค่าธรรมเนียมตามอัตราที่ตั้งไว้
  4. ระบบแจ้งผลไปยังระบบปลายทางทันที (เช่น ระบบลานจอด หรือเว็บไซต์) เพื่อให้งานต่อเนื่อง
  5. ผู้ใช้เห็นรายการใหม่ในหน้าธุรกรรมทันที พร้อมสถานะและไทม์ไลน์ครบทุกขั้น
  6. สิ้นวัน รายการที่สำเร็จจะถูกนับเข้ารอบโอนของธนาคารนั้น

5.2 การสร้างลิงก์ชำระเงิน

  1. ทีมงานสร้างลิงก์ใหม่ ระบุหัวข้อ ยอดเงิน จุดรับเงิน ช่องทางธนาคาร และอายุลิงก์ (3, 7 หรือ 30 วัน)
  2. ระบบออกรหัสลิงก์พร้อม QR สำหรับส่งให้ลูกค้าทางช่องทางใดก็ได้
  3. ลูกค้าเปิดลิงก์และชำระเงินผ่านแอปธนาคาร เมื่อสำเร็จ ลิงก์เปลี่ยนเป็นสถานะ "ชำระแล้ว" อัตโนมัติ
  4. ลิงก์ที่เลยกำหนดเปลี่ยนเป็น "หมดอายุ" เอง และทีมงานยกเลิกลิงก์ที่ไม่ใช้ได้ตลอดเวลา

5.3 การคืนเงิน

  1. ทีมการเงินเปิดคำขอคืนเงิน เลือกธุรกรรมต้นทาง และระบุเหตุผล (ลูกค้ายกเลิกบริการ ชำระซ้ำซ้อน สแกน QR ซ้ำ หรืออื่น ๆ)
  2. เลือกระหว่างคืนเต็มจำนวนอัตโนมัติ หรือคืนบางส่วนโดยระบุยอดเอง ระบบตรวจเพดานยอดให้ทันที
  3. ยืนยันผ่านกล่องยืนยันการเงิน ระบบส่งคำขอไปยังธนาคารและตั้งสถานะ "รอดำเนินการ"
  4. ธนาคารคืนเงินเข้าช่องทางเดิมของลูกค้า (ใช้เวลาประมาณ 1 ถึง 3 วันทำการ) ระบบอัปเดตสถานะเป็นสำเร็จหรือไม่สำเร็จพร้อมเหตุผล
  5. ยอดคืนเงินปรากฏในภาพรวม หน้าคืนเงิน และรายงานอัตโนมัติ

5.4 การกระทบยอดและรอบโอนเงิน

  1. สิ้นวัน ระบบรวมยอดรับชำระที่สำเร็จของแต่ละธนาคารเป็นรอบโอน (T+1) หักค่าธรรมเนียมตามอัตราต่อช่องทาง
  2. ระบบเทียบยอดของระบบกับยอดที่ธนาคารรายงานอัตโนมัติ ผลลัพธ์เป็น 4 สถานะ: กระทบยอดแล้ว รอตรวจสอบ ไม่ตรง หรือรอโอน
  3. รอบที่ยอดไม่ตรงจะแสดงส่วนต่างชัดเจน พร้อมขั้นตอนให้ทีมการเงินเทียบกับรายงานธนาคารก่อนยืนยัน
  4. เมื่อยืนยันแล้ว ระบบบันทึกผลและแสดงยอดโอนสุทธิเข้าบัญชีบริษัทตามรอบของแต่ละธนาคาร (KBank 17:00 น. และ SCB 16:30 น. ในค่าตั้งต้น)
  5. ทุกอย่างพร้อมสำหรับรายงานประจำวันและการปิดงบ โดยไม่ต้องรวบรวมยอดมือ

5.5 การจัดการช่องทางธนาคาร

  1. ทีมเทคนิคแก้ไข Merchant ID Terminal Webhook และคีย์ของแต่ละธนาคารได้จากหน้าช่องทางธนาคาร
  2. เปิดหรือปิดบริการรายวิธีชำระได้ทันที (เช่น ปิดรับผ่อนชำระชั่วคราว) โดยมีผลกับรายการใหม่ทันที
  3. ทดสอบการเชื่อมต่อได้จากปุ่มทดสอบ ระบบรายงานเวลาตอบกลับของธนาคาร
  4. ทุกการเปลี่ยนแปลงถูกบันทึกในบันทึกระบบพร้อมผู้ดำเนินการและเวลา
06

การเชื่อมต่อธนาคาร KBank และ SCB

การเชื่อมต่อออกแบบเป็นสองทางเสมอ: ระบบเป็นฝ่ายส่งคำขอ (สร้างรายการชำระ คืนเงิน ตรวจสอบสถานะ) และเป็นฝ่ายรับผลผ่าน Webhook ที่ธนาคารเรียกกลับมาที่ระบบ ทั้งสองทางยืนยันความถูกต้องด้วยคีย์ของแต่ละช่องทาง และทุกคำขอถูกบันทึกไว้ในบันทึกระบบเพื่อการตรวจสอบ ในโหมดสาธิตปัจจุบัน เส้นทางเหล่านี้จำลองการทำงานครบถ้วน โดยไม่เรียกบริการจริงของธนาคาร

ตารางที่ 6.1 · บริการและค่าธรรมเนียมตั้งต้น (โหมดสาธิต ปรับได้ตามสัญญาจริง)
บริการKBankSCB
QR พร้อมเพย์0.90%0.95%
บัตรเครดิต / เดบิต2.65%2.75%
ผ่อนชำระผ่านบัตร3.20%ไม่รองรับ
E-Wallet1.80%2.00%
รอบโอนเงินทุกวัน 17:00 น. (T+1)ทุกวัน 16:30 น. (T+1)

ข้อมูลที่ต้องเตรียมจากธนาคาร

  • Merchant ID และ Terminal ID สำหรับแต่ละจุดรับเงิน (แยกตามธนาคาร)
  • คีย์สำหรับเรียกบริการ (Merchant Secret / API Key) ระบบเก็บแบบเข้ารหัสและแสดงเพียงบางส่วน
  • บัญชีสำหรับรับโอน ของแต่ละธนาคาร พร้อมรอบโอนที่ตกลงไว้
  • อัตราค่าธรรมเนียม (MDR) ตามสัญญา แยกตามวิธีรับชำระ เพื่อให้ระบบคำนวณยอดสุทธิได้ตรง
  • Webhook URL ปลายทาง ของระบบ คือ https://api.loco.cloud/hooks/payments/<ช่องทาง> พร้อม Secret สำหรับตรวจลายเซ็น

รูปแบบการรับผลยืนยัน (Webhook)

เมื่อลูกค้าชำระเงินสำเร็จ ธนาคารจะเรียกกลับมาที่ระบบพร้อมข้อมูลยืนยัน ระบบตรวจลายเซ็นก่อนบันทึกทุกครั้ง ตัวอย่างข้อมูลที่ระบบออกแบบไว้:

{
  "event":     "payment.succeeded",
  "ref":       "PG-20261016-0042",
  "bank":      "kbank",
  "method":    "qr",
  "amount":    450,
  "fee":       4.05,
  "net":       445.95,
  "currency":  "THB",
  "paid_at":   "2026-10-16 09:33:12",
  "signature": "X-Loco-Signature: t=1760599992, v1=6f3a..."
}

ความน่าเชื่อถือของการรับส่งผล

  • ตรวจลายเซ็นทุกครั้ง: ใช้ HMAC-SHA256 ในหัวข้อ X-Loco-Signature ป้องกันข้อมูลปลอม
  • ส่งซ้ำอัตโนมัติ: ระบบปลายทางที่ยังไม่ตอบรับจะได้รับ Webhook ซ้ำสูงสุด 3 ครั้ง (เว้นช่วง 2, 4 และ 8 วินาที) ป้องกันเหตุการณ์ตกหล่นชั่วคราว
  • บันทึกครบทุกคำขอ: ทั้งขาเข้าและขาออก พร้อมรหัสผลตอบกลับและความหน่วง แสดงในหน้าบันทึกระบบ
  • กระทบยอดเป็นด่านสุดท้าย: ก่อนโอนเงินทุกครั้ง ระบบเทียบยอดกับธนาคารอีกชั้นหนึ่ง ไม่โอนยอดที่ไม่ตรงโดยไม่มีการยืนยัน
ความต่างระหว่างโหมดสาธิตและโหมดใช้งานจริง โหมดสาธิต (ปัจจุบัน) ทุกอย่างทำงานจริงบนหน้าจอ ยกเว้นการเรียกธนาคารใช้ข้อมูลจำลอง เหมาะกับการทบทวนระบบและฝึกทีม ส่วน โหมดใช้งานจริง ใช้คีย์และบัญชีจริงของบริษัท ขั้นตอนการเปิดใช้สรุปไว้ในบทที่ 9
07

แบบจำลองข้อมูล

ข้อมูลของระบบยึด ธุรกรรมเป็นศูนย์กลาง ทุกกลุ่มข้อมูลอื่นอ้างอิงกลับมาที่ธุรกรรมเสมอ ทำให้การตรวจสอบทำได้จากจุดเดียว: เปิดธุรกรรมหนึ่งรายการ แล้วเห็นได้ทันทีว่ามาจากจุดรับเงินใด ชำระผ่านช่องทางใด ถูกรวมในรอบโอนไหน มีการคืนเงินหรือไม่ และเกิดบันทึกอะไรขึ้นบ้าง

แบบจำลองข้อมูลของระบบ กลุ่มข้อมูลหลักของระบบ ได้แก่ ธุรกรรมที่เป็นศูนย์กลางของทุกความสัมพันธ์ เชื่อมกับจุดรับเงิน ลิงก์ชำระเงิน คืนเงิน รอบชำระบัญชี ช่องทางธนาคาร บันทึกระบบ และผู้ใช้งาน รับชำระที่ · N : 1 ชำระผ่าน · 0..1 : 1 คืนเงิน · 1 : N รวมรอบ · N : 1 1 : N ประมวลผลผ่าน · N : 1 เกี่ยวข้อง · บันทึกทุกคำขอ จุดรับเงิน ลิงก์ชำระเงิน คืนเงิน รอบชำระบัญชี ช่องทางธนาคาร บันทึกระบบ ผู้ใช้งานและสิทธิ์ ธุรกรรม ศูนย์กลางของทุกความสัมพันธ์ id · no · name · type kbank_mid · scb_mid services · qr_points · status month_volume id · title · amount status · expires · url site_id (FK) paid_tx (FK) id · order_ref · datetime amount · fee · net method · bank · status site_id · link_id · bank_ref customer · plate · card settled · descriptions id · tx_id (FK) amount · full / partial reason · status created · done · by id · bank · date gross · fee · net · count status · transfer_date diff · note · reconciled_at id · mid · terminal services · fees (MDR) webhook · account · cycle id · type · bank · http latency · ref_tx (FK) payload · datetime 4 บทบาท · 10 สิทธิ์ ขอบเขตจุดรับเงิน (sites) สถานะบัญชี · การเข้าใช้ล่าสุด แบบจำลองข้อมูล · กลุ่มหลัก แสดงเฉพาะความสัมพันธ์หลักเพื่อการออกแบบ · ชื่อเขตข้อมูลใช้ภาษาอังกฤษตามรูปแบบในระบบ (FK = คีย์อ้างอิงระหว่างกลุ่มข้อมูล) · เมื่อใช้งานจริงจัดเก็บรวมที่ฐานข้อมูลกลางชุดเดียว
แผนภาพแบบจำลองข้อมูล: เก้ากลุ่มข้อมูลหลัก โดยธุรกรรมเป็นศูนย์กลางของทุกความสัมพันธ์ ตั้งแต่จุดรับเงินและลิงก์ชำระเงินขาเข้า ไปจนถึงคืนเงิน รอบชำระบัญชี และบันทึกระบบขาออก
ตารางที่ 7.1 · กลุ่มข้อมูลหลักของระบบ
กลุ่มข้อมูลเก็บอะไรเขตข้อมูลสำคัญ
ธุรกรรมรายการรับชำระทุกรายการจากทุกจุดรับเงินorder_ref · amount · fee · net · method · bank · status · bank_ref
คืนเงินคำขอคืนเงินที่อ้างอิงธุรกรรมต้นทาง พร้อมเหตุผลและผลลัพธ์tx_id · amount · full/partial · reason · status · done_by
รอบชำระบัญชีรอบโอนเงินรายวันของแต่ละธนาคาร พร้อมผลกระทบยอดbank · date · gross · fee · net · count · status · diff
ลิงก์ชำระเงินลิงก์และ QR ที่สร้างเพื่อเรียกเก็บเงิน พร้อมอายุการใช้งานtitle · amount · status · expires · url · paid_tx
จุดรับเงินจุดรับเงินทุกแห่ง พร้อมบัญชีร้านค้ากับทั้งสองธนาคารkbank_mid · scb_mid · services · qr_points · status
ช่องทางธนาคารการตั้งค่าการเชื่อมต่อของ KBank และ SCBmid · terminal · services · fees · webhook · account · cycle
บันทึกระบบประวัติการเรียก API และการส่ง Webhook ทุกครั้งtype · bank · http · latency · ref_tx · payload
ผู้ใช้และสิทธิ์บัญชีทีมงาน บทบาท ขอบเขต และสถานะการใช้งานroles · perms · sites_scope · status · last_active
การตั้งค่าค่าตั้งต้นของระบบ ทั้งข้อมูลบริษัท การแจ้งเตือน และคีย์ภายนอกcompany · notifications · security · api_keys

กติกาความถูกต้องของข้อมูล

  • หนึ่งเลขอ้างอิงต่อหนึ่งรายการ: ทุกธุรกรรมมีรหัสเฉพาะรูปแบบ PG-วันเดือนปี-ลำดับ ใช้อ้างอิงกับธนาคาร ระบบปลายทาง และเอกสารได้ตลอดสาย
  • คืนเงินไม่เกินยอดจริง: ยอดคืนสะสมทุกรายการของธุรกรรมหนึ่งต้องไม่เกินยอดชำระ และระบบตรวจเพดานให้ก่อนยืนยันทุกครั้ง
  • หนึ่งลิงก์ชำระได้ครั้งเดียว: เมื่อลิงก์ถูกชำระสำเร็จ จะผูกกับธุรกรรมนั้นและไม่เปิดรับซ้ำ
  • หนึ่งรอบโอนต่อธนาคารต่อวัน: ป้องกันยอดโอนซ้ำหรือตกหล่น และทำให้กระทบยอดตรวจได้ตรงกับรายงานธนาคารเสมอ
08

ความปลอดภัย

ระบบชำระเงินกำหนดให้ความปลอดภัยเป็นข้อบังคับ ไม่ใช่ตัวเลือก นโยบายของระบบวางไว้สองหลัก: เก็บข้อมูลน้อยที่สุด และ เปิดเผยเท่าที่จำเป็นต่อบทบาทเท่านั้น ข้อมูลบัตรไม่เคยผ่านระบบ เนื่องจากลูกค้าชำระในหน้าแอปธนาคารหรือหน้าของธนาคารโดยตรง

การยืนยันตัวตนและการเข้าถึง

  • เข้าสู่ระบบด้วยอีเมลและรหัสผ่าน เมื่อใช้งานจริงรหัสผ่านจัดเก็บแบบเข้ารหัสทางเดียว (hashed) ไม่สามารถอ่านค่าต้นฉบับได้
  • ผู้ดูแลระบบสามารถเปิดการยืนยันสองขั้นตอน (2FA) บังคับสำหรับบัญชีระดับผู้ดูแลได้
  • เซสชันหมดอายุอัตโนมัติเมื่อไม่มีการใช้งานนาน (ค่าตั้งต้น 8 ชั่วโมง) และบังคับออกจากระบบทุกอุปกรณ์เมื่อเปลี่ยนรหัสผ่าน
  • ทุกหน้าจอและทุกการสั่งงานตรวจสิทธิ์ตามบทบาท 4 ระดับ ก่อนแสดงหรือแก้ไขข้อมูล

การเก็บและการแสดงข้อมูลสำคัญ

  • คีย์เชื่อมต่อธนาคารและคีย์ API ของระบบภายนอกจัดเก็บแบบเข้ารหัส แสดงเพียงบางส่วน (ปิดอักขระกลาง) และไม่ส่งค่ากลับในรายการใด ๆ
  • การหมุนคีย์ (Rotate) ทำได้จากหน้าตั้งค่า พร้อมแจ้งเตือนให้อัปเดตคีย์ที่ระบบปลายทางภายใน 24 ชั่วโมง
  • ข้อมูลลูกค้าที่แสดงในธุรกรรมถูกปิดบางส่วน เช่น เบอร์โทรศัพท์ แสดงเท่าที่จำเป็นต่อการติดตามงาน

ความปลอดภัยของการรับส่งข้อมูล

  • การรับส่งทุกเส้นทางผ่าน HTTPS ทั้งหมด ไม่มีเส้นทางไม่เข้ารหัส
  • Webhook ทุกเส้นทางตรวจลายเซ็น HMAC-SHA256 ก่อนประมวลผล ป้องกันข้อมูลปลอมหรือการแก้ไขระหว่างทาง
  • การตั้งค่าช่องทางธนาคารสามารถจำกัดเฉพาะ IP ที่กำหนดได้ (ตัวเลือกสำหรับการใช้งานจริง)
  • ข้อมูลที่รับเข้าทุกคำขอถูกตรวจสอบความถูกต้องของรูปแบบก่อนบันทึกเสมอ

การตรวจสอบย้อนหลัง (Audit)

  • ทุกการเรียก API และทุก Webhook ถูกบันทึกพร้อมเวลา ผู้ดำเนินการ ปลายทาง รหัสผลตอบกลับ และความหน่วง
  • การคืนเงินทุกครั้งมีบันทึกว่าใครเป็นผู้ยืนยัน เวลาใด พร้อมเหตุผลประกอบ
  • การเปลี่ยนแปลงการตั้งค่าช่องทางและคีย์ถูกบันทึกพร้อมผู้ดำเนินการ เพื่อตรวจสอบย้อนหลังได้ครบถ้วน
ข้อกำหนดด้านข้อมูลส่วนบุคคล ระบบออกแบบตามหลัก PDPA: เก็บข้อมูลส่วนบุคคลเท่าที่จำเป็นต่อการรับชำระและการติดต่อ กำหนดสิทธิ์การเข้าถึงตามบทบาท และไม่เก็บข้อมูลบัตรหรือรหัสธนาคารของลูกค้าไว้ในระบบเลย
09

แผนการนำไปใช้งานจริง

การเปลี่ยนจากโหมดสาธิตเป็นระบบใช้งานจริงใช้ขั้นตอนมาตรฐาน 5 ขั้น โดยไม่ต้องรื้อหน้าจอที่สร้างไว้เลย เนื่องจากทุกอย่างใน V1 ออกแบบตามเส้นทางเดียวกับของจริงอยู่แล้ว งานหลักที่เพิ่มคือการได้รับคีย์จากธนาคารและเปิดใช้ส่วนบริการหลังบ้าน

ตารางที่ 9.1 · ความพร้อมของระบบ
พร้อมแล้วในเวอร์ชัน V1ต้องดำเนินการเพิ่มเมื่อเชื่อมจริง
หน้าจอใช้งานครบ 12 หน้าจอ พร้อมการโต้ตอบเต็มรูปแบบMerchant ID และคีย์จริงจาก KBank และ SCB ต่อจุดรับเงิน
การออกแบบการเชื่อมต่อธนาคาร (คำขอ Webhook ลายเซ็น การส่งซ้ำ)ส่วนบริการหลังบ้านและฐานข้อมูลกลาง (แนวทาง Cloudflare Worker + D1)
ระบบกระทบยอดและรอบโอน T+1 พร้อม 4 สถานะการยืนยันตัวตนจริงพร้อมการจัดการรหัสผ่านและ 2FA
สิทธิ์ 4 บทบาท 10 สิทธิ์ พร้อมขอบเขตจุดรับเงินการทดสอบกับสภาพแวดล้อมทดสอบของธนาคาร (Sandbox)
รายงานและการส่งออก CSV ครบทุกมุมมองการอบรมทีมงานและการส่งมอบคู่มือปฏิบัติงาน

ลำดับขั้นตอนเปิดใช้งาน

  1. เตรียมบัญชีร้านค้ากับธนาคาร: ยื่นเอกสารกับ KBank และ SCB เพื่อเปิดบัญชีร้านค้าสำหรับแต่ละจุดรับเงิน และรับชุดคีย์สำหรับทดสอบ
  2. ทดสอบใน Sandbox: เชื่อมช่องทางทดสอบของธนาคาร ทดสอบให้ครบทุกเส้น: QR บัตร ผ่อนชำระ คืนเงิน Webhook และกระทบยอด โดยไม่ใช้เงินจริง
  3. ตั้งค่าในระบบ: กรอก Merchant ID Terminal คีย์ Webhook และอัตราค่าธรรมเนียมตามสัญญา ทดสอบการเชื่อมต่อจากหน้าจอให้ผ่านทุกช่องทาง
  4. เปิดใช้จริงแบบนำร่อง: ย้ายขึ้นระบบจริงและเปิดทีละ 2 ถึง 3 จุดรับเงินก่อน ตรวจกระทบยอดของรอบแรกให้ตรง ก่อนขยายผลทุกจุด
  5. เปิดใช้เต็มรูปแบบ: ทดสอบคืนเงินจริงหนึ่งรายการ ทบทวนบันทึกระบบ อบรมทีมตามบทบาท แล้วเปิดใช้งานทุกจุดรับเงิน
ข้อแนะนำจากทีมออกแบบ รอบแรกที่ใช้เงินจริง แนะนำให้เริ่มด้วย QR พร้อมเพย์เท่านั้น เนื่องจากอัตราความสำเร็จสูงและค่าธรรมเนียมต่ำ จากนั้นเปิดบัตรเครดิต ผ่อนชำระ และวอลเล็ตตามลำดับ พร้อมเฝ้าดูหน้าบันทึกระบบในสัปดาห์แรก
10

การทดสอบและตรวจรับ

ระบบต้นแบบผ่านการตรวจสอบคุณภาพครบทั้งการทำงาน การแสดงผล และเอกสาร ก่อนส่งมอบทุกครั้ง บทนี้อธิบายสิ่งที่ตรวจสอบแล้วในเวอร์ชันปัจจุบัน และเกณฑ์ตรวจรับที่จะใช้เมื่อเชื่อมต่อธนาคารจริง เพื่อให้ทุกฝ่ายเห็นตรงกันว่าอะไรคือความพร้อมใช้งาน

สิ่งที่ตรวจสอบแล้วในเวอร์ชันนี้

  • การทำงานอัตโนมัติ 40 รายการ ครอบคลุมทั้ง 12 หน้าจอ ตั้งแต่เข้าสู่ระบบ กรองธุรกรรม เปิดรายละเอียดธุรกรรม ไปจนถึงยืนยันกระทบยอด ผ่านทั้งหมด ไม่พบข้อผิดพลาด
  • การแสดงผลทุกขนาดจอ ตรวจที่ความกว้าง 1440 พิกเซลสำหรับเดสก์ท็อป 1024 พิกเซลสำหรับแท็บเล็ต และ 390 พิกเซลสำหรับมือถือ ไม่มีเนื้อหาล้นกรอบหรือถูกบดบัง และตารางข้อมูลเลื่อนในกรอบของตนเอง
  • การส่งออกไฟล์ ตรวจไฟล์ CSV ทุกชุด เปิดได้ถูกต้องทั้ง Excel และ Google Sheets รวมถึงการส่งออกเฉพาะรายการที่กรองอยู่
  • รูปแบบการพิมพ์ ตรวจการพิมพ์เอกสารและ PDF ขนาด A4 จัดหน้าเรียบร้อย ตารางและแผนภาพไม่ถูกตัดกลางหน้า
  • เอกสารระบบ ตรวจความครบถ้วนของทั้ง 12 บทและภาคผนวก ความถูกต้องของทุกสถานะและคำศัพท์ และความสอดคล้องกับตัวระบบ

เกณฑ์ตรวจรับเมื่อเชื่อมต่อธนาคารจริง

ตารางที่ 10.1 · รายการตรวจรับก่อนเปิดใช้เต็มรูปแบบ
รายการเกณฑ์ผ่าน
การเชื่อมต่อทุกช่องทาง (KBank และ SCB)ทดสอบสำเร็จทั้ง QR พร้อมเพย์ บัตรเครดิต และผ่อนชำระ
การรับผลอัตโนมัติ (Webhook)อัตราส่งถึงระบบปลายทางสำเร็จมากกว่า 99%
การกระทบยอดยอดตรงทุกรอบ ต่อเนื่อง 7 วันติดกัน
การคืนเงินทดสอบคืนเงินจริงสำเร็จ อย่างน้อย 1 รายการต่อช่องทาง
การอบรมและส่งมอบทีมปฏิบัติการและการเงินใช้งานได้จริงตามบทบาท ครบทุกหน้าจอ
แนวปฏิบัติ ใช้ตารางที่ 10.1 เป็นเอกสารตรวจรับร่วมกันระหว่างทีมเทคนิค ทีมการเงิน และผู้ดูแลจากธนาคาร โดยเก็บผลการทดสอบแต่ละครั้งไว้ในบันทึกระบบเพื่ออ้างอิงย้อนหลังได้ตลอดอายุโครงการ
11

การดีพลอยและปฏิบัติการ

เวอร์ชันต้นแบบจัดเก็บและเผยแพร่เป็นไฟล์เว็บแอปไฟล์เดียวบน Cloudflare Pages ทำให้เปิดใช้ได้ทุกที่โดยไม่ต้องติดตั้ง เมื่อเชื่อมต่อจริง ส่วนบริการและฐานข้อมูลจะเพิ่มเข้ามาในโครงเดียวกัน บทนี้อธิบายโครงสร้างการจัดเก็บ วิธีปรับปรุงระบบ และงานปฏิบัติการประจำที่ทีมควรทำอย่างสม่ำเสมอ

โครงสร้างการจัดเก็บ

  • เวอร์ชันออนไลน์ เผยแพร่บน Cloudflare Pages ที่ loco-payment-gateway.pages.dev อัปเดตได้ทันทีเมื่อมีเวอร์ชันใหม่
  • ไฟล์งานต้นทาง แยกเป็นโฟลเดอร์โปรเจ็กต์ พร้อมสคริปต์ประกอบไฟล์เดียว จึงสร้างเวอร์ชันใหม่ได้ทุกเมื่อด้วยคำสั่งเดียว
  • การเก็บย้อนหลัง ทุกเวอร์ชันเดิมถูกเก็บครบสำหรับเทียบและย้อนกลับได้เสมอ
  • เอกสารระบบ จัดเก็บเป็นชุดเดียวกันทั้งเวอร์ชันเว็บ ไฟล์ PDF และแผนภาพ อยู่คู่กับตัวระบบ

การปรับปรุงระบบ

  1. แก้ไขที่ไฟล์ต้นทางเท่านั้น ไม่แก้ไฟล์ที่เผยแพร่แล้วโดยตรง เพื่อให้ทุกอย่างตรวจสอบย้อนกลับได้
  2. สร้างเวอร์ชันใหม่โดยเพิ่มเลขรุ่นถัดไป ระบบจะเก็บรุ่นเดิมเข้ากรุให้อัตโนมัติ
  3. ตรวจสอบตามรายการมาตรฐาน 40 ข้อ และตรวจการแสดงผลทุกขนาดจอก่อนเผยแพร่ทุกครั้ง
  4. หลังเผยแพร่ แจ้งทีมงานพร้อมบันทึกสิ่งที่เปลี่ยนไว้คู่กับเอกสารฉบับนี้

งานปฏิบัติการประจำ

ตารางที่ 11.1 · รอบงานปฏิบัติการ
รอบเวลางาน
ทุกวันตรวจหน้าชำระบัญชีว่าไม่มีรอบค้างสถานะยอดไม่ตรง และตรวจบันทึกระบบว่าไม่มีผลตอบกลับผิดพลาดซ้ำ ๆ ต่อเนื่องกัน
ทุกสัปดาห์เทียบรอบโอนทั้งสองธนาคารกับรายงานธนาคาร ทบทวนอัตราความสำเร็จ และรายการคืนเงินที่ค้างอยู่
ทุกเดือนหมุนคีย์เชื่อมต่อตามนโยบาย ทบทวนสิทธิ์ผู้ใช้งาน และตรวจความครบของข้อมูลสำหรับปิดงบ
เมื่อใช้งานจริง ให้เพิ่มการสำรองข้อมูลฐานข้อมูลอัตโนมัติทุกวัน การเฝ้าติดตามเหตุขัดข้อง และผู้รับผิดชอบรายบทบาท (ผู้ดูแลระบบ การเงิน และปฏิบัติการ) ตามตารางงานข้างต้น
12

ข้อจำกัดและแนวทางต่อไป

ข้อจำกัดที่ทราบ ณ เวอร์ชันนี้

  • ข้อมูลในโหมดสาธิตเป็นข้อมูลตัวอย่างที่ฝังในตัว ไม่ผูกกับธุรกรรมจริง และจะถูกรีเซ็ตเมื่อเปิดไฟล์ใหม่
  • การเรียกธนาคารเป็นการจำลองครบทุกเส้นทาง แต่ยังไม่มีการส่งคำขอจริงออกนอกระบบ
  • การแจ้งเตือนภายนอก (อีเมล รายงานประจำวัน) เป็นการตั้งค่าเตรียมไว้ จะเริ่มทำงานเต็มรูปแบบเมื่อเชื่อมผู้ให้บริการ
  • รายงานเน้นช่วง 7/14/30 วัน ยังไม่มีรายงานเปรียบเทียบรายปีหรือรายงานภาษีเฉพาะกิจ

แนวทางพัฒนาต่อไป

  • เชื่อมธนาคารจริง: ดำเนินการตามแผนในบทที่ 9 เพื่อให้ระบบรับชำระและกระทบยอดด้วยข้อมูลจริง
  • แจ้งเตือนเชิงรุก: เชื่อม LINE แจ้งทีมการเงินทันทีเมื่อมีธุรกรรมล้มเหลวหรือยอดกระทบไม่ตรง
  • เอกสารอัตโนมัติ: ออกใบเสร็จรับเงินและใบกำกับภาษีอัตโนมัติจากรายการชำระ คู่กับชุดเลขหมายแยกตามกฎหมาย
  • รายงานขั้นสูง: เปรียบเทียบช่วงเวลา วิเคราะห์ค่าธรรมเนียมย้อนหลัง และมุมมองสำหรับผู้บริหาร
  • เชื่อมระบบในเครือครบวงจร: ขยาย Webhook ไปยังทุกผลิตภัณฑ์ LOCO เพื่อให้การรับชำระจบในระบบเดียวโดยไม่ต้องบันทึกซ้ำ
A

ภาคผนวก: สถานะอ้างอิงและคำศัพท์

สถานะของรายการในระบบ

ตารางที่ 11.1 · ความหมายของสถานะ
รายการสถานะความหมาย
ธุรกรรมรอชำระสร้างรายการแล้ว รอลูกค้าชำระเงิน (QR หรือลิงก์หมดอายุได้ตามกำหนด)
สำเร็จธนาคารยืนยันการชำระแล้ว บันทึกยอดพร้อมค่าธรรมเนียมเรียบร้อย
ไม่สำเร็จธนาคารปฏิเสธหรือลูกค้ายกเลิก ไม่มีการตัดเงิน
คืนเงินแล้วรายการนี้ถูกคืนเงินเรียบร้อยแล้วตามคำขอที่อนุมัติ
คืนเงินรอดำเนินการส่งคำขอไปธนาคารแล้ว รอผลยืนยัน (ประมาณ 1 ถึง 3 วันทำการ)
สำเร็จธนาคารคืนเงินเข้าช่องทางเดิมของลูกค้าเรียบร้อย
ไม่สำเร็จธนาคารปฏิเสธคำขอ พร้อมเหตุผลระบุในรายการ
รอบชำระบัญชีรอโอนรวบยอดรอบวันแล้ว รอเวลารอบโอนของธนาคาร
รอตรวจสอบรอบนี้รอทีมการเงินตรวจสอบและยืนยันกระทบยอด
ไม่ตรงยอดโอนต่างจากยอดในระบบ แสดงส่วนต่างให้ตรวจสอบก่อนยืนยัน
กระทบยอดแล้วยอดตรงกันและโอนเข้าบัญชีบริษัทเรียบร้อย
ลิงก์ชำระเงินใช้งานลิงก์พร้อมให้ลูกค้าชำระ ยังไม่หมดอายุ
ชำระแล้วลูกค้าชำระผ่านลิงก์นี้สำเร็จแล้ว
หมดอายุเลยกำหนดอายุลิงก์ สร้างใหม่ได้เมื่อต้องการ
ยกเลิกทีมงานยกเลิกลิงก์นี้ก่อนถูกใช้งาน

คำศัพท์ที่ใช้ในระบบ

  • QR พร้อมเพย์ (PromptPay QR): การชำระเงินด้วยการสแกน QR ผ่านแอปธนาคาร เป็นวิธีที่ค่าธรรมเนียมต่ำและสำเร็จเร็วที่สุด
  • MDR (Merchant Discount Rate): อัตราค่าธรรมเนียมที่ธนาคารหักจากยอดชำระ คิดเป็นเปอร์เซ็นต์ตามวิธีรับชำระ
  • รอบโอน T+1: ธนาคารโอนยอดรับชำระของวันนี้เข้าบัญชีในวันถัดไป หลังหักค่าธรรมเนียม
  • Webhook: การที่ธนาคารหรือระบบภายนอกเรียกกลับมาที่ระบบของเราโดยอัตโนมัติเมื่อมีเหตุการณ์เกิดขึ้น เช่น ชำระสำเร็จหรือคืนเงินสำเร็จ
  • HMAC-SHA256: วิธีลงลายเซ็นดิจิทัลสำหรับ Webhook เพื่อยืนยันว่าข้อมูลมาจากแหล่งที่เชื่อถือได้และไม่ถูกแก้ไข
  • Merchant ID / Terminal: รหัสบัญชีร้านค้าและรหัสเครื่องรับชำระที่ธนาคารออกให้ ใช้ระบุว่ายอดนี้เป็นของจุดรับเงินใด
  • กระทบยอด (Reconciliation): การเทียบยอดในระบบกับยอดที่ธนาคารรายงาน ให้ตรงกันก่อนโอนเงินทุกครั้ง
  • Sandbox: สภาพแวดล้อมทดสอบของธนาคาร ใช้ซ้อมทุกขั้นตอนโดยไม่ใช้เงินจริง
  • PDPA: พระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคล ระบบออกแบบให้เก็บข้อมูลเท่าที่จำเป็นและเข้าถึงตามสิทธิ์