ตรวจสลิปโอนเงินอัตโนมัติ ทำได้ยังไง (กันสลิปปลอม)

·

ในบทที่แล้วเราออก ใบแจ้งหนี้พร้อมพร้อมเพย์ QR ให้ลูกค้าสแกนจ่าย — ขั้นต่อมาคือ "ยืนยันว่าจ่ายจริง" ลูกค้าส่งสลิปมาใน LINE แล้วเรานั่งดูทีละรูปไม่ไหว แถม สลิปปลอมจาก Photoshop ก็เยอะ บทความนี้อธิบายวิธีตรวจสลิป อัตโนมัติ ที่เชื่อถือได้ — คือไม่ดูแค่รูป แต่ยืนยันกับธนาคารจริง

เหมาะกับ: ISP/เน็ตหมู่บ้านที่รับเงินผ่านโอน/พร้อมเพย์ • อยากเลิกเปิดสลิปดูทีละรูป + กันโดนสลิปปลอม

ทำไม "ดูรูปสลิป" อย่างเดียวไม่พอ

รูปสลิปแก้ใน 2 นาทีด้วยมือถือ — ยอดเงิน เวลา ชื่อ แก้ได้หมด ถ้ายึดแค่ภาพจะโดนกินฟรี วิธีที่เชื่อได้คือ ยืนยันกับระบบธนาคาร ว่ารายการนี้มีจริง ยอดเท่านี้ เข้าบัญชีเราจริง

หลักการคือทุกสลิปโอนของไทยจะมี QR/รหัสอ้างอิงรายการ (transaction ref) ฝังอยู่ → เอา ref นั้นไปถามธนาคารว่า "รายการนี้จริงไหม"

ภาพรวมการตรวจสลิปอัตโนมัติ

[ลูกค้าจ่าย QR] -> [ส่งสลิปใน LINE] -> [อ่าน QR ในสลิป = ref] -> [Verify API ธนาคาร]
   -> [เช็ก ยอด/บัญชีรับ/เวลา/ไม่ซ้ำ] -> [mark จ่ายแล้ว] -> [คืนสัญญาณ]

หัวใจมี 2 ส่วน: (1) อ่าน ref จากสลิป และ (2) ยืนยัน ref กับธนาคาร

ขั้นที่ 1 — อ่าน QR/ref จากรูปสลิป

สลิปที่ลูกค้าส่งมาเป็นรูป — ดึง payload ใน QR ออกมาก่อน (ตัวอย่าง Python):

from pyzbar.pyzbar import decode
from PIL import Image

# อ่าน QR ที่ฝังในรูปสลิป
result = decode(Image.open("slip.jpg"))
payload = result[0].data.decode() if result else None
# payload มีข้อมูลอ้างอิงรายการ (transRef) + ธนาคารต้นทาง

ถ้าสลิปเบลอ/ครอป QR หาย จะอ่านไม่ได้ — ให้ลูกค้าส่งสลิป "เต็มใบ ชัด ๆ" หรือ fallback ไปตรวจมือ

ขั้นที่ 2 — ยืนยันกับธนาคาร (Slip Verification API)

เอา payload/transRef ไปถาม Slip Verification API ของธนาคาร (เช่น SCB, KBank ที่เปิดให้ร้านนิติบุคคล หรือผ่านผู้ให้บริการรวม) — มันจะตอบกลับ "ข้อมูลจริง" ของรายการ:

import requests

r = requests.post(
    "https://<bank-slip-verify-endpoint>",
    headers={"Authorization": "Bearer <API_KEY>"},
    json={"payload": payload},
)
data = r.json()
# data -> { success, amount, sender, receiver, transRef, transDate }

ข้อมูลที่ได้คือ "ของจริงจากธนาคาร" ไม่ใช่ตัวเลขในรูป → เอามาเทียบกับบิลได้

ขั้นที่ 3 — เช็กให้ครบ 4 ข้อ ก่อน mark ว่าจ่าย

อย่าเชื่อแค่ "API บอก success" — ต้องเทียบกับบิลด้วย:

  1. ยอดตรงamount == ยอดบิล (กันจ่ายขาด)
  2. เข้าบัญชีเราจริงreceiver == บัญชี/พร้อมเพย์ของร้าน (กันสลิปที่โอนเข้าบัญชีคนอื่น)
  3. เวลาสดtransDate อยู่ในช่วงที่สมเหตุผล (ไม่ใช่สลิปเก่าเมื่อเดือนก่อน)
  4. ไม่ซ้ำtransRef นี้ยังไม่เคยใช้ → เก็บ transRef ที่ผ่านแล้วไว้ กันลูกค้าส่งสลิปเดิมซ้ำหลายบิล

ผ่านครบ 4 ข้อ ค่อย mark บิลเป็น "จ่ายแล้ว" แล้วต่อเข้าวงจร คืนสัญญาณอัตโนมัติ

ระดับการทำ (เลือกตามกำลัง)

วิธี ความน่าเชื่อ เหมาะกับ
ดูรูปสลิปด้วยตา ต่ำ (ปลอมง่าย) ช่วงแรกสุด/ลูกค้าไม่กี่ราย
แอป "ตรวจสอบสลิป" ของธนาคาร กลาง (ตรวจทีละใบ) ราย ๆ ไป ยังไม่ออโต้
อ่าน QR + Verify API สูง (ยืนยันกับธนาคาร) ออโต้เต็มรูปแบบ
OCR อ่านตัวเลขจากรูปอย่างเดียว ต่ำ–กลาง ไม่แนะนำเดี่ยว ๆ (ยังปลอมได้)

⚠️ OCR ≠ การยืนยัน — อ่านตัวเลขจากรูปได้ ไม่ได้แปลว่ารายการมีจริง ต้อง verify กับธนาคารเสมอ

พลาดบ่อย / กันโกง

ช่องโหว่ วิธีปิด
สลิปปลอมแก้ยอดด้วย Photoshop verify กับธนาคาร ไม่ดูแค่รูป
โอนเข้าบัญชีคนอื่นแล้วส่งสลิปมา เช็ก receiver ตรงบัญชีร้าน
ส่งสลิปเดิมซ้ำหลายบิล/หลายเดือน dedupe transRef ที่เคยใช้แล้ว
สลิปเก่ามารีไซเคิล เช็ก transDate อยู่ในกรอบเวลา
QR ในสลิปอ่านไม่ออก ขอสลิปเต็มใบชัด ๆ / มี fallback ตรวจมือ
ยิง API ถี่จนโดนจำกัด/มีค่าใช้จ่าย cache ผล + ตรวจซ้ำเฉพาะที่จำเป็น

สรุป

ตรวจสลิปให้เชื่อถือได้ = อ่าน ref จาก QR ในสลิป → ยืนยันกับธนาคาร → เทียบ ยอด/บัญชี/เวลา/ไม่ซ้ำ ไม่ใช่แค่เปิดรูปดู เมื่อต่อกับ ใบแจ้งหนี้ QR และ การคืนสัญญาณ ก็จะได้วงจรเก็บเงินที่ "ลูกค้าจ่าย → ยืนยันเอง → เน็ตคืนเอง" โดยคุณแทบไม่ต้องแตะ

💡 อยากให้ตรวจสลิปจาก LINE อัตโนมัติ + กันสลิปปลอม/ซ้ำ? thaiISP รับสลิปทาง LINE OA อ่าน QR แล้วยืนยันกับธนาคาร จับคู่บิลให้เอง เช็กยอด/บัญชี/ความซ้ำครบ แล้วคืนสัญญาณทันทีที่จ่ายจริง — ดูระบบ →

← กลับหน้าคลังความรู้