1 事件列表
event取值 | 说明 |
6001 | 未经处理的文字小票上传消息 |
6002 | 未经处理的图片小票上传消息 |
6003 | 经过处理的小票消息 |
2 事件消息示例
2.1 未经处理的文字小票上传消息(event=6001)
报文格式: application/x-www-form-urlencoded;param=value;charset=UTF-8
消息体格式:
{
"app_id": 'CSJGYI6T8P237', //唯一标识接入身份,联系商米数字店铺提供
"event": '6002', // 触发消息的类型
"payload": '{
"id":"70dcd2f600e45736e1", // 系统生成的小票ID
"sn":"N302D9WZC0064", // 打印设备SN
"seq": "16354077750", // 设备上传唯一标识
"text": "abc" // 文字小票内容
}',
"shop_id": '29203', // 第三方对接软件中门店的标识, 没有或者不需要则为空
"sunmi_shop_no": '28393437387', // 商米数字店铺平台的门店组织编号, 没有或者不需要则为空
"random": 'NDL8GXR', // 随机字符串,由数字和字母组成,长度范围为6-10位
"sign": '738D9FF2482D59E5DC1FB32B6F445464', //签名校验
"timestamp": '1604567375' //当前的unix timestamp,精度到秒级,10位数字
}
备注:payload字段对应的值为string类型,解析对此string类型内容进行json解析
2.2 未经处理的图片小票上传消息 (event=6002)
报文格式: application/x-www-form-urlencoded;param=value;charset=UTF-8
消息体格式:
{
"app_id": 'CSJGYI6T8P237', //唯一标识接入身份,联系商米数字店铺提供
"event": '6002', // 触发消息的类型
"payload": '{
"id":"70dcd2f600e45736e1", // 系统生成的小票ID
"sn":"N302D9WZC0064", // 打印设备SN
"seq": "16354077750", // 设备上传唯一标识
"base64_image":"DKJOIFDNLKSDJLSJDISDNLKFJDLSLDJF==", // 图片小票的base64 encoded string
}',
"shop_id": '29203', // 第三方对接软件中门店的标识, 没有或者不需要则为空
"sunmi_shop_no": '28393437387', // 商米数字店铺平台的门店组织编号, 没有或者不需要则为空
"random": 'NDL8GXR', // 随机字符串,由数字和字母组成,长度范围为6-10位
"sign": '738D9FF2482D59E5DC1FB32B6F445464', //签名校验
"timestamp": '1604567375' //当前的unix timestamp,精度到秒级,10位数字
}
备注:payload字段对应的值为string类型,解析对此string类型内容进行json解析
2.3 经过处理的小票消息 (event=6003)
报文格式: application/x-www-form-urlencoded;param=value;charset=UTF-8
消息体格式:
{
"app_id": 'CSJGYI6T8P237', //唯一标识接入身份,联系商米数字店铺提供
"event": '6003', // 触发消息的类型
"payload": '{
"id":"70dcd2f600e45736e1", // 系统生成的小票ID
"sn":"N302D9WZC0064", // 打印设备SN
"seq": "16354077750", // 设备上传唯一标识
"order_time":"2020-11-05 17:45:00", // 小票生成时间
"order_id":"202011051707", // 小票上的订单ID
"order_received_amount":"20", // 小票金额
"sales_detail_list":[ // 明细列表
{ "amount":"4", // 商品单价
"item":"维他柠檬茶", // 商品名字
"quantity":"1", // 商品数量
"barcode": "38293823" // 商品条码
},
{"amount":"7","item":"梅汤","quantity":"1", "barcode":"29300239"},
{"amount":"6","item":"旺仔牛奶","quantity":"1", "barcode":"29300230"},
{"amount":"3","item":"罐","quantity":"1", "barcode":"29300229"}
]
}',
"shop_id": '29203', // 第三方对接软件中门店的标识, 没有或者不需要则为空
"sunmi_shop_no": '28393437387', // 商米数字店铺平台的门店组织编号, 没有或者不需要则为空
"random": 'NDL8GXR', // 随机字符串,由数字和字母组成,长度范围为6-10位
"sign": '738D9FF2482D59E5DC1FB32B6F445464', //签名校验
"timestamp": '1604567375' //当前的unix timestamp,精度到秒级,10位数字
}
备注:payload字段对应的值为string类型,解析对此string类型内容进行json解析
附录:签名sign生成规则
2.1 协议说明
对接的openAPI接口目前只开放HTTPS方式,所有的消息一律采用POST方式。
2.2 签名规则
对于所有的接入者,数字店铺开放平台会分配以下内容:
- app_id: 唯一标识接入身份
- secret_key: 该用户独有的签名校验
签名规则应用于对HTTP请求中的参数进行MD5签名,规则顺序如下:
- 参数必须包含random字段,为一个随机字符串,由数字和字母组成,长度范围为6-10位
- 参数必须包含timestamp字段 ,为当前的unix timestamp,精度到秒级,10位数字, 格式可以参考 https://tool.chinaz.com/tools/unixtime.aspx
- 参数必须包含app_id字段
- 首先对于所有包含key的传递参数按照ASCII码顺序从小到大排序,将key-value键值对依此组成字符串 (文件参数不参与验签)
- 在字符串尾部拼接该SaaS厂商独有的签名校验secret_key值,拼接方法见例子详述
- 对字符串进行MD5签名
- 对生成的MD5签名转化为全大写
