getQrString method

String getQrString(
  1. ZatcaQr qrDataModel
)

Generates a QR code string from the given ZatcaQr data model.

qrDataModel - The data model containing the QR code information.

Returns the QR code string.

Implementation

String getQrString(ZatcaQr qrDataModel) {
  Map<int, dynamic> invoiceData = {
    1: qrDataModel.sellerName,
    2: qrDataModel.sellerTRN,
    3: qrDataModel.issueDateTime,
    4: qrDataModel.invoiceData.totalAmount.toStringAsFixed(2),
    5: qrDataModel.invoiceData.taxAmount.toStringAsFixed(2),
    6: qrDataModel.invoiceHash,
    7: utf8.encode(qrDataModel.digitalSignature),
    8: base64.decode(qrDataModel.publicKey),
    9: base64.decode(qrDataModel.certificateSignature),
  };
  String tlvString = generateTlv(invoiceData);
  final qrContent = utf8.encode(tlvToBase64(tlvString));
  return String.fromCharCodes(qrContent);
}