你的位置:首页 > 新闻动态 > 技术文章

停车场收费系统智慧屏应用

时间:2022/12/13 10:50:12      点击:

SDK 对接的车场使用智慧屏,满足下列几个前提条件,可实现断网时的进出场及支付。

1、车场登录云平台,在设备管理中添加本地使用的通道(如果已有使用中的通道,可调用接口2.14上传本地的通道至云端)

2、车场账号登录小程序“车场云管家”,在“车场信息”中给指定通道添加智慧屏,建立屏与通道的连接

3、车场软件更换SDK 的 3.2.0.0 及以上版本,与智慧屏在同一个局域网中,获取指定通道的智慧屏 ip(接口 7.1),并初始化连接智慧屏(接口 7.2),之后可推送出场订单(接口 7.3)、获取扫码枪数据(接口 7.4)等操作

获取智慧屏 ip(收费系统调用SDK)

应用场景
车场登录“云车场管家”小程序给指定通道绑定了智慧屏之后,可调用该接口获取智慧屏的 ip 地址

字段信息:

名称说明类型示例是否必传字段
service_name接口名称Stringscreen_info
data_target上传位置Stringcloud
channel_id通道编号StringA11

示例:
{"service_name": "screen_info","data_target":"cloud","channel_id": "A11"}

同步返回:
字段信息:

名称说明类型示例是否必传字段
service_name接口名称Stringscreen_info
state初始化状态,0 失败 1 成功Number1
errmsg返回描述String查询成功
device_ip智慧屏 ipString192.168.199.199
device_id智慧屏设备号String9528166666999999
device_name智慧屏名称String东门出口
park_id车场编号String21000
channel_id通道编号StringA11

示例:
{"device_ip":"192.168.199.199","device_name":"东门出口","device_id":"9528166666999999","service_name":"screen_info","park_id":"21000","errmsg":"获取成功","state":1,"channel_id":"A11"}

初始化连接智慧屏(收费系统调用SDK)

应用场景
车场获取到指定通道的智慧屏的 ip 地址后,调用该接口与智慧屏建立连接

字段信息:

名称说明类型示例是否必传字段
service_name接口名称Stringinit_screen
data_target上传位置Stringwisdom_screen
channel_id通道编号StringA11
device_ip设备IPString192.168.199.199

示例:
{ "service_name": "init_screen","data_target": "wisdom_screen","device_ip": "192.168.199.199", "channel_id": "A11"}

初始化同步返回:
字段信息:

名称说明类型示例是否必传字段
service_name接口名称Stringinit_screen
state初始化状态,0 失败 1 成功Number1
errmsg返回描述Stringsuccess

示例:
{"errmsg":"success","service_name":"init_screen","state":1}

推送出场订单(收费系统调用SDK)

应用场景
车辆出场,计费系统核算出价格后,调用该接口推送订单详情显示到智慧屏,车主可扫描该信息里的支付二维码进行支付

注:如果长时间未收到支付成功回调,建议车场及时发送其他信息(比如完成页 10秒后会刷新回到主页),避免该信息一直显示,被其他车主误扫

字段信息:

名称说明类型示例是否必传字段
service_name接口名称,出场消息Stringout
data_target上传位置Stringwisdom_screen
channel_id通道编号StringA11
type1:月卡,2:无需缴费,3:缴费成功,4:待支付缴费金额信息Number4
car_number车牌号String京ABC9991
total总金额String2.15否 ( type=3,4时 必传 )
out_pic出场图片的base64 编码格式,Stringdata:image/jpg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/4RnnRXhpZ...
in_pic进场图片的 base64 编码格式 ,前缀“data:image/jpg;base64,”Stringdata:image/jpg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/4RnnRXhpZ...
price需要缴费的金额String0.01否( type=4 必传 )
reduce_amount减免金额 ,需带单位“元”String4.56元否( type=4 必传 )
in_time入场时间 'yyyy-MM-dd HH:mm:ss'String2020-10-16 08:08:08
duration停车时长,单位分钟String22否( type=4 必传 )
code出口支付码地址,按接口 7.5 生成Stringhttp://s.bolink.club/unionapi/thirdtopayorder?params=[1602751210742%2C0.01%2C临BF4E338%2C20.15%2C1602815671%2C200160%2C21782%2CA11%2C1602815671]&sign=d2cdd57437f520735fe27c0ef50a0199否( type=4 必传 )
prepay已预付金额String0.01否( type=4 必传 )
state结果状态,1 成功,0 失败Number1
tts语音播报内容string64

示例:
{"service_name":"out","data_target":"wisdom_screen","type":4,"car_number":"京ABC9991","channel_id":"A11","total":"2.15","price":"0.01","reduce_amount":"4.56元","in_time":"2020-10-16 08:08:08","duration":"22","code":"http://s.bolink.club/unionapi/thirdtopayorder?params=[1602751210742%2C0.01%2C临BF4E338%2C20.15%2C1602815671%2C200160%2C21782%2CA11%2C1602815671]&sign=d2cdd57437f520735fe27c0ef50a0199 ","prepay":"0.01","state":1,"tts":"京ABC123,请缴费2.15元"}

初始化同步返回:
字段信息:

名称说明类型示例是否必传字段
service_name接口名称Stringout
state初始化状态,0 失败 1 成功Number1
errmsg返回描述Stringsuccess

接收被扫数据(SDK回调收费系统)

应用场景
车场推送出场订单到智慧屏后
1、车主可出示付款码被扫,车场接收该支付码再调用接口 2.2 上传 pay_type=auth_code发起扣费;
2、车主支付完成后,在断网情况下,车场无法收到接口 3.4 下发的支付成功消息,此时车主可出示手机上的支付成功二维码被扫,车场收到该信息后可抬杆放行

字段信息:

名称说明类型示例是否必传字段
service_name接口名称,被扫Stringsweepcode
type被扫码类型Number1 、手机付款码 ; 2 、支付成功二维码被扫
pay_info支付成功二维码String
否(type=2 时必传)
authcode微信或支付宝的付款码String234567874567654否(type=1 时必传)
channel_id通道号StringA11

示例:
{"service_name":"sweepcode","type":1,"channel_id":"A11","authcode":"234567874567654"}

初始化同步返回:
字段信息:

名称说明类型示例是否必传字段
service_name接口名称Stringsweepcode
state初始化状态,0 失败 1 成功Number1
errmsg返回描述Stringsuccess

示例:
{"errmsg":"success","service_name":"init_screen","state":1}

车场生成出口支付码

应用场景
车场调用接口 7.3 推送出场订单到智慧屏,type 为 4 时 信息中包含该订单的支付信息链接,调用该接口生成这个支付链接,在智慧屏展示为二维码形式,方便车主扫码支付

注:
1、请求地址 https://s.bolink.club/unionapi/thirdtopayorder
2、sign签名规则是 params 的信息 直接拼接厂商秘钥 ukey 进行md5加密
3、params 有序 数组格式,utf-8编码后传入(获取sign 签名时无需 utf-8 编码)

字段信息:

名称说明类型示例是否必传字段
params有序数组格式(utf-8编码后传入)String[A1_2C1600858624,2.12,京A11111,0.1,1600863147,200279,21000,A1,1600863147]
sign签名,32位小写Stringa7cd3d7c8f30a3e32435aefc88650887

示例:
sign 获取:
[A1_2C1627291675,2.12,京DTTT222,0.1,1627291740,200002,21840,A1,1627350591]EA2D90FEEF1E9F8E 进行MD5加密后取32位小写,得到:542b570d75859a64e3642edfc4285334


params 参数拼接:A1_2C1627291675,2.12,京DTTT222,0.1,1627291740,200002,21840,A1,1627350591 进行 utf-8 编码,得到:
A1_2C1627291675%2C2.12%2C%E4%BA%ACDTTT222%2C0.1%2C1627291740%2C200002%2C21840%2CA1%2C1627350591


最终得到 code:
https://s.bolink.club/unionapi/thirdtopayorder?params=[A1_2C1627291675%2C2.12%2C京DTTT222%2C0.1%2C1627291740%2C200002%2C21840%2CA1%2C1627350591]&sign=542b570d75859a64e3642edfc4285334

备注:params 参数依次为

名称是否必传字段示例空值
订单编号A1_2C1600858624不可空
价格是,单位 元 ,最多两位小数2.12不可(0元直接放行不需扫码)
车牌号京A11111不可空
优惠金额0.010
入场时间是(unix时间戳格式到秒)1600863147不可空
厂商编号200279不可空
车场编号21000不可空
通道编号A1不可空
当前时间是(unix时间戳格式到秒)1600863147不可空, 1 分钟内有效,超时需重新生成 code

推送语音播报

应用场景
车场向指定通道的智慧屏推送语音播报

字段信息:

名称说明类型示例是否必传字段
service_name接口名称Stringtts
data_target上传位置Stringwisdom_screen
channel_id通道编号StringA11
content语音播报内容String请使用微信支付宝扫码查询

示例:
{ "service_name": "tts","data_target": "wisdom_screen","channel_id":"A11","content": "请使用微信支付宝扫码查询"}

推送进场订单

应用场景:车辆进场,车场调用该接口推送车辆详情显示到智慧屏。可在智慧屏入口显示车牌和欢迎光临等文字同时语音播报

字段信息:

名称说明类型示例是否必传字段
service_name接口名称,进场消息Stringin
data_target上传位置Stringwisdom_screen
channel_id通道编号StringA11
car_number车牌号String京ABC9991
in_time入场时间,'yyyy-MM-dd HH:mm:ss'String2021/11/05 21:09:09
text文本显示内容String您好,欢迎光临
tts语音播报内容String您好,欢迎光临

示例:
{ "service_name": "in","data_target": "wisdom_screen","car_number": "京HJ9900","channel_id": "1890","in_time": "2021-11-05 08:08:08","tts": "您好,欢迎光临","text": "您好,欢迎光临"}

同步返回:
字段信息:

名称说明类型示例是否必传字段
service_name接口名称Stringin
state初始化状态,0 失败 1 成功Number1
errmsg返回描述Stringsuccess