安卓型自动销售设备通讯协议
目录
- 1 描述
- 2 通讯协议
- 2.1 通讯方式
- 2.2 协议框架
- 2.3 业务协议
- 2.3.1 下发设备二维码
- 2.3.2 设备获取图片广告
- 2.3.3 平台图片广告下发
- 2.3.4 批量下发商品信息
- 2.3.5 批量下发商品应答
- 2.3.6 格子机设备开柜门
- 2.3.7 设置每天重启时间
- 2.3.8 设置每天重启时间应答
- 2.3.9 设备请求货道商品信息
- 2.3.10 设备请求货道商品信息(含优惠码信息)
- 2.3.11 设备二维码下发
- 2.3.12 开关门下发
- 2.3.13 开关门应答
- 2.3.14 单品下单
- 2.3.15 单品购买二维码下发
- 2.3.16 单品优惠码下单
- 2.3.17 单品优惠码购买二维码下发
- 2.3.18 统一付款码订单上报
- 2.3.19 收钱吧订单上报
- 2.3.20 统一付款码下发
- 2.3.21 下发统一付款码响应
- 2.3.22 平台请求出货
- 2.3.23 出货接收响应
- 2.3.24 出货结果上报
- 2.3.25 出货结果上报响应
- 2.3.26 设备上报GPS信息
- 2.3.27 设备请求平台广告计划
- 2.3.28 平台广告计划响应
- 2.3.29 购物车订单下单
- 2.3.30 购物车订单验证优惠码
- 2.3.31 购物车订单优惠码验证结果下发
- 2.3.32 购物车订单出货通知
- 2.3.33 购物车订单上报出货结果上报
- 2.3.34 纸巾机获取动态二维码
- 2.3.35 下发纸巾机动态二维码
- 2.3.36 下发上传设备日志指令
- 2.3.37 下发上传设备日志指令应答
- 2.3.38 纸巾机下发出纸指令
- 2.3.39 纸巾机下发出纸指令响应
- 2.3.40 纸巾机缺纸上报
- 2.3.41 纸巾机下发补纸指令
- 2.3.42 纸巾机下发补纸指令响应
- 2.3.43 纸巾机补纸成功上报
- 2.3.44 安卓下发商品优惠码信息
- 2.3.45 安卓设备下发商品优惠码信息应答
- 2.3.46 支付宝人脸支付设备请求商户信息
- 2.3.47 支付宝人脸支付设备请求商户信息响应
- 2.3.48 支付宝人脸付请求获取zimId和zimInitClientData
- 2.3.49 支付宝人脸支付设备请求商户信息响应
- 2.3.50 支付宝人脸付发起付款请求
- 2.3.51 支付宝人脸支付设备请求商户信息响应
- 2.3.52 勤美屏幕版APK获取信息上报
- 2.3.53 勤美屏幕版APK自定义信息下发
描述
规约
本文档所述的协议是用于东骏科技有限公司物联网服务平台和安卓型自动销售设备的数据交互。
客服(技术)联系方式
杭州东骏科技有限公司 电话:0571-87017551 手机:18657108036
兼容性
仅适用于授权设备。
缩略语
- PDU(Protocol Data Unit) 协议数据单元
- ADU(Application Data Unit) 应用数据单元
- IOTCU(IOT Control Unit) 物联网控制单元
- IOT(internet of things) 物联网
- MB(Main Board) 本文特指售货机主板
- IPC(Industrial Personal Computer) 本文特指安卓工控机
- Server 本文特指东骏波塞冬物联网平台
通讯协议
本章节内容定义通讯模块和服务器之间的通讯协议
通讯方式
- 数据上报:String
- 指令数据:定长报文
- 通讯网络协议:TCP
协议框架
命令结构
定义:服务器发送,通讯模块接收的数据报文。
① | ② | ③ | ④ | ⑤ | ⑥ | ⑦ |
①开始标识(1byte)“_”
②报文长度(3byte)(ASCII数字)
③命令(3byte)(英文大写,第一字节A未保留字段)
④会话ID(6byte)(第一字节0x00-0x3D之间数字+迁移量0x31)
⑤分隔符(1byte)“/”
⑥参数(如果没有则没有该部分)
⑦结束标识(2byte)(0x0D 0x0A)
响应结构
定义:通讯模块发送,服务器接收的报文
① | ② | ③ | ④ | ⑤ | ⑥ | ⑦ |
①开始标识(1byte)“_”
②响应类型(2byte) PG-ping,DV-设备号(IMEI),ID-SIM卡ICCID号,CM-客户端命令,RP-数据上报,RS-命令响应, RJ-Json数据上报
③命令(3byte)(大写英文,回传服务器请求的命令,如果没有服务器请求则为AAA)
④会话ID(6byte)(无服务器会话ID则返回”000000”)
⑤内容长度(3byte)(ASCII数字)的长度
⑥内容(内容长度可以为空)
⑦结束标识(2byte)(0x0D 0x0A)
命令限制
- ADV(设备号IMEI号) AID(SIM卡ICCID号) AXT(心跳) AAA(空指令) 为系统内置命令不能用于其他接口
- 业务级别的接口命令不得用 A 开头
业务协议
下发设备二维码
发送方 | Server |
说明 | 消费者可通过扫描该链接的生成的二维码进行购买。补货人员可通过扫描该链接生成的二维码进行补货。 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | BAF |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:
https://qa-wechart.poseidong.com/web-wechart/wechart/combo/choose?deviceNo=865501040780034 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _106 BAF XAzu57 / https://qa-wechart.poseidong.com/web-wechart/wechart/combo/choose?deviceNo=865501040780034 \r\n
设备获取图片广告
发送方 | IPC |
说明 | 设备向平台请求平台上设置的关联设备的广告信息。 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | UAF |
会话ID(6byte) | A60022 |
内容长度(3byte) | 不定长 |
内容(1byte) | 1 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _ RP UAF A60022 001 1 \r\n
平台图片广告下发
发送方 | Server |
说明 | 服务器下发广告信息。 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | SAF |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:
标志位#/#image1#/#image2#/#image3 说明 标志位:F-删除原有图片,采用默认图片 S-更新图片信息。 image1、image2、image3:平台图片url。 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
_106 BAF XAzu57 / S#/#image1#/#image2#/#image3 \r\n
批量下发商品信息
发送方 | 服务器 |
说明 | 服务器将派样商品的条码下发给设备 |
开始标识 (1byte) | _ |
报文长度 (3byte) | 不定长 |
命令 (3byte) | BAE |
会话ID (6byte) | 服务器生成 |
分隔符 (1byte) | / |
内容 | JSON对象:
{"products":[{"ch":"货道号","bar":"商品条码","qty":库存数,"price":商品售价,"status":货道状态,"name":"商品名称","pic":"图片的路径","tmallProduct":"是否天猫派样商品","remark":"描述","adUrl":"线上商城二维码"}]} |
结束标识(2byte) | \r \n (0x0D 0x0A) |
批量下发商品应答
发送方 | 设备 |
说明 | 设备收到派样商品后响应结果 |
开始标识 (1byte) | _ |
响应类型 (2byte) | RS |
命令 (3byte) | BAE |
会话ID (6byte) | 服务器下发的会话id |
内容长度 (3byte) | 不定长 |
内容(30Byte) | JSON对象:
{”result”:[{“ch”:”货道号”,“status”:更新成功与否,“reason”:错误原因}]} |
结束标识(2byte) | \r \n (0x0D 0x0A) |
格子机设备开柜门
发送方 | Server |
说明 | 用于安卓型格子机开柜门,不需要响应,如果遇到柜门未打开的,进行重试。应用场景:补货人员补货时开柜门。 |
开始标识 (1byte) | _ |
报文长度 (3byte) | 不定长 |
命令 (3byte) | SAJ |
会话ID (6byte) | 服务器生成 |
分隔符 (1byte) | / |
内容 | JSON对象:
["货道号1","货道号2","货道号3"]...... |
结束标识(2byte) | \r \n (0x0D 0x0A) |
示例:
开柜门100和101
_023 SAJ XAzu57 / ["100","101"] \r\n
设置每天重启时间
发送方 | Server |
说明 | 服务器设置设备的每天重启时间,目前只支持设置每天的重启时间,单位到分钟。 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | SYA |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:
小时#/#分钟 说明 小时:00-23 分钟:00-59 如果只下发#/#表示需要删除每天重启的时间。 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: 每天凌晨00:50重启设备 会话id:123456,小时:00,分钟:50 _ 017 SYA 123456 / 00#/#50 \r\n
设置每天重启时间应答
发送方 | 设备 |
说明 | 设备收到设置信息后响应结果 |
开始标识 (1byte) | _ |
响应类型 (2byte) | RS |
命令 (3byte) | UYA |
会话ID (6byte) | 服务器下发的会话id |
内容长度 (3byte) | 不定长 |
内容(30Byte) | S 或 F
S:成功 F:失败 |
结束标识(2byte) | \r \n (0x0D 0x0A) |
示例: 成功 _ RS UYA 下发的会话id 001 S \r \n
设备请求货道商品信息
发送方 | 设备 |
说明 | 设备向服务器获取商品信息,服务器收到后反馈设备二维码和商品货道信息。 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | BAJ |
会话ID(6byte) | A60009 |
内容长度(3byte) | 不定长 |
内容(1byte) | JSON对象:{“chNo”: 货道号,”bar“:条码} 货道号:货道编号 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _ RP BAJ A60009 001 1 \r\n
设备请求货道商品信息(含优惠码信息)
发送方 | 设备 |
说明 | 安卓工控机(主板类型:ANDRIOD)和单片机(主板类型:MCU)向服务器获取设备二维码,商品信息和商品优惠码信息。 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | BAK |
会话ID(6byte) | A60013 |
内容长度(3byte) | 不定长 |
内容(1byte) | JSON对象:{“type”: "主板类型"} 主板类型:ANDRIOD或MCU |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例:
如安卓设备:ANDRIOD
_ RP BAK A60013 007 ANDRIOD \r\n
设备二维码下发
发送方 | 服务器 |
说明 | 服务器下发设备二维码url,设备需自行将其生成二维码。 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | BAF |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:二维码url |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _084 BAF XAzu57 / http://test.poseidong.cn/web-wechart/wechart/combo/choose?deviceNo=12233455677856596 \r\n
开关门下发
发送方 | 服务器 |
说明 | 安卓型设备控制继电器开关门 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | BKG |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:继电器号 操作 继电器号:0-所有;1- 1号继电器;2- 2号继电器 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: 开1号继电器 _002 BKG XAzu57 / 11 \r\n
开关门应答
发送方 | 服务器 |
说明 | 安卓类型设备开关门应答 |
开始标识 (1byte) | _ |
响应类型 (2byte) | RS |
命令 (3byte) | BKG |
会话ID (6byte) | 服务器下发的会话id |
内容长度 (3byte) | 不定长 |
内容(30Byte) | 1号继电器结果 2号继电器结果 结果:1-成功 0-失败 |
结束标识(2byte) | \r \n (0x0D 0x0A) |
示例:
成功
_ RS BKG 下发的会话id 002 11 \r \n
单品下单
发送方 | 设备 |
说明 | 设备向平台上报用户选择的商品。 |
开始标识(1byte) | _ |
响应类型(2byte) | RJ |
命令(3byte) | DAB |
会话ID(6byte) | A60001 |
内容长度(3byte) | 不定长 |
内容(1byte) | JSON格式: {“ch”:“货道号”,“bar”:”条码”,“qty”:购买数量,“price”:销售价格,“payMethod”:支付方式} |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例:
_ RJ DAB A60001 099 {"ch":"123","bar":"1542583208503","qty":1,"price":1,"payMethod":0,"pay":0,"payResult":0,"result":0} \r\n
单品购买二维码下发
发送方 | 服务器 |
说明 | 服务器向设备下发二维码 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | BBF |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | JSON格式:
{"deviceNo":"设备号",“bill”:”订单号”,"ch":"货道号","bar":"商品条码","qty":数量,“aliqr”:”支付宝二维码链接字符串”,“weixinqr”:微信二维码链接字符串} |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _ 228 BBF RLuSTO / {"deviceNo":"12233455677856596","bill":"20190520152411061474253","ch":"123","bar":"1542583208503","qty":1,"aliqr":"https://qr.alipay.com/bax019938fuyutv3pk5p8080","weixinqr":"weixin://wxpay/bizpayurl?pr=UgQhKxw"}
单品优惠码下单
发送方 | 设备 |
说明 | 用户在设备上选择商品,并输入优惠码,设备上报相关信息到平台。 |
开始标识(1byte) | _ |
响应类型(2byte) | RJ |
命令(3byte) | DAP |
会话ID(6byte) | A60012 |
内容长度(3byte) | 不定长 |
内容(1byte) | JSON格式: {“ch”:“货道号”,“bar”:”条码”,“qty”:购买数量,“price”:销售价格,“payMethod”:支付方式,”dstCode”:优惠码} |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例:
优惠码:1234567
_ RJ DAP A60012 112 {"ch":"123","bar":"1542583208503","qty":1,"price":1,"payMethod":0,"dstCode":"1234567","pay":0,"payResult":0,"result":0} \r\n
单品优惠码购买二维码下发
发送方 | 服务器 |
说明 | 服务器向设备下发优惠码购买二维码 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | BBQ |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | JSON格式:
{"deviceNo":"设备号",“bill”:”订单号”,"ch":"货道号","bar":"商品条码","qty":数量,"errorCode":"错误码"“aliqr”:”支付宝二维码链接字符串”,“weixinqr”:微信二维码链接字符串} |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _ 244 BBQ R5Y3xs / {"deviceNo":"12233455677856596","bill":"20190520152411061579726","ch":"123","bar":"1542583208503","qty":1,"errorCode":"0","aliqr":"https://qr.alipay.com/bax01928iin0o7nlggf66022","weixinqr":"weixin://wxpay/bizpayurl?pr=pbHhWN6"} \r\n
统一付款码订单上报
发送方 | 设备 |
说明 | 用户在设备上下单后, 设备上报下单信息给服务器, 服务器生成订单及二维码。 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | UAH |
会话ID(6byte) | A60024 |
内容长度(3byte) | 不定长 |
内容(1byte) | 格式: 唯一码 #/# 货道号 #/# 条码 #/# 数量 #/# 价格 #/# 优惠码 #/# 手机号
唯一码:字符串,用于区分下发二维码对应的上报记录 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例:
唯一码:abc
货道号:123
条码:1542583208503
数量:1
单位:1分
优惠码:1234567
手机号:15311112222
_ RP UAH A60024 036 abc#/#123#/#1542583208503#/#1#/#1#/#1234567#/#15311112222
收钱吧订单上报
发送方 | 设备 |
说明 | 用户在设备上下单后, 设备上报下单信息给服务器, 服务器生成订单及二维码。 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | UAH |
会话ID(6byte) | A60061 |
内容长度(3byte) | 不定长 |
内容(1byte) | 格式: 唯一码 #/# 货道号 #/# 条码 #/# 数量 #/# 价格 #/# 优惠码
唯一码:字符串,用于区分下发二维码对应的上报记录 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例:
唯一码:abc
货道号:123
条码:1542583208503
数量:1
单位:1分
优惠码:1234567
_ RP UAH A60061 036 abc#/#123#/#1542583208503#/#1#/#1#/#1234567
统一付款码下发
发送方 | 服务器 |
说明 | 工控机接收到服务器下发的出货指令并确定能够处理时立即返回响应 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | SAH |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 唯一码#/#结果#/#订单号#/#支付二维码地址 说明: |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _ 161 SAH SSbP3y / abc#/#0#/#20190520181827542622500#/#https://rolooc.poseidong.com/web-wechart/mobile/oa/20170818019kLQ6vMkj/ivem/pay/union/20190520181827542622500
下发统一付款码响应
发送方 | 设备 |
说明 | 设备收到二维码后响应结果 |
开始标识 (1byte) | _ |
响应类型 (2byte) | RS |
命令 (3byte) | UAH |
会话ID (6byte) | 服务器下发的会话id |
内容长度 (3byte) | 不定长 |
内容(30Byte) | S 或 F
S: 成功 F: 失败 |
结束标识(2byte) | \r \n (0x0D 0x0A) |
示例: 成功
_ RS UAH 下发的会话id 001 S \r\n
平台请求出货
发送方 | 服务器 |
说明 | 服务器接收到销售订单并且支付成功后向通讯模块下发出货命令,要求设备出货。 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | ICH |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式: 货道号 #/# 出货数量 #/# 订单号
说明 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: 货道110, 出货1个, 订单号12345678901234567890123 _ 049 ICH WZa6HV / 110#/#1#/#12345678901234567890123 \r\n
出货接收响应
发送方 | 设备 |
说明 | 设备接收到服务器下发的出货指令并确定能够处理时立即返回响应 |
开始标识 (1byte) | _ |
响应类型 (2byte) | RS |
命令 (3byte) | ICH |
会话ID (6byte) | 服务器下发的会话id |
内容长度 (3byte) | 不定长 |
格式: 响应结果 说明: | |
结束标识(2byte) | \r \n (0x0D 0x0A) |
示例: 接收成功 _ RS ICH 123456 001 S \r \n
出货结果上报
发送方 | 设备 |
说明 | 设备出货完成后,通知服务器出货结果。 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | ICH |
会话ID(6byte) | A60010 |
内容长度(3byte) | 不定长 |
内容(1byte) | 格式:
出货结果 #/# 出货数量 #/# 服务器下发的订单号 说明: |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例
出货结果: 成功
货道: 110
订单号: 12345678901234567890123
_ RP ICH A60010 033 S#/#110#/#12345678901234567890123 \r\n
出货结果上报响应
发送方 | 服务器 |
说明 | 服务器收到出货结果上报后回应设备, 如果没收到回应设备需要重新尝试上报出货结果 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | ICX |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式: 订单号#/#反馈结果 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例
订单号: 12345678901234567890123
反馈结果: 成功
_ 043 ICX 123456 / 12345678901234567890123#/#S \r\n
设备上报GPS信息
发送方 | 工控机 |
说明 | 设备将获取到的当前经纬度信息上报平台,设备启动时主动上报,每隔1小时上报一次。 |
开始标识 | _ |
响应类型 (2byte) | RP |
报文长度(3byte) | 不定长 |
命令(3byte) | TNS |
会话ID (6byte) | A60031 |
内容长度 (3byte) | 001 |
内容(1Byte) | 字符串; 数据以':'分割, 纬度:经度 |
结束标识 (2byte) | \r \n (0x0D 0x0A) |
设备请求平台广告计划
发送方 | 设备 |
说明 | 设备请求平台广告计划,每个小时请求下一个小时的广告计划。 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | UAO |
会话ID(6byte) | A60030 |
内容长度(3byte) | 不定长 |
内容(1byte) | JSON:[{
"webPage": "homePage",
"position": "top",
"version": "",
"requestDate": 1551173539285
}, {
"webPage": "homePage",
"position": "left",
"version": "112111",
"requestDate": 1551173539286
}]
说明: |
结束标识(2byte) | \r\n (0x0D 0x0A) |
平台广告计划响应
发送方 | Server |
说明 | 响应工控机请求广告计划。 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | SAO |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:JSON
{
"deviceNo": "设备号",
"adPlanListForPush": [{
"name": "计划名称",
"cd": "编号",
"webPage": "页面",
"position": "在页面上的位置",
"lastTime": 停留时长,
"intervalPush": "时段",
"startTime": 投放开始时间,
"endTime": 投放结束时间,
"fileType": "广告文件类型",
"version": "版本号",
"adList": [{
"name": "素材名称",
"fileName": "图片名称",
"fileType": "文件类型",
"httpPath": "文件请求路径",
"repo": "存储方式"
}, {
"name": "素材名称",
"fileName": "图片名称"",
"fileType": "文件类型",
"httpPath": "文件请求路径",
"ossKey": "文件osskey",
"repo": "存储方式"
}],
"versionResult": "版本比对结果"
}, {
"webPage": "页面",
"position": "在页面上的位置",
"version": "版本号",
"versionResult": "版本比对结果"
}]
} 说明: adList.name 字符串类型 素材名称 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
购物车订单下单
发送方 | 设备 |
说明 | 用户通过设备选择多个商品(建议商品总量不超过6个,总类型不超过3种)下单,设备上报服务器并由服务器生成订单。 |
开始标识(1byte) | _ |
响应类型(2byte) | RJ |
命令(3byte) | SAP |
会话ID(6byte) | A60028 |
内容长度(3byte) | 不定长 |
内容(1byte) | JSON格式: {“payMethod”:支付方式,”dstCode”:优惠码,”identify”:识别码,”qrType”:请求二维码类型,”cartList”:[“ch”:货道号,”bar”:条码,”qty”:购买数量,”price”:销售价格]} |
结束标识(2byte) | \r\n (0x0D 0x0A) |
购物车订单验证优惠码
发送方 | 设备 |
说明 | 发送订单数据验证优惠码是否可用。 |
开始标识(1byte) | _ |
响应类型(2byte) | RJ |
命令(3byte) | SAP |
会话ID(6byte) | A60028 |
内容长度(3byte) | 不定长 |
内容(1byte) | JSON格式: {“dstCode”:优惠码,”identify”:识别码,”cartList”:[“ch”:货道号,”bar”:条码,”qty”:购买数量,”price”:销售价格]} |
结束标识(2byte) | \r\n (0x0D 0x0A) |
购物车订单优惠码验证结果下发
发送方 | Server |
说明 | 购物车优惠码信息上报后下发验证结果。 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | SAF |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | JSON格式: {“dstCode”:优惠码,”identify”:识别码,”successFlag”:优惠码是否可用,”message”:详情,”amount”:总价,”discountAmount”:优惠金额,”“resultList”:[“bar”:条码,”qty”:数量,”ch”:货道号,”price”:单价,”amount”:总价,” discountAmount”:优惠金额] } |
结束标识(2byte) | \r\n (0x0D 0x0A) |
购物车订单出货通知
发送方 | Server |
说明 | 购物车优惠码信息上报后下发验证结果。 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | SAF |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | JSON格式: {“dstCode”:优惠码,”identify”:识别码,”successFlag”:优惠码是否可用,”message”:详情,”amount”:总价,”discountAmount”:优惠金额,”“resultList”:[“bar”:条码,”qty”:数量,”ch”:货道号,”price”:单价,”amount”:总价,” discountAmount”:优惠金额] } |
结束标识(2byte) | \r\n (0x0D 0x0A) |
购物车订单上报出货结果上报
发送方 | 设备 |
说明 | 设备出货完成后,通知服务器出货结果。 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | SAP |
会话ID(6byte) | A60029 |
内容长度(3byte) | 不定长 |
内容(1byte) | JSON格式:
{“bill”:订单号,”list”:[ “ch”:货道号,”qty”:成功出货的数量,”result”:出货结果]} |
结束标识(2byte) | \r\n (0x0D 0x0A) |
纸巾机获取动态二维码
发送方 | IPC |
说明 | 设备向平台请求消费者扫描动态二维码。 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | SAW |
会话ID(6byte) | A60053 |
内容长度(3byte) | 不定长 |
内容(1byte) | 1 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _ RP SAW A60053 001 1 \r\n
下发纸巾机动态二维码
发送方 | Server |
说明 | 消费者可通过扫描该链接的生成的二维码操作出纸。 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | SAW |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:
https://qa-wechart.poseidong.com/web-wechart/mobile/oa/{appid}/ivem/tissue/scan?nonce=*********** |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _106 SAW XAzu57 / https://qa-wechart.poseidong.com/web-wechart/mobile/oa/{appid}/ivem/tissue/scan?nonce=*********** \r\n
下发上传设备日志指令
发送方 | 服务器 |
说明 | 服务器下发指令给设备,设备上传日志到指定的ftp服务器 |
开始标识 (1byte) | _ |
报文长度 (3byte) | 不定长 |
命令 (3byte) | SAV |
会话ID (6byte) | 服务器生成 |
分隔符 (1byte) | / |
内容 | JSON对象:
{"host":"主机","port":"端口","username":"用户名","password":"密码","path":"路径","time":"时间(格式为yyyyMMdd)"} |
结束标识(2byte) | \r \n (0x0D 0x0A) |
下发上传设备日志指令应答
发送方 | 设备 |
说明 | 设备收到上传设备日志指令后响应结果 |
开始标识 (1byte) | _ |
响应类型 (2byte) | RS |
命令 (3byte) | SAV |
会话ID (6byte) | 服务器下发的会话id |
内容长度 (3byte) | 不定长 |
内容(30Byte) | JSON对象:
{"result":"结果"} |
结束标识(2byte) | \r \n (0x0D 0x0A) |
纸巾机下发出纸指令
发送方 | 服务器 |
说明 | 服务器下发给设备出纸指令 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | SJA |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:json对象 length(出纸长度,厘米):int类型 billCd(订单号):string类型 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: 出纸长度10cm, 订单号12345678901234567890123 _ 049 SJA WZa6HV / {"length": 10, "billCd": "12345678901234567890123"} \r\n
纸巾机下发出纸指令响应
发送方 | 设备 |
说明 | 设备接收到服务器下发的出纸指令并确定能够处理时立即返回响应 |
开始标识 (1byte) | _ |
响应类型 (2byte) | RS |
命令 (3byte) | SJA |
会话ID (6byte) | 服务器下发的会话id |
内容长度 (3byte) | 不定长 |
内容(30Byte) | 格式: 说明: |
结束标识(2byte) | \r \n (0x0D 0x0A) |
示例: 接收成功 _ RS SJA 123456 001 S \r \n
纸巾机缺纸上报
发送方 | 设备 |
说明 | 设备出货完成后,通知服务器出货结果。 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | SAJ |
会话ID(6byte) | A60090 |
内容长度(3byte) | 不定长 |
内容(1byte) | 格式:无
说明: |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例
_ RP SAJ A60090 033 *** \r\n
纸巾机下发补纸指令
发送方 | 服务器 |
说明 | 服务器下发给设备补纸指令 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | SJB |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 无 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _ 049 SJB WZa6HV / \r\n
纸巾机下发补纸指令响应
发送方 | 设备 |
说明 | 设备接收到服务器下发的补纸指令并确定能够处理时立即返回响应 |
开始标识 (1byte) | _ |
响应类型 (2byte) | RS |
命令 (3byte) | SJB |
会话ID (6byte) | 服务器下发的会话id |
内容长度 (3byte) | 不定长 |
内容(30Byte) | 格式: 说明: |
结束标识(2byte) | \r \n (0x0D 0x0A) |
示例: 接收成功 _ RS SJB 123456 001 S \r \n
纸巾机补纸成功上报
发送方 | 设备 |
说明 | 设备补纸成功后,通知服务器补纸结果。 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | SJB |
会话ID(6byte) | A60091 |
内容长度(3byte) | 不定长 |
内容(1byte) | 格式:无
说明: |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例
_ RP SAJ A60091 033 *** \r\n
安卓下发商品优惠码信息
发送方 | Server |
说明 | 批量下发商品优惠码信息 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | BAL |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:
{"products":[{"bar":"商品条码","disCodes":["优惠码","优惠码"……]]} |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _ 146 BAL HzkNan / {"deviceNo":"123123123","products":[{"bar":"1556429702499","disCodes":["0010304","0010305","0010301","0010302","0010303"]}]} \r\n
安卓设备下发商品优惠码信息应答
发送方 | 设备 |
说明 | 服务器批量向安卓工控机下发商品优惠码信息后安卓工控机应答服务器 |
开始标识 (1byte) | _ |
响应类型 (2byte) | RS |
命令 (3byte) | BAL |
会话ID (6byte) | 服务器下发的会话id |
内容长度 (3byte) | 不定长 |
内容(30Byte) | 格式: 响应结果 |
结束标识(2byte) | \r \n (0x0D 0x0A) |
示例:_ RS SJA 123456 055 {"result":[{"bar":"1556429702499","reason":0,"status":0}]} \r\n
支付宝人脸支付设备请求商户信息
发送方 | 设备 |
说明 | 设备发起人脸支付前,先向服务器请求商户信息 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | UAC |
会话ID(6byte) | A60019 |
内容长度(3byte) | 不定长 |
内容(1byte) | # 说明:无特殊意义,直接设置成字符串“#”即可 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例:
_ RP UAC A60019 001 # \r\n
支付宝人脸支付设备请求商户信息响应
发送方 | Server |
说明 | 响应安卓设备请求支付宝人脸支付商户信息。 |
开始标识(1byte) | _ |
响应类型(2byte) | RS |
报文长度(3byte) | 不定长 |
命令(3byte) | SAC |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:String 合作者信息#/#合作者信息 说明: |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例:
_ 051 SAC RaWt2o / 20884213XXXXXXXX#/#20884213XXXXXXXX \r\n
支付宝人脸付请求获取zimId和zimInitClientData
发送方 | 设备 |
说明 | 设备发起人脸支付前,向服务器请求获取zimId和zimInitClientData |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | UAE |
会话ID(6byte) | A60020 |
内容长度(3byte) | 不定长 |
内容(1byte) | 格式:JSON
{
"apdidToken":apdidToken,
"appName":"com.alipay.zoloz.smile",
"appVersion":"4.0.0.534",
"bioMetaInfo":"4.5.0:287358976,32770",
"deviceModel":"MC-Android",
"deviceType":"android",
"machineInfo":{
"cameraColorResolution":"640*480",
"cameraDriveVer":"RD107E-007",
"cameraModel":"AstraPro2",
"cameraName":"AstraPro2",
"cameraVer":"18031620100",
"ext":"",
"group":"",
"machineCode":"Xug9XyS9++QDAHJuMo6N+c27",
"machineModel":"MC-Android",
"machineVer":"5.1.1",
"sn":"DBF6PBVO0I"
},
"merchantInfo":{
"appId":appId,
"brandCode":brandCode,
"deviceMac":deviceMac,
"deviceNum":deviceNum,
"merchantId":merchantId,
"partnerId":partnerId
},
"osVersion":"5.1.1",
"remoteLogID":"65b4cb02e7ef44eabcbaaa1e34741d3984919880",
"zimVer":"1.0.0"
}
该信息通过安卓设备调用支付宝接口获取,参考地址:https://opendocs.alipay.com/open/20180402104715814204/cgxcze |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例:
_ RP UAE A60020 813 {"apdidToken":"rQwc4Oi6r4DjIJHfeH17o_02rkwi6uAp0oFzFbvCUPH9yt74xxxxxxxx","appName":"com.alipay.zoloz.smile","appVersion":"4.0.0.534","bioMetaInfo":"4.5.0:287358976,32770","deviceModel":"MC-Android","deviceType":"android","machineInfo":{"cameraColorResolution":"640*480","cameraDriveVer":"RD107E-007","cameraModel":"AstraPro2","cameraName":"AstraPro2","cameraVer":"18031620100","ext":"","group":"","machineCode":"Xug9XyS9++QDAHJuMo6N+c27","machineModel":"MC-Android","machineVer":"5.1.1","sn":"DBF6PBVO0I"},"merchantInfo":{"appId":"2017051807xxxxxx","brandCode":"6901285xxxxxx","deviceMac":"862810049xxxxxx","deviceNum":"862810049xxxxxx","merchantId":"20884213xxxxxxxx","partnerId":"20884213xxxxxxxx"},"osVersion":"5.1.1","remoteLogID":"65b4cb02e7ef44eabcbaaa1e34741d39xxxxxxxx","zimVer":"1.0.0"} \r\n
支付宝人脸支付设备请求商户信息响应
发送方 | Server |
说明 | 响应安卓设备请求支付宝人脸支付商户信息。 |
开始标识(1byte) | _ |
响应类型(2byte) | RS |
报文长度(3byte) | 不定长 |
命令(3byte) | SAE |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:String
标识位#/#请求内容#/#zimId#/#zimInitClientData#/#订单号 说明: |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例:
成功:
_ 999 SAE RaW3XJ / S#/#{"apdidToken":"rQwc4Oi6r4DjIJHfeH17o_02rkwi6uAp0oFzFbvCUPH9yt74xxxxxxxx","appName":"com.alipay.zoloz.smile","appVersion":"4.0.0.534","bioMetaInfo":"4.5.0:287358976,32770","deviceModel":"MC-Android","deviceType":"android","machineInfo":{"cameraColorResolution":"640*480","cameraDriveVer":"RD107E-007","cameraModel":"AstraPro2","cameraName":"AstraPro2","cameraVer":"18031620100","ext":"","group":"","machineCode":"Xug9XyS9++QDAHJuMo6N+c27","machineModel":"MC-Android","machineVer":"5.1.1","sn":"DBF6PBVO0I"},"merchantInfo":{"appId":"2017051807xxxxxx","brandCode":"6901285xxxxxx","deviceMac":"862810049xxxxxx","deviceNum":"862810049xxxxxx","merchantId":"20884213xxxxxxxx","partnerId":"20884213xxxxxxxx"},"osVersion":"5.1.1","remoteLogID":"65b4cb02e7ef44eabcbaaa1e34741d39xxxxxxxx","zimVer":"1.0.0"}#/#78151bf3e53732e52dc109042bd88b4ec80s#/#Q0dRU0FCb2tOemd4TlRGaVpqTmxOVE0zTXpKbE5USmtZekV3T1RBME1tSmtPRGhpTkdWak9EQnpJ#/#20200628153647900622078 \r\n
失败:
_ 999 SAE RaW3XJ / F#/#{"apdidToken":"rQwc4Oi6r4DjIJHfeH17o_02rkwi6uAp0oFzFbvCUPH9yt74xxxxxxxx","appName":"com.alipay.zoloz.smile","appVersion":"4.0.0.534","bioMetaInfo":"4.5.0:287358976,32770","deviceModel":"MC-Android","deviceType":"android","machineInfo":{"cameraColorResolution":"640*480","cameraDriveVer":"RD107E-007","cameraModel":"AstraPro2","cameraName":"AstraPro2","cameraVer":"18031620100","ext":"","group":"","machineCode":"Xug9XyS9++QDAHJuMo6N+c27","machineModel":"MC-Android","machineVer":"5.1.1","sn":"DBF6PBVO0I"},"merchantInfo":{"appId":"2017051807xxxxxx","brandCode":"6901285xxxxxx","deviceMac":"862810049xxxxxx","deviceNum":"862810049xxxxxx","merchantId":"20884213xxxxxxxx","partnerId":"20884213xxxxxxxx"},"osVersion":"5.1.1","remoteLogID":"65b4cb02e7ef44eabcbaaa1e34741d39xxxxxxxx","zimVer":"1.0.0"} \r\n
支付宝人脸付发起付款请求
发送方 | 设备 |
说明 | 设备向平台发起人脸支付请求 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | UAI |
会话ID(6byte) | A60021 |
内容长度(3byte) | 不定长 |
内容(1byte) | 格式:String
ftoken#/#订单号#/#商品编码#/#购买数量#/#货道号#/#单价
信息说明:
ftoken:该参数设备通过支付宝api获取,参考地址:https://opendocs.alipay.com/open/20180402104715814204/cgxcze |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例:
_ RP UAI A60021 109 fp1aef2d92e7c37a635d3ab5788exxxxxxx#/#20200628153647900622078#/#6901285991219#/#1#/#001#/#1 \r\n
支付宝人脸支付设备请求商户信息响应
发送方 | Server |
说明 | 响应安卓设备请求支付宝人脸支付商户信息。 |
开始标识(1byte) | _ |
响应类型(2byte) | RS |
报文长度(3byte) | 不定长 |
命令(3byte) | SAI |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:String
标识位#/#订单号 说明: |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例:
成功:
_ 043 SAI RavCpl / S#/#20200628153647900622078 \r\n
失败:
_ 043 SAI RavCpl / F#/#20200628153647900622078 \r\n
勤美屏幕版APK获取信息上报
发送方 | 设备 |
说明 | 勤美屏幕版APK获取信息。 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | SUK |
会话ID(6byte) | A60034 |
内容长度(3byte) | 不定长 |
内容(1byte) | 格式:
服务器下发的设备号 说明: |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例
设备号: 2020090411080017
_ RP SUK A60034 002 34 \r\n
勤美屏幕版APK自定义信息下发
发送方 | 服务器 |
说明 | 勤美屏幕版APK上需要显示设备的名称以及售后手机号码,由平台自动获取。 |
开始标识(1byte) | _ |
响应类型(2byte) | RS |
命令(3byte) | SUK |
会话ID(6byte) | A60034 |
内容长度(3byte) | 不定长 |
内容(1byte) | JSON格式: {"deviceNo":"2020090411080017","qinMeiApkVO":{"cd":"设备号","name":"设备名称","place":"场地信息","status":"设备状态","cphone":"售后电话","snumber":"序列号"}} |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例:
{"deviceNo":"2020090411080017","qinMeiApkVO":{"cd":"2020090411080017","name":"ZHVhbiB5dQ==","place":"5LiK5rW35biC5LiK5rW35biC5Y2X5rGH5Yy65rWL6K+VMDAx","status":"5q2j5bi45ZCv55So","cphone":"18698575030","snumber":"2020090411080017"}}