首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在javascript中实现TLV

在javascript中实现TLV
EN

Stack Overflow用户
提问于 2022-01-16 22:52:18
回答 1查看 128关注 0票数 0

我正试图在Javascript中实现电子发票的TLV。我能够将值转换为十六进制,并从十六进制转换为base64。当我将base64值添加到QRcode并尝试测试它时,我会发现一个错误,告诉我我的数据有问题。以下是我的实现

代码语言:javascript
复制
const  __toString = (tag, value) => {
    const tagToHex = "0"+(tag).toString(16)
    const valueLengthToHex = value.length <= 15 ? "0" + (value.length).toString(16) :(value.length).toString(16)
    const valueToHex = this.toHex(value)

    return `${tagToHex}${valueLengthToHex}${valueToHex}`;
}

const toHex = (str) => {
    let result = '';
    for (let i=0; i<str.length; i++) {
      result += str.charCodeAt(i).toString(16);
    }
    return result;
}

Entry point

代码语言:javascript
复制
const generateString = [
    __toString(1, 'Bobs Records'),
    __toString(2, '310122393500003'),
    __toString(3, '2022-04-25T15:30:00Z'),
    __toString(4, '1000.00'),
    __toString(5, '150.00'),
];

return btoa(generateString.join(''))

MDEwYzQyNmY2MjczMjA1MjY1NjM2ZjcyNjQ3MzAyMGYzMzMxMzAzMTMyMzIzMzM5MzMzNTMwMzAzMDMwMzMwMzE0MzIzMDMyMzIyZDMwMzQyZDMyMzU1NDMxMzUzYTMzMzAzYTMwMzA1YTA0MDczMTMwMzAzMDJlMzAzMDA1MDYzMTM1MzAyZTMwMzA=

我得到上面的base64字符串。当我将它设置为qrcode的值并试图扫描它时,我会得到错误,并且我不知道我遗漏了它在哪里。

EN

回答 1

Stack Overflow用户

发布于 2022-01-23 13:55:15

我能够使用这个NPM包npm i --save @axenda/zatca来解决这个问题。有关更多信息,请访问此页面https://github.com/axenda/zatca

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70734840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档