Làm Thế nào CODE VBA để tạo mã QR kèm số tiền và nội dung và Không cần Mạng Internet (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Tôi tuân thủ nội quy khi đăng bài

Minh Tam 2024

Thành viên mới
Tham gia
17/3/25
Bài viết
10
Được thích
5
Em xin chào Các Bác . Em hỏi có cách nào tạo được mã QR bao gồm sẳng số tiền và nội dung giống như mấy hóa đơn của các phần mềm bán hàng . mà không sử dụng Internet dùng trên Excel được không ạ. Em xin cảm ơn các Bác
Ví dụ bên dưới quét vào nó hiện sẳng số tiền 610.000 và nội dụng K0VQR 00014W, ngân hàng nhận Vietcombank, STK: 12345678

1742196649177.png
 
Lần chỉnh sửa cuối:
Upvote 0
Lâu lắm rồi mới comment ở trong Diễn đàn.... Về vấn đề của bác. nếu đã biết tạo QR code mà không cần internet thì bác chỉ cần quét ở trình quét mã QR trên mạng sau đó ra text, phân tích đoạn text đó để đưa ra đoạn text phù hợp với mình, sau đó tạo QRcode ngược lại bằng đoạn text đã phân tích cho phù hợp ví dụ với tài khoản của em:
00020101021138580010A00000072701280006970418011444010000******0208QRIBFTTA53037045802VN6304076A
  • 000201: Phiên bản của mã QR.
  • 010211: Loại mã QR (tĩnh hoặc động).
  • 38580010A00000072701280006970418011444010000******: Thông tin tài khoản thụ hưởng.
    • 3858: Mã quốc gia (Việt Nam).
    • 0010A000000727: Mã định danh của ngân hàng (BIDV).
    • 01280006970418011444010000******: Số tài khoản thụ hưởng (44010000******).
  • 0208QRIBFTTA: Mã giao dịch.
  • 5303704: Mã tiền tệ (VND).
  • 5802VN: Mã quốc gia (Việt Nam).
  • 6304076A: Mã kiểm tra.
 
Upvote 0
Lâu lắm rồi mới comment ở trong Diễn đàn.... Về vấn đề của bác. nếu đã biết tạo QR code mà không cần internet thì bác chỉ cần quét ở trình quét mã QR trên mạng sau đó ra text, phân tích đoạn text đó để đưa ra đoạn text phù hợp với mình, sau đó tạo QRcode ngược lại bằng đoạn text đã phân tích cho phù hợp ví dụ với tài khoản của em:
00020101021138580010A00000072701280006970418011444010000******0208QRIBFTTA53037045802VN6304076A
  • 000201: Phiên bản của mã QR.
  • 010211: Loại mã QR (tĩnh hoặc động).
  • 38580010A00000072701280006970418011444010000******: Thông tin tài khoản thụ hưởng.
    • 3858: Mã quốc gia (Việt Nam).
    • 0010A000000727: Mã định danh của ngân hàng (BIDV).
    • 01280006970418011444010000******: Số tài khoản thụ hưởng (44010000******).
  • 0208QRIBFTTA: Mã giao dịch.
  • 5303704: Mã tiền tệ (VND).
  • 5802VN: Mã quốc gia (Việt Nam).
  • 6304076A: Mã kiểm tra.
Mình có thử rồi nhưng thay đổi số tiền khác và nội dung khác 1 tí nó cũng không được bạn à
 
Upvote 0
Mình có thử rồi nhưng thay đổi số tiền khác và nội dung khác 1 tí nó cũng không được bạn à
Làm như bác Hiếu Đoàn nói là đúng hướng đó. Giờ bước mấu chốt là bác tìm ra thuật toán để tạo ra mã kiểm tra. Mã kiểm tra sẽ kiểm tra các ký tự trước nó trong chuỗi
 
Upvote 0
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
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom