UNPKG

pix-qrcode

Version:

Library that allows to generate BCB Pix payment BR codes.

41 lines (40 loc) 1.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getCRC16 = exports.formatValue = void 0; var crc_table_1 = require("./crc-table"); var PAYLOAD_IDs = { PAYLOAD_FORMAT_INDICATOR: "00", MERCHANT_ACCOUNT_INFORMATION: "26", MERCHANT_ACCOUNT_INFORMATION_GUI: "00", MERCHANT_ACCOUNT_INFORMATION_KEY: "01", MERCHANT_ACCOUNT_INFORMATION_DESCRIPTION: "02", MERCHANT_CATEGORY_CODE: "52", TRANSACTION_CURRENCY: "53", TRANSACTION_AMOUNT: "54", COUNTRY_CODE: "58", MERCHANT_NAME: "59", MERCHANT_CITY: "60", POSTAL_CODE: "61", ADDITIONAL_DATA_FIELD_TEMPLATE: "62", ADDITIONAL_DATA_FIELD_TEMPLATE_TXID: "05", CRC16: "63", }; var formatValue = function (id, value) { var emvId = PAYLOAD_IDs[id]; var size = value.length.toString().padStart(2, "0"); return "" + emvId + size + value; }; exports.formatValue = formatValue; var getCRC16 = function (payload) { var crc = 0xffff; var j, i; for (i = 0; i < payload.length; i++) { var c = payload.charCodeAt(i); if (c > 255) throw new RangeError(); j = (c ^ (crc >> 8)) & 0xff; crc = crc_table_1.default[j] ^ (crc << 8); } return ((crc ^ 0) & 0xffff).toString(16).toUpperCase(); }; exports.getCRC16 = getCRC16;