pix-qrcode
Version:
Library that allows to generate BCB Pix payment BR codes.
41 lines (40 loc) • 1.31 kB
JavaScript
;
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;