ร้านบน Magento 2 รับโอนเงินและตรวจสลิปอย่างไร
อ่าน 1 นาที
ไม่มีรูปภาพ
Magento 2 เป็นแพลตฟอร์มที่ยืดหยุ่นแต่ค่อนข้างซับซ้อน ร้านที่ต้องการรับโอนเงินแบบไทย ๆ มักต้องหาวิธีตรวจสลิปเองหรือจ้างพัฒนาโมดูล PPay มีโมดูลชื่อ PPay_SlipPayment ที่วางไว้ในโฟลเดอร์ app/code/PPay/SlipPayment เพื่อเชื่อมการรับชำระกับการตรวจสลิปของ PPay บทความนี้สรุปว่าโมดูลทำอะไร และอะไรที่เจ้าของร้านต้องจัดการเอง
ภาพรวมการทำงาน
- ลูกค้าเลือกวิธีชำระเงินของโมดูลตอนสั่งซื้อ โมดูลสร้างรายการรับชำระผ่าน API โดยใช้เลขอ้างอิงขึ้นต้น
MG-ตามด้วยเลขออเดอร์ - ลูกค้าไปหน้าชำระเงินของ PPay โอนเงินและอัปโหลดสลิป
- เมื่อสลิปผ่าน ลูกค้ากดปุ่มกลับไปที่ร้านเอง และฝั่ง Magento ยืนยันสถานะกับ PPay อีกครั้ง
- โมดูลออกใบแจ้งหนี้ (invoice) ใน Magento ให้ออเดอร์นั้น
การยืนยัน 3 ทางและการกันทำซ้ำ
เช่นเดียวกับปลั๊กอินตัวอื่น โมดูลยืนยันได้จาก webhook invoice.paid (ตรวจลายเซ็น HMAC และเวลาไม่เกิน 5 นาที), จังหวะลูกค้ากลับมาที่ร้าน และงานตรวจตามรอบ 5 นาทีที่กำหนดในไฟล์ etc/crontab.xml ทุกทางอ่านสถานะจากรายการของ PPay และเทียบยอดกับออเดอร์ก่อนดำเนินการ
เพื่อกันการประมวลผลซ้ำเมื่อหลายทางทำงานพร้อมกัน โมดูลใช้ LockManagerInterface ของ Magento และโหลดข้อมูลออเดอร์ใหม่หลังได้ล็อก
รายละเอียดที่เฉพาะกับ Magento
สกุลเงิน
โมดูลเช็กว่าสกุลเงินของ quote ที่ส่งยอดเป็นบาท (THB) ไม่ได้อิงสกุลเงินฐานของร้าน ถ้าร้านของคุณขายหลายสกุลเงิน ควรทดสอบกรณีลูกค้าสลับสกุลเงินด้วย
Store view และเลขออเดอร์ซ้ำ
เลข increment id ของ Magento อาจซ้ำกันข้าม store view ได้ โมดูลจึงเลือกออเดอร์จากรหัสรายการของ PPay แทนการใช้เลขออเดอร์อย่างเดียว คู่มือแนะนำให้ตั้งค่า webhook ที่ระดับ Default Config
ออเดอร์ที่จ่ายแล้วแต่ออกใบแจ้งหนี้ไม่ได้
หากลูกค้าชำระเงินแล้ว แต่ออเดอร์ถูกยกเลิกหรืออยู่ในสถานะที่ออก invoice ไม่ได้ โมดูลจะใส่หมายเหตุไว้ในออเดอร์ให้เจ้าของร้านตรวจและตัดสินใจเอง เช่น คืนเงินหรือเปิดออเดอร์ใหม่ โมดูลไม่ตัดสินใจเรื่องเงินแทนคุณ
สิ่งที่ยังไม่มี
- Magento ไม่มีฟีเจอร์กระเป๋าเงินในตัว โมดูลนี้จึงไม่ได้ทำเรื่องเติมเครดิต
- บัญชี PPay หนึ่งบัญชีตั้ง Webhook ได้ 1 URL ถ้าใช้หลายเว็บ เว็บอื่นจะพึ่งการตรวจตามรอบ
- โมดูลยังไม่เคยทดสอบบน Magento จริงในการพัฒนา การออก invoice และหน้า Checkout ควรลองบน staging ก่อนเสมอ
เช็กลิสต์ติดตั้ง
- สำรองฐานข้อมูลและไฟล์ก่อนติดตั้งโมดูลทุกครั้ง
- ติดตั้งบน staging แล้วทดสอบสั่งซื้อจนได้ invoice ในหลังบ้าน
- ยืนยันว่า cron ของ Magento ทำงาน เพราะงานตรวจตามรอบพึ่งมัน
- ตั้ง Webhook Secret และตรวจว่าฝั่ง PPay ชี้มายัง URL ที่ถูกต้อง
- ทดสอบกรณีออเดอร์ถูกยกเลิกหลังลูกค้าจ่าย เพื่อดูหมายเหตุที่โมดูลเขียน
สรุป
โมดูลนี้ช่วยให้ร้าน Magento ปิดช่องว่างเรื่องการรับโอนและตรวจสลิป โดยเน้นความรอบคอบเรื่องยอดและการกันบันทึกซ้ำ ดูรายละเอียดและดาวน์โหลดได้ที่ หน้าปลั๊กอิน หากต้องการเขียนเชื่อมเองดูที่ เอกสาร API และสามารถเริ่มสร้างบัญชีทดลองได้จาก หน้าสมัคร