🔐 เข้าสู่ระบบด้วย Google + reCAPTCHA
ให้ลูกค้าที่จองตั๋ว/ส่งพัสดุ เข้าสู่ระบบด้วยบัญชี Google และป้องกันบอทด้วย Google reCAPTCHA
ในหน้านี้
เมนู: ระบบ → การเชื่อมต่อ & ความปลอดภัย (เฉพาะ admin)
ตั้งค่า Sign in with Google
- เปิด Google Cloud Console → APIs & Services → Credentials (สร้างโปรเจกต์ถ้ายังไม่มี และตั้งค่า OAuth consent screen)
- Create credentials → OAuth client ID → Web application
- Authorized JavaScript origins ใส่โดเมนเว็บ เช่น
https://www.example.com(หน้าตั้งค่าจะแสดงค่าที่ต้องใส่ให้) — ทดสอบในเครื่องใส่http://localhost:8888 - คัดลอก Client ID (ลงท้าย
.apps.googleusercontent.com) มาวาง → เปิดสวิตช์ → บันทึก
ใช้ Google Identity Services — ระบบตรวจ ID token กับ Google (ผู้ออก, อายุ, Client ID, อีเมลยืนยันแล้ว) ไม่ต้องใช้ Client secret · เก็บเพียงชื่อ อีเมล รูปโปรไฟล์
เมื่อเปิดแล้ว ลูกค้าจะเห็นปุ่ม "เข้าสู่ระบบ" มุมขวาบน, ปุ่ม "ดำเนินการต่อด้วย Google" ในหน้ากรอกข้อมูลการจอง และเมนู บัญชีของฉัน (ตั๋ว / พัสดุ / ข้อมูลส่วนตัว)
บังคับเข้าสู่ระบบ + จองพัสดุออนไลน์
| ตัวเลือก | ผล |
|---|---|
| บังคับเข้าสู่ระบบก่อนจองตั๋ว | หน้ากรอกข้อมูลผู้โดยสารจะแสดงการ์ดให้เข้าสู่ระบบแทนฟอร์ม |
| บังคับเข้าสู่ระบบก่อนจองส่งพัสดุออนไลน์ | ค่าเริ่มต้น เปิด — ลดการจองปลอม และลูกค้าติดตามพัสดุได้ในบัญชี |
| เปิดให้ลูกค้าจองส่งพัสดุออนไลน์ | แสดงเมนู "ส่งพัสดุออนไลน์" และปุ่มจองหลังคำนวณราคา |
การบังคับเข้าสู่ระบบมีผลเฉพาะเมื่อเปิด Google Login และมี Client ID แล้ว — ป้องกันไม่ให้ลูกค้าจองไม่ได้เลยเพราะตั้งค่าไม่ครบ
ตั้งค่า reCAPTCHA
- สร้างคีย์ที่ google.com/recaptcha/admin เลือกประเภทให้ตรงกับที่จะใช้ (v3 หรือ v2 checkbox) และเพิ่มโดเมนของเว็บ
- ใส่ Site key และ Secret key (Secret key ถูกเข้ารหัสก่อนเก็บ)
- เลือกเวอร์ชัน:
- v3 — มองไม่เห็น ไม่รบกวนลูกค้า ให้คะแนน 0.0–1.0 (ต่ำกว่า "คะแนนขั้นต่ำ" จะถูกปฏิเสธ, แนะนำ 0.5)
- v2 — ช่องติ๊ก "ฉันไม่ใช่โปรแกรมอัตโนมัติ"
- เลือกฟอร์มที่ต้องการป้องกัน: ยืนยันการจองตั๋ว · จองพัสดุออนไลน์ · อัปโหลดสลิป · เข้าสู่ระบบหลังบ้าน
- เปิดสวิตช์ → บันทึก
หน้าเข้าสู่ระบบหลังบ้าน จะขึ้น reCAPTCHA หลังพิมพ์รหัสผิด 2 ครั้งเท่านั้น — ถ้าตั้งคีย์ผิด ผู้ดูแลยังเข้าระบบได้ตามปกติเมื่อพิมพ์รหัสถูก และจะกลับเป็นปกติเองหลังพ้นช่วงเวลา
จัดการบัญชีลูกค้า
เมนู: ระบบ → ลูกค้า (บัญชีออนไลน์)
- รายชื่อลูกค้าพร้อมรูป อีเมล เบอร์โทร จำนวนการจอง/พัสดุ ยอดใช้จ่าย เข้าสู่ระบบล่าสุด
- ค้นหาด้วยชื่อ อีเมล หรือเบอร์โทร
- คลิกสถานะเพื่อ ระงับ/เปิด บัญชี (admin) — บัญชีที่ถูกระงับจะออกจากระบบทันทีและเข้าสู่ระบบใหม่ไม่ได้
รับพัสดุที่ลูกค้าจองออนไลน์
พัสดุที่จองออนไลน์มีสถานะ จองออนไลน์ · รอนำส่ง — แดชบอร์ดแสดงจำนวนที่รออยู่
- ลูกค้านำพัสดุมาที่สาขาต้นทางพร้อม QR บนมือถือ
- เมนู รับส่งของ → สแกนพัสดุ → สแกน QR (หรือเปิดหน้ารายละเอียดพัสดุ)
- ถ้ายังไม่ชำระ: ระบบแสดงยอด → รับเงินสด → ติ๊ก "รับเงินสดจากลูกค้าแล้ว"
- กด รับพัสดุเข้าสาขา → สถานะเป็น "รับแล้ว" และเข้ากระบวนการส่งตามปกติ (ใส่เที่ยวรถ → ขึ้นรถ → ถึงปลายทาง → ส่งมอบด้วย PIN)
ยกเลิกรายการที่ลูกค้าไม่มาส่งได้ที่หน้ารายละเอียดพัสดุ — ถ้าชำระออนไลน์แล้วจะถูกแจ้งว่าต้องคืนเงิน
แก้ปัญหา
| อาการ | สาเหตุ / วิธีแก้ |
|---|---|
| ปุ่ม Google ขึ้น error "origin not allowed" | ยังไม่ได้เพิ่มโดเมน (รวม http/https และ port) ใน Authorized JavaScript origins |
| ปุ่ม Google ไม่แสดง | ยังไม่เปิดสวิตช์ หรือ Client ID ว่าง · ตรวจว่าเบราว์เซอร์ไม่บล็อก accounts.google.com |
| ลูกค้าจองไม่ได้ "การยืนยันว่าไม่ใช่บอทไม่ผ่าน" | คีย์ v2/v3 ไม่ตรงกับที่เลือก, โดเมนไม่ได้เพิ่มในคอนโซล reCAPTCHA หรือคะแนนขั้นต่ำสูงเกิน |
| ปิด reCAPTCHA ฉุกเฉินโดยไม่เข้าหลังบ้าน | ตั้ง recaptcha_enabled = 0 ในตาราง settings |
