title: 一卡通v5平台WebSocket协议接口 date: 2017-04-27 13:45:23 tags:
一卡通v5平台WebSocket协议接口文档
背景
一卡通平台所有终端设备,包括食堂POS、车载机、考勤机和前置等应用端需要能接收从服务端推送过来的数据,并完成相关业务。这些接入终端等都是Client。
接口
1 创建WebSocket连接
从Client发起请求
- action : 请求业务, "login"
- needresp: 是否必须应答
- requestid: 请求ID
- data: 数据域
| 参数 | 说明 | 备注 |
|---|
| clientid | clientid | 客户端生成临时ID |
| local_time | 本地时间 | YYYYMMDDHH24MISS |
| devphyid | 设备物理ID | |
{
"action": "login",
"needresp: true,
"requestid": "21232",
"data": {
"clientid": "123fabfdef19f",
"local_time": "20170427132134",
"devphyid": "10000008"
}
}
- server端返回数据
- action : 请求业务, "login"
- retcode: 响应码
- retmsg: 返回信息
- requestid: 请求ID
| 参数 | 说明 | 备注 |
|---|
| host_time | 主机时间 | 服务端返回系统时间 |
| clientid | clientid | 服务端原值返回 |
{
"action": "login",
"retcode": 0,
"retmsg": "成功",
"requestid": "21232",
"data": {
"clientid": "123fabfdef19f",
"host_time": "20170427132135"
}
}
2 扫码付中间过程请求
在扫码付业务流程中,当用户手机扫描二维码并成功请求二维码中的支付URL,服务端向对应Client 推送通知信息,Client 接收到这个返回后完成对应的业务流程
- Server 端发起请求
- action: 请求业务, "qrpay_in_process"
- needresp: 是否必须应答
- requestid: 请求ID
- data: 数据域
| 参数 | 说明 | 备注 |
|---|
| devphyid | devphyid | 设备ID号 |
| refno | 交易参考号 | 服务端交易初始化成功后生成 |
{
"action": "qrpay_in_process",
"needresp": true,
"requestid": "5656565",
"data": {
"clientid": "123fabfdef19f",
"refno": "20170427132134000001",
"devphyid": "10000008"
}
}
- client端返回数据
- action: 请求业务, "qrpay_in_process"
- retcode: 响应码
- retmsg: 返回信息
- requestid: 请求ID
| 参数 | 说明 | 备注 |
|---|
| host_time | 主机时间 | 服务端返回系统时间 |
| clientid | clientid | 服务端原值返回 |
{
"action": "qrpay_in_process",
"retcode": 0,
"retmsg": "成功",
"requestid": "5656565",
"data": {
"devphyid": "10000008",
"stuempno": "20140001",
"custname": "张三"
}
}
3 扫码付完成请求
当用户手机扫描付完成付款业务后,由Server端推送通知给Client。
Server 端发起
- action: "qrpay_finish"
- needresp: 是否必须应答
- requestid: 请求ID
- data: 数据域
| 参数 | 说明 | 备注 |
|---|
| devphyid | devphyid | 设备ID号 |
| refno | 交易参考号 | 服务端交易初始化成功后生成 |
| status | 交易状态 | succ: 成功, cancel: 取消 |
| fail_reason | 交易取消原因 | 当交易取消时存在 |
| stuempno | 支付用户学号 | 当交易成功时存在 |
| custname | 支付用户名 | 当交易成功时存在 |
| amount | 支付金额 | 单位分, 当交易成功时存在 |
| availbal | 账户可用余额 | 单位分, 当交易成功时存在 |
{
"action": "qrpay_finish",
"needresp": true,
"requestid": "12345566",
"data": {
"refno": "20170427132134000001",
"devphyid": "10000008",
"status": "succ",
"stuempno": "2014001",
"custname" : "张三",
"amount": 110,
"availbal": 9420
}
}