P
Xin chia sẻ giải thuật với Bạn ơi!!!
Python :
import qrcode
import sys
def generate_vietqr(bank_id, account_no, amount, message, filename="vietqr.png"):
vietqr_data = f"00020101021138570010A00000072701230006970422{bank_id}0110{account_no}0208QRIBFTTA5303704{amount}5802VN6218{message}6304"
qr = qrcode.make(vietqr_data)
qr.save(filename)
print(filename)
if __name__ == "__main__":
bank_id = sys.argv[1]
account_no = sys.argv[2]
amount = sys.argv[3]
message = sys.argv[4]
filename = sys.argv[5] if len(sys.argv) > 5 else "vietqr.png"
generate_vietqr(bank_id, account_no, amount, message, filename)
VBA:
Sub GenerateVietQR()
Dim pythonExe As String
Dim scriptPath As String
Dim bankId As String
Dim accountNo As String
Dim amount As String
Dim message As String
Dim qrFile As String
Dim command As String
Dim shellObj As Object
' Đường dẫn đến Python (cần chính xác theo hệ thống của bạn)
pythonExe = """C:\Users\YourUsername\AppData\Local\Programs\Python\Python39\python.exe"""
' Đường dẫn script Python
scriptPath = """C:\path\to\generate_qr.py"""
' Thông tin giao dịch
bankId = "970422" ' Vietcombank
accountNo = "0123456789"
amount = "500000"
message = "Thanh toan don hang 123"
qrFile = """C:\path\to\vietqr.png""" ' Đường dẫn lưu file ảnh QR
' Câu lệnh chạy Python
command = pythonExe & " " & scriptPath & " " & bankId & " " & accountNo & " " & amount & " """ & message & """ " & qrFile
' Gọi lệnh Python
Set shellObj = CreateObject("WScript.Shell")
shellObj.Run command, 0, True
Set shellObj = Nothing
' Hiển thị mã QR trong Excel
ActiveSheet.Pictures.Insert (qrFile)
MsgBox "Đã tạo QR thành công!", vbInformation
End Sub