3 กันยายน 2560

Published กันยายน 03, 2560 by with 0 comment

สร้าง QR code ของ PromptPay กับ Python

สวัสดีผู้อ่านทุกท่านครับ หลังจากที่ทางธนาคารแห่งประเทศไทยได้เปิดตัว PromptPay QR ออกมาแล้ว และยังได้เปิดเอกสารมาตรฐาน "EMVCo QR Code Specification for Payment Systems: Merchant-Presented Mode" ออกมาด้วย ผมจึงนำข้อมูลดังกล่าวและจาก https://www.blognone.com/node/95133 มาสร้างเป็นโค้ดสำหรับสร้าง QR code ของ PromptPay กับ Python ครับ


อ่านคำอธิบายสเปค PromptPay QR ได้จาก https://www.blognone.com/node/95133

อธิบายเพิ่มเติมที่เนื้อหาใน Blognone ไม่มี

สำหรับการกำหนดจำนวนเงินที่ต้องการจ่าย

จำนวนเงินที่ต้องการจ่าย ฟิลด์ 54 ความยาวข้อมูล 01-09 ข้อมูล "จำนวนเงินที่มีทศนิยม 2 ตำแหน่ง"
เช่น 50 บาท ได้เป็น 540450.00

การเช็คค่า check sum ต้องเอาไว้ข้างหลังท้ายข้อมูลเท่านั้น

ในการเช็คค่า check sum ผมแนะนำให้ใช้ libscrc เป็นโมดูลสำหรับคำนวณ CRC8/CRC16/CRC32/CRC64 ใช้ MIT License และรองรับทั้ง Python 2 , Python 3

ติดตั้งได้ด้วยคำสั่ง pip install libscrc

มาลงมือโค้ดกัน

เมื่อลองเรียกใช้ ใส่เบอร์ 0000000000 ลงไป กำหนด 50.56 บาท ใช้ได้ครั้งเดียว

data=text_qr("0000000000",one_time=True,money="50.56")
print(data)

ผลลัพธ์
00020101021229370016A000000677010111011300660000000005802TH5303764540550.566304013E

สามารถนำไปสร้าง QR code ได้โดยใช้โมดูล qrcode อ่านได้จาก https://python3.wannaphong.com/2015/04/สร้าง-qr-code-บน-python.html/
ทำการสร้าง QR code
import qrcode
img = qrcode.make(data)
imgload = open('img-data.png','wb') #สร้างไฟล์ไบต์ใหม่ขึ้นมา กำหนดสิทธิ์เขียนไฟล์ได้
img.save(imgload, 'PNG') #บันทึกค่า QR Code เข้าไปยังไฟล์
imgload.close() #ปิดไฟล์

ผลลัพธ์


หากผู้อ่านไม่ต้องการลงมือโค้ดหรือ set ค่าอะไรให้ยุ่งวาย ผมได้ทำโมดูล pypromptpay ไว้แล้ว สามารถใช้ได้ง่าย ๆ โดยติดตั้งด้วยคำสั่ง pip install pypromptpay

การใช้งาน
from pypromptpay import qr_code
qr_code("0000000000",one_time=True,money="50.56",path_qr_code="b.png")

ผลลัพธ์
สร้าง QR code ของ PromptPay กับ Python

อ่านเอกสารการใช้งาน pypromptpay ได้ที่ https://github.com/wannaphong/pypromptpay

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)