PromptPay บนเว็บไซต์ 2026: คู่มือเทคนิกสำหรับผู้ประกอบการ
PromptPay has become Thailand's dominant payment method for both consumers and merchants. Integrating it into your website requires more than understanding the payment flow—you need solid knowledge of webhooks, server-side verification, and security best practices. This guide covers every technical aspect of accepting PromptPay.
PromptPay ได้กลายเป็นช่องทางชำระเงินหลักสำหรับผู้บริโภคและผู้ประกอบการในประเทศไทย เมื่อต้องการรองรับการชำระเงินด้วย PromptPay บนเว็บไซต์ของคุณ นอกจากการเข้าใจกระบวนการการชำระเงินแล้ว ความรู้เกี่ยวกับ webhook การยืนยันสัญญาณ และมาตรฐานความปลอดภัยก็มีความสำคัญเท่ากัน บทความนี้อธิบายเรื่องเหล่านี้อย่างละเอียด
สารบัญ
- PromptPay คืออะไรและทำไมจึงสำคัญสำหรับผู้ค้า
- กระบวนการชำระเงินแบบ QR Code: ลำดับการทำงาน
- ประเภทของเกตเวย์และบริการชำระเงิน: ตัวเลือกพื้นฐาน
- ขั้นตอนการบูรณาการ PromptPay เข้าสู่เว็บไซต์: ทีละขั้น
- Webhook และการยืนยันการชำระเงินด้านเซิร์ฟเวอร์
- PromptPay เทียบกับ Credit Card Gateway: ความแตกต่างหลัก
- เรื่องความปลอดภัยที่ผู้ค้าต้องรู้
- วิธีปฏิบัติที่ดีและเคล็ดลับการบูรณาการที่หลากหลาย
- FAQ
PromptPay คืออะไรและทำไมจึงสำคัญสำหรับผู้ค้า
PromptPay คือระบบโอนเงินทั่วไปแบบ QR Code ของประเทศไทย พัฒนาโดยธนาคารแห่งประเทศไทย เพื่อให้การโอนเงินผ่านมือถือง่ายและปลอดภัย ผู้โอนเงินไม่ต้องจำเลขบัญชีแบบเดิม แต่ใช้ PromptPay ID ซึ่งอาจเป็นเบอร์โทรศัพท์ เลขประจำตัวประชาชน หรือหมายเลขภาษีอากร แทน
- ระบบโอนเงิน QR Code ของประเทศไทยพัฒนาโดยธนาคารแห่งประเทศไทย
- ผู้โอนเงินไม่ต้องจำเลขบัญชี แต่ใช้ PromptPay ID เช่น เบอร์โทรศัพท์หรือเลขประจำตัวประชาชน
- การจดทะเบียน PromptPay ID ทำได้ผ่าน app ของธนาคารใดก็ได้ที่ลงทะเบียน
- เป็นช่องทางชำระเงินที่ได้รับความไว้วางใจและใช้กันอย่างแพร่หลายในประเทศไทย
กระบวนการชำระเงินแบบ QR Code: ลำดับการทำงาน
เมื่อลูกค้าคลิกชำระเงินด้วย PromptPay บนเว็บไซต์ เซิร์ฟเวอร์จะสร้างรหัส QR Code ที่มี EMV QR Code format ซึ่งบรรจุข้อมูลเช่น จำนวนเงิน PromptPay ID ของผู้ค้า และ reference number ของรายการ ลูกค้าจะใช้โทรศัพท์มือถือของตนมาสแกนรหัส QR นี้ แล้วยืนยันการโอนเงินผ่าน app ของธนาคารที่ลงทะเบียนไว้ เมื่อชำระเงินสำเร็จ เกตเวย์จะส่ง webhook callback ไปยังเซิร์ฟเวอร์ของเว็บไซต์เพื่อแจ้งสถานะการชำระเงิน
- ลูกค้าสแกน QR Code บนหน้าชำระเงินของเว็บไซต์ด้วยมือถือ
- สแกนจะเปิด app ธนาคารของลูกค้าโดยอัตโนมัติ
- ลูกค้ายืนยันจำนวนเงินและความลับ (PIN หรือ biometric) ในแอปธนาคาร
- เกตเวย์ส่ง webhook ไปยังเซิร์ฟเวอร์ของคุณเพื่อยืนยันการชำระเงินสำเร็จ
ประเภทของเกตเวย์และบริการชำระเงิน: ตัวเลือกพื้นฐาน
สำหรับบูรณาการ PromptPay มีตัวเลือกหลายประเภท ประเภทแรกคือเกตเวย์ชำระเงินทั่วไป ซึ่งเป็น service ของบริษัทที่สามที่รองรับหลายช่องทาง รวมถึง PromptPay พวกนี้จัดการความปลอดภัยและกฎหมายให้คุณ ประเภทที่สองคือ merchant API ของธนาคารโดยตรง ให้ความควบคุมมากกว่า แต่ต้องเข้าใจเทคนิคมากกว่า ประเภทที่สามคือปลั๊กอินสำหรับระบบ e-commerce ซึ่งง่ายที่สุด แต่มีความยืดหยุ่นน้อย
- Third-party payment gateway ที่รองรับหลายช่องทางชำระเงิน
- Merchant API โดยตรงจากธนาคารพาณิชย์หรือ FinTech
- ปลั๊กอินและโมดูลสำหรับระบบ e-commerce ยอดนิยม
- เปรียบเทียบตามความต้องการของธุรกิจ: ขนาด ค่าใช้งาน และการควบคุม
ขั้นตอนการบูรณาการ PromptPay เข้าสู่เว็บไซต์: ทีละขั้น
ขั้นตอนการบูรณาการ PromptPay มักมีลำดับดังนี้: ขั้นแรก เลือกเกตเวย์หรือบริการสนับสนุน PromptPay และสมัครสมาชิก ขั้นที่สอง บันทึก API keys หรือ secrets ของคุณจากแดชบอร์ดของผู้ให้บริการ ขั้นที่สาม ติดตั้งปลั๊กอิน SDK หรือ library ที่เกตเวย์จัดเตรียมไว้ ขั้นที่สี่ เขียน backend endpoint ที่ยอมรับ webhook callback จากเกตเวย์ ขั้นที่ห้า ทดสอบการไหลของการชำระเงินในสภาพแวดล้อม sandbox อย่างครบถ้วนก่อนที่จะ deploy ไปยัง production
- ลงทะเบียนกับผู้ให้บริการและทำการยืนยันตัวตน
- ดึง API credentials จากแดชบอร์ดและเก็บไว้ให้ปลอดภัย
- ติดตั้ง SDK/library ของเกตเวย์ในโปรเจกต์ของคุณ
- สร้าง backend endpoint สำหรับรับ webhook callback
- ทดสอบครบในสภาพแวดล้อม sandbox ก่อนขึ้น production
Webhook และการยืนยันการชำระเงินด้านเซิร์ฟเวอร์
Webhook คือแจ้งเตือนแบบ real-time ที่เกตเวย์ส่งมายังเซิร์ฟเวอร์ของคุณเมื่อมีการเปลี่ยนแปลงสถานะการชำระเงิน เมื่อลูกค้าทำการโอนเงินสำเร็จ เกตเวย์จะส่ง HTTP POST request ไปยัง callback URL ที่คุณระบุไว้ สิ่งสำคัญคือ เมื่อเซิร์ฟเวอร์ของคุณได้รับ webhook นั้น คุณต้องตรวจสอบลายเซ็นดิจิทัลของ webhook เพื่อให้แน่ใจว่าข้อมูลมาจากเกตเวย์อย่างแท้จริง และไม่ใช่คำขอที่ปลอมแปลง
- Webhook เป็นการแจ้งเตือน HTTP POST จากเกตเวย์ไปยังเซิร์ฟเวอร์ของคุณ
- Payload บรรจุข้อมูลรายการเช่น transaction ID สถานะ และลายเซ็นดิจิทัล
- ต้องตรวจสอบลายเซ็นุกครั้งเพื่อป้องกันการปลอมแปลง
- ห้ามเชื่อสัญญาณจากด้าน frontend เช่น JavaScript ที่บอกว่า "payment success"
PromptPay เทียบกับ Credit Card Gateway: ความแตกต่างหลัก
PromptPay แตกต่างจาก Credit Card gateway ในหลายด้าน การชำระเงินด้วย Credit Card ต้องการเลขที่บัตร วันหมดอายุ และ CVC code แต่สำหรับ PromptPay ลูกค้าไม่ต้องเปิดเผยข้อมูลบัตร เพียงแต่ยืนยันการโอนเงินผ่าน app ธนาคารของตนเอง Credit Card gateway ต้องปฏิบัติตามมาตรฐาน PCI-DSS ที่เข้มงวด แต่ PromptPay นั้น เซิร์ฟเวอร์ของคุณไม่ต้องเก็บข้อมูลบัตร
- Credit Card ต้องการข้อมูลบัตรจากลูกค้า
- PromptPay ไม่เปิดเผยข้อมูลบัตร การโอนเงินเกิดในแอปธนาคาร
- Credit Card ต้องถูก PCI-DSS compliance ที่เข้มงวด
- PromptPay มีระดับการป้องกันความปลอดภัยโดยตรงจากธนาคาร
- PromptPay โอนเงินที่คืนไม่ได้ ต่างจาก Credit chargeback
เรื่องความปลอดภัยที่ผู้ค้าต้องรู้
ความปลอดภัยของการรับ PromptPay บนเว็บไซต์มีประเด็นหลักๆ ดังนี้ อย่างแรก ห้ามเชื่อสัญญาณจากด้าน frontend เพราะลูกค้าสามารถแก้ไข JavaScript ได้ ต้องรอ webhook จากเกตเวย์เท่านั้น ประเด็นที่สอง ต้องเก็บ API secrets ไว้ที่เซิร์ฟเวอร์ backend เท่านั้น ประเด็นที่สาม ตรวจสอบลายเซ็นดิจิทัลของทุก webhook ที่เข้ามา ประเด็นที่สี่ ตั้ง HTTPS เท่านั้น ไม่ใช่ HTTP สำหรับ webhook URL
- ตรวจสอบ webhook signature ทุกครั้ง ไม่ใช่ frontend signal
- เก็บ API secrets ในเซิร์ฟเวอร์เท่านั้น ไม่ใช่ frontend หรือ version control
- ใช้ HTTPS เท่านั้นสำหรับ webhook URL
- ตั้ง rate limiting บน webhook endpoint
- จัดเก็บ webhook logs เพื่อ audit trail
วิธีปฏิบัติที่ดีและเคล็ดลับการบูรณาการที่หลากหลาย
อื่นๆ ที่ต้องเข้าใจเพื่อบูรณาการ PromptPay อย่างราบรื่น: ใช้ transaction reference number ที่ unique สำหรับแต่ละการชำระเงิน ส่งอีเมล confirmation ให้ลูกค้าทันทีที่คุณได้รับ webhook ยืนยันการชำระเงิน เก็บ webhook payloads ทั้งหมดไว้ใน database เพื่อใช้เป็น audit trail และทดสอบการจัดการข้อผิดพลาดของ webhook เช่น timeout และการซ้ำส่ง
- ใช้ reference number ที่ unique สำหรับแต่ละรายการเพื่อการแมพข้อมูล
- ส่งอีเมล confirmation ทันทีหลัง webhook verification เสร็จ
- เก็บ webhook payloads ไว้เป็น audit log และเพื่อการแก้ไขปัญหา
- จัดการ webhook retry และ timeout อย่างเหมาะสม
คำถามที่พบบ่อย (FAQ)
ทำไมต้องใช้ webhook ไม่สามารถให้ลูกค้า redirect กลับมายังหน้าเว็บไซต์แล้วบอกว่า "paid" ได้หรือ?
ไม่ได้เพราะลูกค้าหรือแฮกเกอร์สามารถหลีกเลี่ยง redirect นั้นหรือแก้ไข browser parameter ได้ Webhook จากเกตเวย์นั้นมาจากเซิร์ฟเวอร์โดยตรง ซึ่งหลีกหนีไม่ได้และยากกว่ามากในการปลอมแปลง
PromptPay รองรับการคืนเงิน (refund) หรือไม่?
ใช่ รองรับการคืนเงิน แต่เป็นกระบวนการที่เริ่มต้นจากผู้ค้าเท่านั้น ไม่มี automatic refund ผู้ค้าต้องเริ่มการคืนเงินผ่านแดชบอร์ดของเกตเวย์ โดยใช้ transaction ID จากการชำระเงินเดิม
API secret ของฉันถูกเปิดเผยแล้ว ควรทำอย่างไร?
ต้องสร้างคีย์ใหม่ทันทีจากแดชบอร์ดของเกตเวย์ แล้วอัพเดท environment variables ของเซิร์ฟเวอร์ของคุณ หลังจากนั้น ตรวจสอบ webhook logs ทั้งหมดจากตอนนี้ย้อนไปเพื่อดูว่ามีการโอนเงินที่สงสัยหรือไม่
ต้องรักษา webhook signature ไว้นานแค่ไหน?
ปกติคือ 5 นาทีจนถึง 1 ชั่วโมงนับจากเวลาสร้าง ขึ้นอยู่กับเกตเวย์ที่คุณใช้ นี่คือการป้องกัน 'replay attack' ที่เก่าๆ ไม่สามารถใช้ได้