เอกสาร Waypoint
หน้าเว็บไซต์ หลังบ้าน

💳 ระบบชำระเงินออนไลน์

ตั้งค่าช่องทางรับเงิน PromptPay · โอนธนาคาร · ตรวจสลิปอัตโนมัติ · Stripe · Omise — ใช้ได้ทั้งตั๋วโดยสารและพัสดุ

เมนู: รายงาน & การเงิน → ช่องทางชำระเงิน (เฉพาะ admin) · ด้านบนของหน้าจะมี chip แสดงช่องทางที่ พร้อมใช้ แล้ว

ภาพรวมช่องทาง

ช่องทางยืนยันการชำระค่าธรรมเนียมต้องมี
PromptPay QRสลิป → ตรวจอัตโนมัติ/เจ้าหน้าที่ไม่มีเบอร์/เลขพร้อมเพย์
โอนบัญชีธนาคารสลิป → ตรวจอัตโนมัติ/เจ้าหน้าที่ไม่มีเลขบัญชี
Omise — PromptPay อัตโนมัติทันที webhookตามสัญญา Omiseบัญชี Omise
Omise — บัตรทันที (3-D Secure)ตามสัญญา Omiseบัญชี Omise
Stripe Checkoutทันที webhookตามสัญญา Stripeบัญชี Stripe
ชำระที่สาขา (พัสดุ)เจ้าหน้าที่รับเงินสดตอนรับพัสดุ—เปิดจองพัสดุออนไลน์
ลูกค้าเห็นเฉพาะช่องทางที่ เปิดสวิตช์ + ตั้งค่าครบ เท่านั้น — เปิดหลายช่องทางพร้อมกันได้

PromptPay QR + โอนธนาคาร

  1. PromptPay: เปิดสวิตช์ → ใส่ PromptPay ID (เบอร์มือถือ 10 หลัก หรือเลข 13 หลัก) และชื่อที่แสดงบน QR
  2. โอนธนาคาร: เปิดสวิตช์ → เลือกธนาคาร เลขที่บัญชี ชื่อบัญชี
  3. บันทึก — QR ถูกสร้างในเบราว์เซอร์ของลูกค้า (มาตรฐาน EMVCo พร้อมยอดเงิน) ไม่ส่งข้อมูลไปบริการภายนอก

ระบบตรวจสอบสลิป

ใช้กับ PromptPay QR และโอนธนาคาร เลือกผู้ให้บริการ 1 ใน 3:

👤 ตรวจด้วยเจ้าหน้าที่

ฟรี — ทุกสลิปเข้าคิว "ตรวจสอบสลิป" ให้อนุมัติ/ปฏิเสธ

⚡ EasySlip

สมัครที่ easyslip.com → นำ API Key มาใส่ ระบบอ่านข้อมูลสลิปจากธนาคารภายในไม่กี่วินาที

⚡ SlipOK

สมัครที่ slipok.com → ใส่ API Key + Branch ID

ระบบตรวจอะไรบ้าง

การตรวจถ้าไม่ผ่าน
รูปภาพซ้ำ (hash เดียวกัน)ปฏิเสธ สลิปถูกใช้แล้ว
เลขอ้างอิงธุรกรรม (transRef) ซ้ำกับสลิปที่ผ่านแล้วปฏิเสธ
ยอดเงินในสลิป ≥ ยอดที่ต้องชำระปฏิเสธ แจ้งยอดที่อ่านได้
บัญชีผู้รับตรงกับ "บัญชีผู้รับที่ยอมรับ"ส่งให้เจ้าหน้าที่ตรวจ
เวลาโอนไม่เก่ากว่าเวลาจองส่งให้เจ้าหน้าที่ตรวจ
ผู้ให้บริการไม่ตอบสนองส่งให้เจ้าหน้าที่ตรวจ (ไม่ทำให้ลูกค้าติดขัด)

ผ่านทุกข้อ + เปิด อนุมัติอัตโนมัติ → ยืนยันการชำระทันที · ปิดไว้ถ้าต้องการให้เจ้าหน้าที่ยืนยันทุกสลิป

แนะนำ: ใส่ "บัญชีผู้รับที่ยอมรับ" เช่น 0812345678, 123-4-56789-0 เพื่อจับสลิปที่โอนผิดบัญชี
ความเป็นส่วนตัว: รูปสลิปเก็บใน storage/slips/ ซึ่งเปิดผ่านเว็บโดยตรงไม่ได้ — ดูได้เฉพาะ admin/แคชเชียร์ที่เข้าสู่ระบบ

Omise (Opn Payments)

  1. เข้า Omise Dashboard → Keys คัดลอก Public key (pkey_…) และ Secret key (skey_…)
  2. ใส่ในการ์ด Omise → เลือกช่องทาง: บัตร และ/หรือ PromptPay → เปิดสวิตช์ → บันทึก
  3. Omise Dashboard → Webhooks → ใส่ URL ที่แสดงในการ์ด (/api/webhook_omise.php)
  4. กด ทดสอบการเชื่อมต่อ → Omise
ระบบไม่เชื่อข้อมูลใน webhook — ทุกครั้งจะดึงสถานะ charge จาก Omise ใหม่ด้วย Secret key และตรวจยอดเงิน/สกุลเงินก่อนยืนยัน

Stripe

  1. Stripe Dashboard → Developers → API keys คัดลอก Secret key (sk_test_… / sk_live_…)
  2. Developers → Webhooks → Add endpoint ใส่ URL /api/webhook_stripe.php เลือก events checkout.session.completed, checkout.session.async_payment_succeeded, checkout.session.async_payment_failed, checkout.session.expired
  3. คัดลอก Signing secret (whsec_…) มาใส่ในช่อง Webhook signing secret
  4. เลือกช่องทาง (Card / PromptPay) หรือไม่เลือกเพื่อใช้ค่าจาก Dashboard → เปิดสวิตช์ → บันทึก → ทดสอบการเชื่อมต่อ

ลูกค้าจะถูกพาไปหน้า Stripe Checkout และกลับมาอัตโนมัติ · Webhook ตรวจลายเซ็น (HMAC) และดึง session จาก Stripe ใหม่ก่อนยืนยัน

คีย์ลับถูกเข้ารหัส (AES-256-GCM) ก่อนเก็บในฐานข้อมูล ด้วยกุญแจในไฟล์ config/app_key.php — สำรองไฟล์นี้ไว้ หากหายต้องกรอกคีย์ทุกตัวใหม่ · ช่องคีย์ที่เว้นว่างตอนบันทึก = ใช้ค่าเดิม, ติ๊ก "ลบค่าที่บันทึกไว้" เพื่อล้าง

ตรวจสลิปด้วยเจ้าหน้าที่

เมนู: รายงาน & การเงิน → ตรวจสอบสลิป (admin + แคชเชียร์) · แดชบอร์ดจะแจ้งเตือนเมื่อมีสลิปรอตรวจ

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

รายการชำระเงิน + การคืนเงิน

เมนู: รายงาน & การเงิน → การชำระเงิน — รวมทั้งตั๋วและพัสดุ ค้นหาด้วยรหัสชำระ/รหัสจอง/ชื่อ/เลขอ้างอิงของ gateway

เวลาชำระเงิน + การยกเลิกอัตโนมัติ

การ์ด ทั่วไป → เวลาชำระเงินการจองออนไลน์ (ค่าเริ่มต้น 15 นาที) — การจองออนไลน์ที่ยังไม่ชำระเกินเวลาจะถูกยกเลิกและคืนที่นั่งอัตโนมัติ

ยกเว้น: การจองที่กำลังชำระผ่าน Stripe/Omise (ไม่เกิน 60 นาที) หรือมีสลิปรอตรวจ — จะไม่ถูกยกเลิก · การจองที่พนักงานทำให้ลูกค้าไม่ถูกยกเลิกอัตโนมัติ

โหมดทดสอบ + ทดสอบการเชื่อมต่อ