zhencon

博客园 首页 新随笔 联系 订阅 管理


一、二维码诞生
        二维码诞生于1994年,发明者是日本Denso Wave株式会社的原昌宏,最初叫QR码,可容纳7000个数字,可处理汉字,读取速度比其他编码快10倍以上。目的是为了解决汽车零件的追踪问题。随着移动互联网的发展,二维码的应用变得更加广泛,包括在发票上的应用。

二、发票中二维码
       具体到发票二维码的历史和发展,它最初是为了应对传统纸质发票存在的诸如易丢失、伪造等问题而设计的。通过将发票的关键信息(如发票代码、号码、开票日期、金额等)编码进二维码中,用户可以通过扫描二维码快速获取这些信息,从而实现发票的真伪验证、报销流程的自动化等功能。

2.1 二维码密文
        2011年国家税务总局颁布《关于增值税防伪税控系统汉字防伪项目试运行有关问题的通知》(国税发[2011]44号),上海、陕西和深圳三地试运行新的“二维码增值税专用发票”。在不改变现有防伪税控系统密码体系前提下,采用数字密码和二维码技术,利用存储更多信息量的二维码替代原来的84位和108位字符密文,在加密发票七要素信息的基础上实现了对购买方企业名称、销售方企业名称、货物名称、单位和数量等信息的加密、报税采集和解密认证功能。

ac9dc4fc1f1d455aa6683424d67c13b5

2.2 第一张带二维码发票
国家税务总局2013 年2月25日公布的《网络发票管理办法》(国家税务总局令第30号)出台。2013年4月1日起施行。

2013年6月27日,中国内地首张电子发票2013年由京东商城开出。
7faf6b323acd49f7b3646cb2ec652d37

2014年04月01日,全国首张电子发票重庆落地。重庆市地方税务局通用电子发票,发票代码是250001470001,发票号码是00000001,付款方是乐透电子商务有限公司,收款人是李莹,金额是贰万零伍佰圆整。发票的下方则是可供验证查询的二维码。

a4be07c9f6604583ad3516cf5aeddfe4

2014年06月25日,成都首张电子发票。

a1a71d0c771947b88880c68d6664703e

2014年6月27日,在成功开具中国电商领域首张电子发票一周年之际,京东再次引领行业之先,与北京市国税局电子发票服务平台、中国人民财产保险股份有限公司(简称“人保财险”)正式对接,成功开具中国首张对公可报销电子发票,并以电子化方式入账。

2015年1月14日,湖北省电子发票系统正式启动运行,武汉京东公司开出了订单号为7927210615、发票号为15005280的全省首份电子发票

ae4a0ef8aa4f409f9e69c1912f770cfc

2015年08月01日, 全国首张升级版电子发票在北京开出。

8c28bb50d0c54aac9e321172cec381ea

2018年8月10日,全国首张区块链电子发票在深圳实现落地,其底层技术由腾讯提供。

ec7d2db865f24d0c9708d3e263ac66b0

2019年4月22日,首张物业服务区块链电子发票二维码。

ade423863fa445fa8d5b7e85c8a2191e

数电票二维码

2021年12月1日,广东省、上海市和内蒙古自治区试点推行全面数字化电子发票(简称数电发票)

7103c17e932243bfbd5982f574d11c12

2.3 火车票二维码

9c775be122e544b4b54d97dba59ea255

4f1d958617194bbbb70309f714962c60

3c0d0db0a97f4f7b912215e59d51501f

e3666789afb44c86a82e9d4946982fa7

2024年数电票

5cd6383fa58d4fbab7e1324c75fde658

2.4 飞机票二维码
飞机票多年是条码,二维码使用比较晚。

c8379839642440959c927e2362f4ddb5

3076524227d54788b21337ab1a300cf6

三、发票二维码种类
3.1、位置
1、在顶部左侧和顶部右侧

2、在右下部。

3.2、内容种类
1、发票防伪二维码
见2.1 章节中,发票中密码区。

2、查验网址二维码(深圳区块链电子发票)
一般是一个网络链接。链接后面的参数带了对应的哈希值、发票号码和金额。

https://bcfp.shenzhen.chinatax.gov.cn/verify/scan?hash=d19bdf09f6d3f8afd0e740b7b22abfdbd2234nnfwe3e9834c7d4d4&bill_num=44687986&total_amount=430000

3、发票分发交付二维码

81e43bc6394841d0a2accf2c4d35f471

以北京为例。 二维码中字符内容:

https://dppt.beijing.chinatax.gov.cn:8443/v/2_25112000000029144028_2025021616301600B992CF4”

3.3 发票二维码样式
主要两种:中间带空心和没有空心的。
1
2

四、二维码python解析

4.1、二维码解析库

1、python语言: QReader, cv2.wechat_qrcode_WeChatQRCode(腾讯贡献)

2、JavaScript语言:jsQR库

3、Java语言:zxing库

4、C/C++语言:ZBar库

5、自行写代码解析。适合有特殊需要或者研究爱好者,自行查找资料。

4.2 二维码里字符串的样式种类

1、7段式
‘01,01,3702221130,04800054,888.8,20230517,68893455791285901076’

2、8段式

二维码中的信息示例:

‘01,01,3702221130,04800054,888.8,20230517,68893455791285901076,727C’

该字符串以逗号分隔每一个属性值,从左到右依次是:

01:第1个属性值,固定01。

01:第2个属性值,表示发票种类代码,不同类型发票值如下。

01增值税专用发票
04增值税普通发票
10增值税普通发票(电子)
08增值税专用发票(电子)
3702221130:第3个属性值,表示发票代码。

04800054:第4个属性值,表示发票号码。

888.8:第5个属性值,表示开票金额。

20230517:第6个属性值,表示开票日期,该值为2023年5月17日。

68893455791285901076:第7个属性值,表示校验码,没有则为空。铁路电子发票第7段为空。

727C:第8个属性值,表示加密字符。一般采用CRC算法中的CRC16_X25

3、9段式

‘01,01,3702221130,04800054,888.8,20230517,68893455791285901076,727C,’

例如:区块链电子发票。9段式比8段式最后多了一个逗号。第9个属性值,表示随机数。很多时候为空。

4、不分段
'380436471472611965765015225038393363531606789836706805872680231044800430121199807180419053897628805389762880538976288053897628805389762880800000'

例如:早期火车票中的。

4.3  使用成熟的发票二维码自动解析工具

可以自动解析出二维码内所有信息,并导出到excel。

以上资料来自网络公开搜集。如有不准欢迎留言指正。

posted on 2025-07-18 22:48  票格子zhencon-com  阅读(111)  评论(0)    收藏  举报