美文网首页
开票二维码的实现

开票二维码的实现

作者: kangaroo_v | 来源:发表于2018-11-30 16:58 被阅读0次

现在二维码开发票越来越火了 如果自己公司也有这个业务需求我们需要生成可供发票扫码枪识别的二维码该如何实现呢?(内容转自Vue.js中文(主)wx群by小呆风) 博主整理
注意---二维码仅供发票扫码枪识别(有同学留言用微信发票助手扫码规则错误--- 此实现方案是供开票使用 发票助手扫描的二维码是已经开好的发票上面的二维码 是有区别的)

先看张图

原理.png

其实上面这张图写的挺清楚的了
先用分隔符分隔开发票抬头信息,组成一个字符串str,然后用CRC16得出4位校验码。然后将字符串str和4位效验码通过base64加密。最后

$ + 01 + base64 + $

我们假设一个发票号(按照需求顺序)
上海某某金融信息有限公司
91310 00000 00000 00P
上海市徐汇区某某路701-A12室021-64640000
中国建设银行上海某某分行 3100 0000 0000 0000 0000

    //假设已经引入crc和base64
    let name = '上海某某金融信息有限公司';
    let identifier = '91310 00000 00000 00P';
    let address = '上海市徐汇区某某路701-A12室021-64640000';
    let bank = '中国建设银行上海某某分行 3100 0000 0000 0000 0000'
        /* 按需求分割 */
    let str = `${name}</>${identifier}</>${address}</>${bank}`
        /* CRC-16 */
    let crcCode = CRC.ToCRC16(str, true)
    console.log('crcCode编码 ' + crcCode)
    let newStr = `${name}</>${identifier}</>${address}</>${bank}</>${crcCode}`
        /* base加密 */
    let strBase = Base64.encode(newStr)
        /* 最终生成 */
    let qrCodeStr = `$01${strBase}$`
    console.log(qrCodeStr)

打印

最终生成.png

参考资料


备注

相关文章

  • 开票二维码的实现

    现在二维码开发票越来越火了 如果自己公司也有这个业务需求我们需要生成可供发票扫码枪识别的二维码该如何实现呢?(内容...

  • iOS国税局发票二维码生成

    近端时间,领导提了一个需求。说是微信中的发票管理下面带有二维码,通过扫描二维码就可以开票,省去了每次开票都要仔细的...

  • 区块链应用又一突破:链改+互联网电子商务的创新模式

    8月时,深圳税务局联合腾讯推出的区块链电子发票,相信大家还记忆尤新,这种区块链电子发票可实现“交易即开票,开票即报...

  • JS生成二维码

    利用js实现将链接或文字生成一个二维码。并且可以改变二维码的样式,二维码添加logo等。那么如何实现呢? 实现步骤...

  • 开票软件升级步骤…

    航天的开票系统… 百旺的开票软件升级… 因为下个月开票税率改变,所以一定要在4月1日之前升级,否则影响开票…

  • 开票

    小胡第一次来苏丹,是来检修的。 一切都很新鲜,天气也没想的那么热。树叶绿幽幽的,马路两边的花儿开得很茂盛,和家里冰...

  • AVFoundation实现二维码的扫描

    AVFoundation实现二维码的扫描 苹果原生二维码的创建和扫描 二、生成二维码 导入CoreImage框架 ...

  • Java实现带logo的二维码

    Java实现带logo的二维码 二维码应用到生活的各个方面,会用代码实现二维码,我想一定是一项加分的技能。好了,我...

  • 生成带 LOGO 的二维码

    通过 生成二维码之 Java (Google zxing) 篇 我们可以实现简单二维码的生成, 但是二维码显示却过...

  • iOS 在二维码中间加图片,改变二维码的颜色

    项目中实现在对二维码的处理(记录) //coreImage框架初始二维码 - (void)CreateCoreIm...

网友评论

      本文标题:开票二维码的实现

      本文链接:https://www.haomeiwen.com/subject/ximhcqtx.html