อ่านคำอธิบายสเปค 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")
ผลลัพธ์
อ่านเอกสารการใช้งาน pypromptpay ได้ที่ https://github.com/wannaphong/pypromptpay
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)