PromptPay QR Generator: สร้าง QR พร้อมเพย์แบบกำหนดยอดเงิน ทำงานได้ทั้งหมดในเบราว์เซอร์
สร้าง QR พร้อมเพย์ตามมาตรฐาน EMVCo จากเลขบัตรประชาชน เบอร์โทร หรือ e-wallet ID พร้อมฝังยอดเงินแบบคงที่และ CRC16 checksum ได้ทันที โดยไม่ต้องออนไลน์และไม่มีข้อมูลออกจากเครื่องคุณ
Table of Contents
PromptPay QR Generator: สร้าง QR พร้อมเพย์แบบกำหนดยอดเงิน ทำงานได้ทั้งหมดในเบราว์เซอร์
พร้อมเพย์กลายเป็นช่องทางชำระเงินหลักของคนไทยไปแล้ว ไม่ว่าจะเป็นแผงลอย ร้านอาหารตามสั่ง ร้านค้าออนไลน์ หรือแม้แต่การจ่ายค่าเช่า เพียงสแกน QR ผ่านแอปธนาคาร ก็โอนเงินได้ทันทีตลอด 24 ชั่วโมง โดยระบบทั้งหมดทำงานบนมาตรฐาน EMVCo QR ที่กำหนดโครงสร้างข้อมูลภายใน QR อย่างเป็นสากล ทำให้ QR ร้านค้าร้านหนึ่งสามารถสแกนได้กับแอปธนาคารทุกเจ้า
แต่มีจุดอ่อนที่พบบ่อยมาก: ร้านค้าส่วนใหญ่ติด QR แบบเปิดยอด (ไม่ได้ฝังยอดเงินไว้ใน QR) ทำให้ลูกค้าต้องพิมพ์ยอดเงินเองทุกครั้ง และถ้าพิมพ์ผิดแค่หลักเดียว เงินก็ไปผิดจำนวนทันที วิธีแก้ที่ตรงไปตรงมาที่สุดคือใช้ QR แบบกำหนดยอดเงิน (fixed amount) ซึ่งฝังตัวเลขยอดเงินไว้ใน payload ของ QR เลย แอปธนาคารจะแสดงยอดที่ล็อกไว้ให้ลูกค้ากดยืนยัน พิมพ์ผิดไม่ได้ PromptPay QR Generator สร้าง QR แบบนี้ให้จากเลขบัตรประชาชน เบอร์โทร หรือ e-wallet ID ได้ฟรี และทำงานทั้งหมดในเบราว์เซอร์ของคุณ ไม่ต้องใช้อินเทอร์เน็ตหลังจากเปิดหน้าเว็บแล้ว
บทความนี้จะพาไปดูวิธีใช้งานทีละขั้น โครงสร้างข้อมูลแบบ tag-length-value ที่ซ่อนอยู่ใน QR ทุกตัว รวมถึงแนวทางการใช้งานจริงทั้งกับร้านค้า ใบแจ้งหนี้ งานบริจาค และเงินมัดจำ
ทำไมต้องใช้ PromptPay QR Generator?
- เลขบัตรและเบอร์โทรของคุณไม่หลุดออกจากเบราว์เซอร์ — การสร้าง QR ทำงานแบบ 100% offline บนเครื่องคุณเท่านั้น เพราะเลขบัตรประชาชนหรือเบอร์โทรที่ผูกกับบัญชีธนาคารเป็นข้อมูลส่วนบุคคล คุณจึงไม่ควรส่งข้อมูลเหล่านี้ขึ้นเซิร์ฟเวอร์ที่ไม่รู้จัก เครื่องมือนี้ไม่มีการส่งข้อมูลใดๆ ปิดอินเทอร์เน็ตหลังโหลดหน้าเว็บแล้วก็ใช้งานต่อได้
- payload ตรงมาตรฐาน EMVCo พร้อม CRC16 checksum ครบทุกตัว — แอปธนาคารตรวจสอบอย่างเข้มงวด ถ้าโครงสร้างยาวผิดหรือ checksum ไม่ตรง QR จะถูกปฏิเสธทันที เครื่องมือประกอบทุก tag-length-value ให้ถูกต้องและคำนวณ CRC16 ให้เอง โค้ดที่ได้สแกนผ่านตั้งแต่ครั้งแรก
- เลือกได้ทั้งยอดเปิดและยอดล็อก — เว้นช่องยอดเงินว่างไว้เพื่อให้ลูกค้ากรอกเอง หรือใส่ตัวเลขลงไปเพื่อล็อกราคา ลูกค้ายืนยันยอดผิดไม่ได้
- รองรับทั้งสามประเภทพร้อมเพย์ในหน้าเดียว — เลขบัตรประชาชน 13 หลัก เบอร์โทร 10 หลักขึ้นต้นด้วย 0 และ e-wallet ID ถูกเข้ารหัสแตกต่างกันภายใน payload เครื่องมือจัดการเรื่องนี้ให้ทั้งหมด รวมถึงการแปลงเบอร์โทรเป็นรูปแบบรหัสประเทศที่ระบบต้องการ
- ฟรี ไม่จำกัดจำนวน ไม่ต้องสมัครสมาชิก — ไม่มีลายน้ำ ไม่มีคิว สร้างกี่ตัวก็ได้ แต่ละตัวใช้เวลาไม่ถึงวินาที
- พร้อมสำหรับงานพิมพ์ — QR คมชัด สีเข้มสไตล์ monochrome ย่อขยายได้ ทั้งติดป้ายหน้าร้านและแปะท้ายใบเสร็จ
ฟีเจอร์หลัก
| ฟีเจอร์ | ทำอะไร |
|---|---|
| เลือกประเภทเป้าหมาย | สลับระหว่างเลขบัตรประชาชน เบอร์โทร และ e-wallet ID |
| ช่องเลขบัตรประชาชน | รับเลขบัตร 13 หลักเป็นเป้าหมายรับเงิน |
| ช่องเบอร์โทร | รับเบอร์ 10 หลักขึ้นต้นด้วย 0 แล้วแปลงให้ถูกรูปแบบอัตโนมัติ |
| ช่อง e-wallet | เข้ารหัส e-wallet ID สำหรับกระเป๋าเงินที่ไม่ใช่ธนาคาร |
| ยอดเงินแบบเลือกได้ | ฝังยอดเงินคงที่ลงใน payload (tag 54) หรือปล่อยว่างเพื่อเปิดยอด |
| ตัวสร้าง payload EMVCo | ประกอบโครงสร้าง tag-length-value ตามลำดับที่มาตรฐานกำหนด |
| CRC16 checksum | แนบ checksum ตาม tag 63 ที่แอปธนาคารใช้ตรวจความถูกต้อง |
| ทำงาน offline เต็มรูปแบบ | ประมวลผลฝั่ง client ล้วน ไม่มีการอัปโหลดข้อมูล |
จุดที่ควรรู้เพิ่มเติม:
- มีการตรวจสอบรูปแบบในตัว — เครื่องมือเช็กว่าเลขบัตรครบ 13 หลัก และเบอร์โทรมี 10 หลักขึ้นต้นด้วย 0 ช่วยดักพิมพ์ผิดก่อนที่มันจะไปอยู่บนป้ายที่พิมพ์ออกมา
- QR เก็บเฉพาะข้อมูลที่มาตรฐานกำหนด — ใน payload มีแค่เป้าหมายรับเงิน สกุลเงิน (764 คือบาท) ยอดเงินถ้ามี และ checksum ทำให้ QR ไม่แออัดจนสแกนยาก แม้พิมพ์ขนาดเล็ก
วิธีใช้งาน
- เลือกประเภทเป้าหมาย — เลือกเลขบัตรประชาชน เบอร์โทร หรือ e-wallet ID จากด้านบนของฟอร์ม ให้ตรงกับข้อมูลที่ลงทะเบียนพร้อมเพย์ไว้กับบัญชีที่ใช้รับเงิน โดยทั่วไปคนส่วนใหญ่จะใช้เบอร์โทรหรือเลขบัตรประชาชน
- กรอกเลขประจำตัว — พิมพ์เลขบัตร 13 หลัก เบอร์โทร 10 หลักขึ้นต้นด้วย 0 หรือ e-wallet ID เครื่องมือจะตรวจรูปแบบให้ระหว่างพิมพ์
- ใส่ยอดเงิน (ถ้าต้องการ) — เว้นว่างไว้เพื่อให้ลูกค้ากรอกยอดเอง หรือใส่ยอดคงที่ เช่น 150 เพื่อล็อกราคา เหมาะกับสินค้าหรือบริการที่ราคาแน่นอนอยู่แล้ว
- กดสร้าง QR — เครื่องมือจะประกอบ payload ตามมาตรฐาน EMVCo คำนวณ CRC16 checksum แล้วแสดง QR ให้ทันที
- ทดสอบสแกนด้วยแอปธนาคารก่อนใช้จริง — เปิดแอปธนาคารไหนก็ได้ สแกนโค้ด แล้วตรวจว่าชื่อผู้รับถูกต้อง และยอดเงินที่ล็อกไว้ตรงกับที่ตั้งใจ ยังไม่ควรพิมพ์หรือแชร์จนกว่าจะสแกนผ่าน
ขั้นตอนสุดท้ายสำคัญกว่าที่คิด QR ที่แสดงผลได้บนหน้าจอไม่ได้แปลว่าธนาคารจะรับเสมอ ใช้เวลาสแกนทดสอบแค่ครึ่งนาที แต่ช่วยประหยัดค่าพิมพ์ป้ายซ้ำได้ทั้งรอบ
โครงสร้างข้อมูลภายใน QR PromptPay
QR พร้อมเพย์ทุกตัวคือ EMVCo merchant-presented QR ที่เก็บข้อมูลเป็นชุดของ tag สองหลัก ตามด้วยความยาวสองหลัก แล้วจบด้วยตัวข้อมูลจริง อ่านออกเองได้ไม่ยากเลยเมื่อรู้กฎ
โครงสร้าง tag-length-value
ลองดูตัวอย่าง 5303764 แตกได้เป็น tag 53 (สกุลเงิน) ความยาว 03 และค่า 764 ซึ่งเป็นรหัส ISO 4217 ของบาทไทย กฎเดียวกันนี้ใช้ทุกที่ สองตัวอักษรของ tag สองตัวของความยาว แล้วตามด้วยข้อมูลตามจำนวนนั้นพอดี tag ที่สำคัญมีดังนี้
| Tag | ความหมาย | ตัวอย่างค่า |
|---|---|---|
| 00 | Payload format indicator | 01 |
| 01 | วิธีระบุยอด | 11 (ยอดเปิด) หรือ 12 (ยอดล็อก) |
| 29 | ข้อมูลบัญชีผู้รับ | Template ซ้อนข้างใน |
| 53 | สกุลเงิน | 764 (THB) |
| 54 | ยอดเงิน | 150.00 |
| 58 | รหัสประเทศ | TH |
| 63 | CRC16 checksum | เลขฐานสิบหก 4 ตัว |
tag ต้องเรียงตามลำดับตัวเลขจากน้อยไปมาก และ tag 63 ต้องอยู่ท้ายสุดเสมอ เพราะเป็น checksum ของทุกอย่างที่อยู่ข้างหน้า
แต่ละประเภทเป้าหมายถูกเข้ารหัสต่างกันอย่างไร
ทั้งสามประเภทถูกใส่ไว้ใน tag 29 ซึ่งเป็น template ที่ระบุด้วย AID ของพร้อมเพย์คือ A000000677010111 ข้างใน template จะมี sub-tag บอกแอปธนาคารว่ากำลังมองเลขประจำตัวชนิดไหนอยู่
- เบอร์โทร (sub-tag 01) — ถูกแปลงเป็นรูปแบบนานาชาติ เบอร์อย่าง 0812345678 จะกลายเป็น 006681234567 โดยเลข 0 ข้างหน้าถูกแทนด้วยรหัสประเทศ 0066
- เลขบัตรประชาชน (sub-tag 02) — ใช้เลข 13 หลักตามที่ออกให้เลย ไม่มีการเติม prefix หรือแปลงรูปแบบใดๆ
- e-wallet ID (sub-tag 03) — คือ proxy identifier ของกระเป๋าเงินดิจิทัลที่ไม่ใช่ธนาคาร เช่น TrueMoney ใช้แทนเลขบัญชีธนาคาร
นี่คือเหตุผลที่เครื่องมือถามประเภทเป้าหมายไว้ก่อน เพราะถ้าเลือกผิดชนิด จะได้ QR ที่โครงสร้างถูกแต่โอนเข้าบัญชีผิดประเภท
CRC16 checksum ทำงานอย่างไร
tag 63 เก็บค่า CRC16 แบบเลขฐานสิบหกสี่ตัว (CRC-16/CCITT-FALSE, polynomial 0x1021, ค่าเริ่มต้น 0xFFFF) คำนวณจาก payload ทั้งสาย รวมส่วน 6304 ด้วย ถ้าอักขระแม้ตัวเดียวในสายข้อมูลเสียหาย ไม่ว่าจากการเรนเดอร์ QR ผิดพลาด ป้ายที่พิมพ์เลือน หรือการคัดลอกผิด checksum จะไม่ตรงอีกต่อไป และแอปธนาคารจะปฏิเสธโค้ดทันที เป็นกลไกตรวจความถูกต้องที่เล็กแต่ได้ผลจริง และเครื่องมือคำนวณให้ทุกครั้งที่สร้าง
ตัวอย่างการอ่าน payload ทีละส่วน
นี่คือ payload แบบยอดล็อกสำหรับเป้าหมายเบอร์โทร แตกเป็นท่อนอ่านง่าย
000201 010212 29370016A0000006770101110113006681234567 5303764 540499.50 5802TH 6304A1B2
อ่านจากซ้ายไปขวา: 00 02 01 บอกว่าเป็น payload รูปแบบพร้อมเพย์, 01 02 12 ระบุว่าเป็น dynamic QR ที่ล็อกยอดไว้, template 29 บรรจุ AID และเบอร์เป้าหมาย 006681234567, 53 03 764 กำหนดสกุลเงินบาท, 54 04 99.50 ล็อกราคา, 58 02 TH ระบุประเทศ และ 63 04 A1B2 คือ checksum ที่ครอบทั้งหมด แก้ตัวเลขสักตัวเดียวตรงไหนก็ได้ CRC16 ส่วนท้ายจะตรวจไม่ผ่านทันที
ตัวอย่างการใช้งานจริง
แผงลอยและรถเข็นอาหาร
ร้านส่วนใหญ่ติด QR เปิดยอดไว้หนึ่งตัวแล้วให้ลูกค้ากรอกราคาเอง ซึ่งเหมาะกับเมนูราคาไม่คงที่ แต่สำหรับสินค้าราคา fix ตั้งแต่ข้าวต้ม 60 บาทยันของฝาก 350 บาท การติด QR ยอดล็อกไว้บนป้ายราคาทำให้ลูกค้าแค่สแกนแล้วกดยืนยัน ไม่ต้องพิมพ์ ไม่มีพิมพ์ผิด และไม่ต้องเจรจาตอนหน้าร้านคนแน่น
ใบแจ้งหนี้ฟรีแลนซ์ที่ระบุยอดเงินชัดเจน
ถ้าคุณส่งใบแจ้งหนี้ให้ลูกค้าคนไทย แปะ QR ยอดล็อกไว้ท้ายใบเลย ลูกค้าสแกน เห็นยอดที่กรอกไว้แล้ว กดจ่ายจบในไม่กี่วินาที ไม่ต้องคอยพิมพ์เลขบัญชีทีละหลัก การสร้าง QR หนึ่งตัวต่อหนึ่งใบแจ้งหนี้ใช้เวลาแค่เสี้ยววินาที และเพราะเครื่องมือทำงาน offline คุณเตรียม QR ล่วงหน้าบนแล็ปท็อปที่ไม่มีเน็ตก็ได้
งานบริจาคและอีเวนต์
บูธการกุศล งานวัด หรือกิจกรรมโรงเรียนมักใช้ QR เปิดยอดเพื่อให้ผู้บริจาคเลือกจำนวนเอง ถ้าเพิ่ม QR ยอดล็อกหลายตัว เช่น 100, 500 และ 1,000 บาท ไว้เรียงกัน คิวจะไหลเร็วขึ้นมาก ผู้บริจาคหยิบการ์ดที่ราคาตรงใจ สแกน แล้วไปได้เลย พร้อมมั่นใจว่ายอดที่โอนตรงกับที่เห็น
เงินมัดจำและค่าเช่า
เจ้าของห้องเช่าที่เก็บเงินมัดจำหรือค่าเช่ารายเดือน ส่ง QR ยอดล็อกผ่านแชตได้เลย ผู้เช่าสแกนรูปจากมือถือตัวเอง เห็นยอดที่ล็อกไว้ชัดเจน และโอนตกหลักไม่ได้ พร้อมเป็นหลักฐานยอดที่ตกลงกันไว้อย่างเรียบร้อยสำหรับทั้งสองฝ่าย
แนวปฏิบัติที่ดีที่สุด
- ทดสอบสแกนทุกครั้งก่อนส่งพิมพ์ — สแกนด้วยแอปธนาคารจริง ตรวจชื่อผู้รับและยอดที่ล็อกไว้ ก่อนที่โค้ดจะลงป้าย สติกเกอร์ หรือใบเสร็จ
- ตรวจ payload ที่มี checksum เมื่อคัดลอกด้วยมือ — ถ้าต้องย้าย payload ระหว่างเครื่องมือหรือเอกสาร อักขระเปลี่ยนแค่ตัวเดียวก็ทำให้ CRC16 พัง ควรสร้าง QR ใหม่แทนการแก้สายอักขระเอง
- เคลือบพลาสติกป้าย QR ที่พิมพ์ออกมา — ป้ายหน้าร้านต้องเจอแดดฝุ่นและความชื้น การเคลือบฟิล์มช่วยให้ QR ไม่เลือนจนสแกนไม่ได้ภายในไม่กี่สัปดาห์
- อย่าสร้าง QR ของบัญชีธุรกิจบนอุปกรณ์สาธารณะที่ไม่น่าเชื่อถือ — แม้เครื่องมือนี้จะไม่ส่งข้อมูลไปไหน แต่คอมพิวเตอร์สาธารณะอาจมีซอฟต์แวร์จับการพิมพ์ ควรใช้อุปกรณ์ของตัวเองกับเลขบัตรและบัญชี merchant เสมอ
- เก็บ QR เปิดยอดไว้หนึ่งตัวสำหรับทิปและราคาไม่คงที่ — QR ยอดล็อกใช้กับราคาที่รู้แน่ ส่วน QR เปิดยอดหนึ่งตัววางคู่กันไว้สำหรับรายการจ่ายเท่าไรก็ได้
- พิมพ์ยอดเงินกำกับข้าง QR ยอดล็อก — ป้ายเล็กๆ เขียนว่า 150 บาท ช่วยให้ลูกค้ามั่นใจว่ายอดที่ขึ้นมาถูกตั้งใจไว้แล้ว และช่วยเวลาสแกนไม่ผ่านในที่แสงน้อย
เริ่มสร้าง QR พร้อมเพย์แบบกำหนดยอดเงินได้วันนี้
ไม่ว่าคุณจะเป็นแม่ค้าที่กำลังจะติดป้ายหน้ารถเข็น ฟรีแลนซ์ที่ออกใบแจ้งหนี้ให้ลูกค้า หรือเจ้าของห้องที่อยากเก็บค่าเช่าโดยไม่ให้ใครโอนผิดยอด PromptPay QR Generator สร้าง QR ที่ผ่านมาตรฐานธนาคารพร้อม checksum ครบ ให้ในไม่กี่วินาที โดยที่เลขบัตรและเบอร์โทรของคุณไม่เคยออกจากเบราว์เซอร์
เครื่องมือที่เกี่ยวข้องที่คุณอาจชอบ:
- QR Generator — สร้าง QR code จากลิงก์ ข้อความ นามบัตร และอื่นๆ
- WiFi QR Code Generator — ให้แขกเชื่อมต่อ WiFi ด้วยการสแกนครั้งเดียว ไม่ต้องพิมพ์รหัสผ่าน
- Bulk QR Code Generator — สร้าง QR หลายร้อยตัวพร้อมกันจากลิสต์ พร้อมส่งออกทั้งชุด
ขอให้ทุกการสแกนเข้ายอดถูกต้องตั้งใจทุกครั้ง!
คำถามที่พบบ่อย
ถ: กรอกเลขบัตรประชาชนหรือเบอร์โทรลงในเครื่องมือนี้ปลอดภัยไหม? ตอบ: ปลอดภัยครับ การสร้าง QR ทำงานทั้งหมดในเบราว์เซอร์แบบ offline ข้อมูลที่พิมพ์ไม่ถูกส่งไปเซิร์ฟเวอร์ใด ไม่ถูกบันทึกหรือเก็บไว้ ปิดอินเทอร์เน็ตหลังโหลดหน้าเว็บแล้วก็สร้าง QR ต่อได้ตามปกติ
ถ: QR เปิดยอดกับ QR แบบกำหนดยอดเงินต่างกันอย่างไร? ตอบ: QR เปิดยอด (ค่า point-of-initiation เป็น 11) ให้ผู้จ่ายกรอกยอดเองได้อิสระ ส่วน QR แบบกำหนดยอด (ค่า 12) จะฝังยอดเงินไว้ใน tag 54 แอปธนาคารจะแสดงยอดนั้นให้ล็อกไว้ก่อนกดยืนยัน
ถ: เบอร์โทรของฉันขึ้นต้นด้วย 0 ต้องเติมรหัสประเทศเองไหม? ตอบ: ไม่ต้องครับ กรอกเบอร์ 10 หลักขึ้นต้นด้วย 0 ได้เลย เครื่องมือจะแปลงเป็นรูปแบบ 0066 ที่ระบบพร้อมเพย์ต้องการให้อัตโนมัติ
ถ: ทำไมแอปธนาคารถึงปฏิเสธ QR ของฉัน? ตอบ: สาเหตุที่พบบ่อยคือกรอกเลขประจำตัวผิด เลือกประเภทเป้าหมายผิด หรือป้ายที่พิมพ์เสียหาย ทุกโค้ดจากเครื่องมือนี้มี CRC16 checksum ที่ถูกต้องแล้ว ถ้าแอปปฏิเสธ ให้ตรวจข้อมูลเป้าหมายอีกครั้งแล้วสร้างโค้ดใหม่ อย่าแก้สาย payload เอง
ถ: ใช้กับบัญชีธุรกิจหรือ merchant ได้ไหม? ตอบ: ได้ครับ สร้างโค้ดสำหรับพร้อมเพย์ทุกประเภทที่ลงทะเบียนไว้ได้ รวมถึง merchant ด้วย แต่ถ้าคุณเป็นร้านค้าที่รับบัตรและต้องการรายงานยอดขายหรือระบบกระทบยอด ควรดูตัวเลือกเพิ่มเติมจากพอร์ทัล merchant ของธนาคารที่รับชำระแทนประกอบด้วย