ຂ້າມໄປຫາເນື້ອຫາ
ບັນທຶກທັງໝົດ

ການອ່ານ Lao QR (EMVCo TLV) ໃນບຣາວເຊີ

ໂຄງສ້າງຂອງລະຫັດ QR ຊຳລະເງິນລາວ, ວິທີອ່ານຢ່າງປອດໄພຢູ່ຝັ່ງຜູ້ໃຊ້ ແລະ ເປັນຫຍັງການກວດ CRC ຈຶ່ງສຳຄັນ.

  • Lao QR
  • EMVCo
  • TypeScript
  • Payments

ລະຫັດ QR ຊຳລະເງິນລາວປະຕິບັດຕາມຮູບແບບ EMVCo Merchant-Presented QR ເຊິ່ງເປັນຮູບແບບດຽວກັນກັບລະບົບ QR ແຫ່ງຊາດຫຼາຍປະເທດ. ເຄື່ອງມື Lao QR ຟຣີຂອງພວກເຮົາອ່ານລະຫັດເຫຼົ່ານີ້ທັງໝົດໃນບຣາວເຊີ. ບັນທຶກນີ້ອະທິບາຍວ່າຕົວອ່ານໃນແພັກເກັດ lao-qr ຂອງພວກເຮົາເຮັດວຽກແນວໃດ.

ຮູບແບບ: tag, ຄວາມຍາວ, ຄ່າ

ຂໍ້ມູນໃນ QR ແມ່ນຂໍ້ຄວາມຕໍ່ກັນເປັນແຖວຂອງບັນທຶກ TLV:

  • Tag — ຕົວເລກ 2 ຫຼັກ ເຊັ່ນ 00 ຫຼື 59
  • ຄວາມຍາວ — ຕົວເລກ 2 ຫຼັກ ບອກຈຳນວນຕົວອັກສອນຂອງຄ່າ
  • ຄ່າ — ຕົວອັກສອນຕາມຈຳນວນນັ້ນພໍດີ

ບາງ tag ເປັນ template: ຄ່າຂອງມັນເອງກໍ່ເປັນລາຍການ TLV. ໃນໂຄງສ້າງ EMVCo ໄດ້ແກ່ tag ຂໍ້ມູນບັນຊີຮ້ານຄ້າ 26–51, ຂໍ້ມູນເພີ່ມເຕີມ 62, template ພາສາ 64 ແລະ ຊ່ວງ 80–99. ສະນັ້ນຕົວອ່ານຈະອ່ານລະດັບນອກກ່ອນ ແລ້ວພະຍາຍາມອ່ານຄ່າຂອງແຕ່ລະ template ເປັນ TLV ຊັ້ນໃນ.

ລົ້ມເຫຼວໃຫ້ຈະແຈ້ງ ພ້ອມບອກຕຳແໜ່ງ

ຕົວແຍກຈະອ່ານໄປຕາມຂໍ້ຄວາມ ແລະ ຢຸດທີ່ບັນຫາທຳອິດ: ສ່ວນຫົວຂາດ, tag ຫຼື ຄວາມຍາວບໍ່ແມ່ນຕົວເລກ ຫຼື ຄວາມຍາວເກີນທ້າຍຂໍ້ມູນ. ແທນທີ່ຈະບອກພຽງວ່າ "QR ບໍ່ຖືກຕ້ອງ" ມັນຈະສົ່ງຂໍ້ຄວາມຜິດພາດ ພ້ອມຕຳແໜ່ງຕົວອັກສອນ ທີ່ເກີດບັນຫາ. ເຮັດໃຫ້ກວດລະຫັດທີ່ເສຍໄດ້ງ່າຍ ແລະ ໜ້າຈໍສາມາດຊີ້ຈຸດທີ່ຜິດໄດ້ພໍດີ.

ສຳລັບ template ພວກເຮົາຜ່ອນຜັນກວ່າ. ຖ້າ tag ທີ່ຄວນເປັນ template ບໍ່ມີ TLV ທີ່ຖືກຕ້ອງ ຈະເກັບຄ່າເດີມໄວ້ ແລະ ເພີ່ມ ຄຳເຕືອນ. ລະຫັດໃນໂລກຈິງບໍ່ໄດ້ສົມບູນສະເໝີ ແລະ ເຄື່ອງມືຄວນສະແດງສິ່ງທີ່ມີ ແທນທີ່ຈະປະຕິເສດທັງໝົດ.

ການກວດອື່ນກໍ່ເປັນຄຳເຕືອນຄືກັນ: Payload Format Indicator (00) ຕ້ອງເປັນ tag ທຳອິດ ແລະ ມີຄ່າ 01 ແລະ tag ທີ່ຊ້ຳກັນຈະຖືກແຈ້ງ.

CRC ຄືການກວດຄວາມຖືກຕ້ອງ

ບັນທຶກສຸດທ້າຍແມ່ນ tag 63 ເຊິ່ງເປັນ checksum 4 ຕົວອັກສອນ. EMVCo ໃຊ້ CRC-16/CCITT-FALSE (polynomial 0x1021, ຄ່າເລີ່ມຕົ້ນ 0xFFFF, ບໍ່ມີ reflection). ຄິດໄລ່ຈາກຂໍ້ມູນຕັ້ງແຕ່ຕົ້ນ ຈົນເຖິງ ແລະ ລວມທັງ 6304 — ຄື tag CRC ແລະ ຄວາມຍາວຂອງມັນ — ແລ້ວປຽບທຽບກັບຄ່າທີ່ບັນທຶກໄວ້.

ນີ້ຄືສິ່ງທີ່ຈັບລະຫັດທີ່ຖືກແກ້ໄຂໄດ້. ຖ້າປ່ຽນຈຳນວນເງິນໃນ tag 54 CRC ຈະບໍ່ກົງກັນ. ຕົວອ່ານຂອງພວກເຮົາລາຍງານວ່າ CRC ຖືກຕ້ອງ ກໍ່ຕໍ່ເມື່ອຄ່າກົງກັນ ແລະ 63 ເປັນ tag ສຸດທ້າຍທີ່ມີຄວາມຍາວ 4. ພວກເຮົາຄິດໄລ່ CRC ຈາກ byte ແບບ UTF-8 ເພື່ອໃຫ້ຂໍ້ມູນທີ່ມີຂໍ້ຄວາມພາສາລາວຖືກຈັດການຢ່າງສະໝ່ຳສະເໝີ.

ເປັນຫຍັງຈຶ່ງເຮັດໃນບຣາວເຊີ

ຕົວອ່ານເປັນ pure function: ບໍ່ເອີ້ນເຄືອຂ່າຍ, ບໍ່ບັນທຶກຂໍ້ມູນ, ບໍ່ມີຜົນຂ້າງຄຽງ. ມີຂໍ້ດີ 3 ຢ່າງ:

  1. ຂໍ້ມູນ QR ບໍ່ອອກຈາກອຸປະກອນຂອງທ່ານ.
  2. ປອດໄພທີ່ຈະໃຊ້ກັບຂໍ້ມູນທີ່ບໍ່ຮູ້ແຫຼ່ງທີ່ມາ — ມີຂີດຈຳກັດຄວາມຍາວ ເພື່ອປະຕິເສດຂໍ້ມູນທີ່ໃຫຍ່ເກີນໄວ້ແຕ່ຕົ້ນ.
  3. ທົດສອບໄດ້ງ່າຍ. ການທົດສອບຂອງພວກເຮົາຄອບຄຸມຄ່າກວດ CRC ມາດຕະຖານ, template ຊັ້ນໃນ, ຈຳນວນເງິນທີ່ຖືກແກ້ໄຂ, CRC ຕົວພິມນ້ອຍ, CRC ທີ່ຂາດ, ຄ່າທີ່ຖືກຕັດ, tag ທີ່ບໍ່ແມ່ນຕົວເລກ ແລະ ລຳດັບ tag ທີ່ຜິດ.

ສິ່ງທີ່ຍັງຄ້າງຢູ່

ເຄື່ອງມືຂອງພວກເຮົາສາມາດປ່ຽນຂໍ້ມູນ QR ເປັນຮູບ QR ໄດ້ແລ້ວ ແລະ ຈະບໍ່ສ້າງຮູບໃຫ້ ຖ້າ CRC ບໍ່ກົງກັນ. ການສ້າງລະຫັດໃໝ່ທັງໝົດທີ່ມີຊື່ຮ້ານເປັນພາສາລາວແມ່ນອີກວຽກໜຶ່ງ: ສະເປັກ EMVCo ກຳນົດຄວາມຍາວເປັນຈຳນວນຕົວອັກສອນ ແຕ່ບາງລະບົບນັບເປັນ byte ເມື່ອມີຂໍ້ຄວາມທີ່ບໍ່ແມ່ນອັກສອນລາຕິນ. ກ່ອນຈະເປີດໃຫ້ໃຊ້ ພວກເຮົາຈະກວດການນັບຄວາມຍາວກັບລະຫັດຈາກແອັບທະນາຄານຕົວຈິງ — ການອ່ານຜ່ອນຜັນໄດ້ ແຕ່ການສ້າງຕ້ອງຖືກຕ້ອງທຸກຕົວອັກສອນ.

ລອງໃຊ້ເອງໄດ້ທີ່ເຄື່ອງມື Lao QR ຟຣີ.