# 二维码生成规范
# 接口说明
此接口用于开票二维码生成,开发者可通过此接口在POS机或PC网站上生成开票二维码,消费者扫码后开具发票。
- 开放平台二维码页面提供抬头录入、抬头模糊查询服务;
- 二维码生成规范支持离线生成;
- 此接口配套“商户订单查询”、“开票结果异步通知”接口使用:消费者扫码后点击提交开票按钮时,将通过“商户订单查询”接口查询开发者商户订单数据,开具发票后通过“开票结果异步通知”进行推送。
# 二维码信息
二维码信息包含:高灯开票链接、订单号、下单时间、订单金额、税号、门店号、数据签名。
环境 | 开票链接 |
---|---|
测试环境 | https://invoice.yewifi.com/i/开发者简码/[编码参数] |
正式环境 | https://invoice.fapiaoer.cn/i/开发者简码/[编码参数] |
其中,开发者简码可在高灯云控制台-应用中心-应用管理 (opens new window)中查看。(如果还未创建,请创建应用)
数据项 | 类型 | 必填 | 最大长度(字节) | 描述 | 示例 |
---|---|---|---|---|---|
order_id | string | 是 | 64 | 商户订单号:开发者接入方业务订单唯一标识(开具蓝票开具时填入值) | gd_1904242006002627690 |
amount | int | 是 | 20 | 含税总金额【单位:分(如6666指66.66元)】 | 6666 |
order_time | int | 是 | 20 | 秒级时间戳 | 1512222222 |
org_code | string(30) | 是 | 100 | 销方纳税人识别号.门店编号 销方纳税人识别号(销方票面信息):即统一社会信用代码(一般是15、17、18、20位长度位数字或大写字母,字母I、O、S、V、Z除外) 门店编号:请登录“商家平台“-“门店管理”处查看,如果没有配置门店则“.”传空。 注意,销方纳税人识别号与门店编号中间是英文的“.” | 91469027MA5RH09M0R.FF104 或91469027MA5RH09M0R. |
sign | string(32) | 是 | MD5签名 | 6489BAB7384F66897F6F63FF84589602 |
注:数据项名称仅供参考,不做编码使用。
# 数据签名与编码算法
- 数据项不使用键名,键值按指定顺序使用#连接,拼接成字符串StringA。 键值顺序为:订单号#订单金额#订单时间#门店号;
- 连接字符串StringA与salt,拼接成字符串stringB, 对stringB做MD5加密,生成内容摘要,即数据签名sign,并将签名转为大写;
- 连接StringA和Sign,拼接成字符串StringC。Stringc格式为:订单号#订单金额#订单时间#门店号#数据签名; — 请严格按照该顺序拼接数据
- 对stringC进行 url encode编码,生成stringD,即为开票链接子路径。
# 签名/验签过程
过程 | 描述 |
---|---|
签名过程 | 原始报文->生成MD5摘要-> 原始报文+数据摘要-> URLEncoder |
解密过程 | URLDecoder-> 分解原始报文+数据摘要1->生成数据摘要2->验证数据摘要1和数据摘要2 |
# 二维码生成实例
数据项 | 值 |
---|---|
order_id | 123456 |
amount | 100 |
order_time | 1530720018 |
org_code | 1001001 |
appsecret值为: 27QX0ZzHxj9Ex4wRjIcKzT4GmR9RHseWJXBS3urCHr3CqK8F
开发者简码为:gdkj
步骤 | 说明 | 描述 |
---|---|---|
1 | 拼接数据项 | 123456#100#1530720018#1001001 |
2 | 连接salt | 123456#100#1530720018#100100127QX0ZzHxj9Ex4wRjIcKzT4GmR9RHseWJXBS3urCHr3CqK8F, 生成md5数据摘要:6489bab7384f66897f6f63ff84589602,转大写:6489BAB7384F66897F6F63FF84589602 |
3 | 拼接原始报文和数据摘要 | 123456#100#1530720018#1001001#6489BAB7384F66897F6F63FF84589602 |
4 | urlencode后形成最终编码参数 | 123456%23100%231530720018%231001001%236489BAB7384F66897F6F63FF84589602 |
5 | 生成Url | https://invoice.yewifi.com/i/gdkj/123456%23100%231530720018%231001001%236489BAB7384F66897F6F63FF84589602 |
6 | 生成二维码 | 使用“5”中的URL生成二维码 |