Tạo mã QR Thụy Sĩ bằng Java

Mã QR của Thụy Sĩ còn được gọi là Mã QR của Thụy Sĩ. Nó được phát triển để tự động hóa thanh toán kỹ thuật số. Chúng tôi có thể dễ dàng mã hóa tất cả các thông tin thanh toán cần thiết được yêu cầu để kích hoạt thanh toán bằng Mã QR của Thụy Sĩ. Mã QR của Thụy Sĩ có chứa một cây thánh giá Thụy Sĩ ở giữa. Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo Mã QR Thụy Sĩ bằng Java. Hơn nữa, chúng ta cũng sẽ học cách giải mã và đọc thông tin thanh toán từ mã QR của Thụy Sĩ theo chương trình.

Các chủ đề sau sẽ được đề cập trong bài viết này:

API Java để tạo và đọc mã QR của Thụy Sĩ

Để tạo và đọc mã QR Thụy Sĩ, chúng tôi sẽ sử dụng API Aspose.BarCode cho Java. Nó cung cấp các lớp SwissQRBillSwissQRCodetext cung cấp các thuộc tính khác nhau để hoạt động với mã QR Thụy Sĩ. Lớp SwissQRBill cho phép lấy hoặc thiết lập dữ liệu lập hóa đơn và thanh toán, chẳng hạn như thông tin tài khoản, số tiền, đơn vị tiền tệ và chi tiết chủ nợ. Lớp SwissQRCodetext cho phép mã hóa và giải mã thông tin SwissQRBill được nhúng trong mã QR của Thụy Sĩ.

API cung cấp lớp ComplexBarcodeGenerator để tạo hình ảnh của các mã vạch phức tạp, chẳng hạn như mã QR của Thụy Sĩ. Lớp BarCodeReader của API cho phép đọc các mã vạch của DecodeType được chỉ định. Lớp BarCodeResult của API lưu trữ dữ liệu mã vạch được công nhận, chẳng hạn như loại mã vạch và văn bản mã. Hơn nữa, nó là một API giàu tính năng cho phép bạn tạo, quét và đọc nhiều loại ký hiệu mã vạch.

Vui lòng tải xuống JAR của API hoặc thêm cấu hình pom.xml sau vào ứng dụng Java dựa trên Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-barcode</artifactId>
    <version>22.5</version>
</dependency>

Tạo mã QR Thụy Sĩ bằng Java

Chúng tôi có thể tạo mã QR Thụy Sĩ bằng cách làm theo các bước dưới đây:

  • Tạo một phiên bản của lớp SwissQRCodetext.
  • Đặt các thuộc tính SwissQRBill khác nhau như Phiên bản, Tài khoản, Số tiền, Đơn vị tiền tệ, Tham chiếu, v.v.
  • Khởi tạo các đối tượng lớp Địa chỉ và thiết lập chi tiết Người ghi nợ và Người ghi nợ.
  • Sau đó, tạo một thể hiện của lớp ComplexBarcodeGenerator với đối tượng SwissQRCodetext.
  • Cuối cùng, gọi phương thức save() để lưu hình ảnh tại đường dẫn tệp đã cho.

Mẫu mã sau đây cho thấy cách tạo mã QR Thụy Sĩ bằng Java.

// Ví dụ về mã này trình bày cách tạo mã QR Thụy Sĩ
// Tạo hóa đơn QR Thụy Sĩ
SwissQRCodetext swissQRCode = new SwissQRCodetext();
swissQRCode.getBill().setVersion(QrBillStandardVersion.V2_0);
swissQRCode.getBill().setAccount("CH4431999123000889012");
swissQRCode.getBill().setAmount(1000.25);
swissQRCode.getBill().setCurrency("CHF");
swissQRCode.getBill().setReference("210000000003139471430009017");

// Địa chỉ chủ nợ
Address creditorAddress = new Address();
creditorAddress.setName("Muster & Söhne");
creditorAddress.setStreet("Musterstrasse");
creditorAddress.setHouseNo("12b");
creditorAddress.setPostalCode("8200");
creditorAddress.setTown("Zürich");
creditorAddress.setCountryCode("CH");
swissQRCode.getBill().setCreditor(creditorAddress);

// Địa chỉ con nợ
Address debtorAddress = new Address();
debtorAddress.setName("Muster AG");
debtorAddress.setStreet("Musterstrasse");
debtorAddress.setHouseNo("1");
debtorAddress.setPostalCode("3030");
debtorAddress.setTown("Bern");
debtorAddress.setCountryCode("CH");
swissQRCode.getBill().setDebtor(debtorAddress);

// Tạo hóa đơn QR Thụy Sĩ
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Lưu hình ảnh mã vạch
generator.save("SwissQRBill.png");
Generate Swiss QR Code in Java.

Tùy chỉnh mã QR Thụy Sĩ trong Java

Chúng tôi có thể tùy chỉnh giao diện của mã QR Thụy Sĩ bằng cách làm theo các bước dưới đây:

  • Tạo một phiên bản của lớp SwissQRCodetext.
  • Đặt các thuộc tính SwissQRBill khác nhau như Phiên bản, Tài khoản, Số tiền, Đơn vị tiền tệ, Tham chiếu, v.v.
  • Khởi tạo các đối tượng lớp Địa chỉ và thiết lập chi tiết Người ghi nợ và Người ghi nợ.
  • Tạo một thể hiện của lớp ComplexBarcodeGenerator với đối tượng SwissQRCodetext.
  • Sau đó, đặt các thông số mã vạch khác nhau như chiều rộng hình ảnh, mã hóa, màu mặt sau, độ phân giải, đường viền, v.v.
  • Cuối cùng, gọi phương thức save() để tạo mã. Nó lấy đường dẫn tệp hình ảnh và BarCodeImageFormat làm đối số.

Mẫu mã sau đây cho thấy cách tùy chỉnh mã QR Thụy Sĩ bằng Java.

// Ví dụ mã này trình bày cách tùy chỉnh giao diện của mã QR Thụy Sĩ
// Tạo hóa đơn QR Thụy Sĩ
SwissQRCodetext swissQRCode = new SwissQRCodetext();
swissQRCode.getBill().setVersion(QrBillStandardVersion.V2_0);
swissQRCode.getBill().setAccount("CH4431999123000889012");
swissQRCode.getBill().setAmount(1000.25);
swissQRCode.getBill().setCurrency("CHF");
swissQRCode.getBill().setReference("210000000003139471430009017");

// Địa chỉ chủ nợ
Address creditorAddress = new Address();
creditorAddress.setName("Muster & Söhne");
creditorAddress.setStreet("Musterstrasse");
creditorAddress.setHouseNo("12b");
creditorAddress.setPostalCode("8200");
creditorAddress.setTown("Zürich");
creditorAddress.setCountryCode("CH");
swissQRCode.getBill().setCreditor(creditorAddress);

// Địa chỉ con nợ
Address debtorAddress = new Address();
debtorAddress.setName("Muster AG");
debtorAddress.setStreet("Musterstrasse");
debtorAddress.setHouseNo("1");
debtorAddress.setPostalCode("3030");
debtorAddress.setTown("Bern");
debtorAddress.setCountryCode("CH");
swissQRCode.getBill().setDebtor(debtorAddress);

// Tạo hóa đơn QR Thụy Sĩ
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Đặt kích thước hình ảnh
generator.getParameters().getBarcode().getXDimension().setPixels(4);

// Đặt mã hóa
generator.getParameters().getBarcode().getQR().setQrEncodeMode(QREncodeMode.ECI_ENCODING);
generator.getParameters().getBarcode().getQR().setQrECIEncoding(ECIEncodings.UTF8);

// Đặt màu nền
generator.getParameters().setBackColor(Color.RED);

// Đặt độ phân giải hình ảnh
generator.getParameters().setResolution(300);

// Đặt đường viền
generator.getParameters().getBorder().getColor().brighter();
generator.getParameters().getBorder().setDashStyle(BorderDashStyle.SOLID);
generator.getParameters().getBorder().setColor(Color.BLUE);
generator.getParameters().getBorder().setVisible(true);
generator.getParameters().getBorder().getWidth().setPoint(4);

// Lưu hình ảnh mã vạch dưới dạng JPEG
generator.save("SwissQRBill.jpg", BarCodeImageFormat.JPEG);
Tùy chỉnh mã QR Thụy Sĩ trong Java

Tùy chỉnh mã QR Thụy Sĩ trong Java

Đọc mã QR Thụy Sĩ bằng Java

Chúng tôi có thể đọc mã vạch từ một hình ảnh bằng cách làm theo các bước dưới đây:

  • Đầu tiên, tải một hình ảnh bằng lớp BarCodeReader.
  • Nhận kết quả nhận dạng trong đối tượng lớp BarCodeResult bằng phương thức readBarCodes().
  • Lặp lại các kết quả và giải mã mã QR Thụy Sĩ bằng phương pháp tryDecodeSwissQR().
  • Cuối cùng, đọc SwissQRCodetext và hiển thị dữ liệu.

Mẫu mã sau đây cho thấy cách đọc mã QR Thụy Sĩ từ một hình ảnh bằng Java.

// Ví dụ mã này trình bày cách phát hiện, giải mã và đọc mã QR Thụy Sĩ
// Nhận dạng mã QR của Thụy Sĩ
BarCodeReader reader = new BarCodeReader("SwissQRBill.png", DecodeType.QR);

for (BarCodeResult barcodeResult : reader.readBarCodes())
{
    // Thử giải mã mã QR của Thụy Sĩ
    SwissQRCodetext swissResult = ComplexCodetextReader.tryDecodeSwissQR(barcodeResult.getCodeText());
    if (null != swissResult)
    {
        System.out.println("Version: " + swissResult.getBill().getVersion());
        System.out.println("Account: " + swissResult.getBill().getAccount());
        System.out.println("Amount: " + swissResult.getBill().getAmount());
        System.out.println("Currency: " + swissResult.getBill().getCurrency());
        System.out.println("Reference: " + swissResult.getBill().getReference());

        System.out.println("Creditor Name: " + swissResult.getBill().getCreditor().getName());
        System.out.println("Creditor Street: " + swissResult.getBill().getCreditor().getStreet());
        System.out.println("Creditor House: " + swissResult.getBill().getCreditor().getHouseNo());
        System.out.println("Creditor Postal Code: " + swissResult.getBill().getCreditor().getPostalCode());
        System.out.println("Creditor Town: " + swissResult.getBill().getCreditor().getTown());
        System.out.println("Creditor Country: " + swissResult.getBill().getCreditor().getCountryCode());

        System.out.println("Debtor Name: " + swissResult.getBill().getDebtor().getName());
        System.out.println("Debtor Street: " + swissResult.getBill().getDebtor().getStreet());
        System.out.println("Debtor House: " + swissResult.getBill().getDebtor().getHouseNo());
        System.out.println("Debtor Postal Code: " + swissResult.getBill().getDebtor().getPostalCode());
        System.out.println("Debtor Town: " + swissResult.getBill().getDebtor().getTown());
        System.out.println("Debtor Country: " + swissResult.getBill().getDebtor().getCountryCode());
    }
}
Version: V2_0
Account: CH4431999123000889012
Amount: 1000.25
Currency: CHF
Reference: 210000000003139471430009017
Creditor Name: Muster & Söhne
Creditor Street: Musterstrasse
Creditor House: 12b
Creditor Postal Code: 8200
Creditor Town: Zürich
Creditor Country: CH
Debtor Name: Muster AG
Debtor Street: Musterstrasse
Debtor House: 1
Debtor Postal Code: 3030
Debtor Town: Bern
Debtor Country: CH 

Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để dùng thử thư viện mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, chúng tôi đã học cách:

  • tạo hình ảnh Bill QR của Thụy Sĩ theo chương trình;
  • thiết lập kích thước và độ phân giải hình ảnh mã QR;
  • thiết lập đường viền và màu mặt sau của mã QR;
  • phát hiện mã QR Thụy Sĩ từ một hình ảnh;
  • đọc chi tiết thanh toán từ Mã QR Thụy Sĩ bằng Java.

Bên cạnh đó, bạn có thể tìm hiểu thêm về Aspose.BarCode cho Java API bằng cách sử dụng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm