ระบบอ่านบัตรประจำตัวประชาชน
Thai National ID Card Reader
หน้าแรก อ่านบัตร

ผังการทำงาน (Web Flow)

ลำดับขั้นตอนตั้งแต่ผู้ใช้กดปุ่มในเบราว์เซอร์ ไปจนถึงระบบดึงข้อมูลจากชิปบนบัตรแล้วส่งผลลัพธ์ กลับมาแสดงในหน้าเว็บ ทุกจุดเรียกผ่านฟังก์ชันกลางเดียวกัน (core/IdCardReader.php) ไม่มีตรรกะซ้ำซ้อนระหว่างหน้าเว็บกับ CLI

เรียกใช้งาน / ส่งคำขอ
ส่งข้อมูลกลับ
ผู้ใช้
เบราว์เซอร์
กดปุ่ม "อ่านบัตรประชาชน" ที่หน้า reader.php
ฝั่งไคลเอนต์
script.js
เปิด popup "กำลังอ่านข้อมูล..." แล้วยิง fetch() ไปที่ api_read.php
เว็บเซิร์ฟเวอร์
web/api_read.php
เรียก thai_id_card_read() จาก core/IdCardReader.php ซึ่งสั่งรัน PowerShell ผ่าน proc_open()
Windows / PowerShell
core/ReadThaiIDCard.ps1
เชื่อมต่อเครื่องอ่านบัตรและส่งคำสั่ง APDU ผ่าน winscard.dll โดยตรง
ฮาร์ดแวร์
เครื่องอ่าน + บัตร
รับคำสั่ง APDU แล้วส่งข้อมูลจากชิปกลับมา
กลับขึ้นไป
JSON ผ่าน stdout
PowerShell เขียนผลลัพธ์ด้วย [Console]::Out.Write() โดยตรง (ไม่ผ่านตัวจัดรูปแบบ อัตโนมัติของ PowerShell ที่อาจตัดบรรทัด JSON ให้เสียหาย) แล้ว PHP อ่านค่าและ json_decode() ต่อ
ผู้ใช้เห็นผล
popup ผลลัพธ์
แสดงข้อมูลบัตรในหน้าเว็บ พร้อมปุ่มดาวน์โหลด JSON/รูปถ่าย — หากล้มเหลว จะแสดง popup แจ้งเหตุผลแทน