1. 概述
旺POS平台专注于为开发者提供业务接入
的能力,目前已经支持的接入方式有业务APP接入
和服务接入
。本文档是作为 旺POS业务接入指南的补充, 重点介绍服务接入
相关过程。
- 1.1 业务APP接入
业务APP接入
需要开发者自己开发应用APP,并对接相应的服务端,最终在旺商市场上架,POS设备安装相应业务APP后,既可在POS上完成BP的业务场景支持。
- 1.2 服务接入
服务接入
是相对于业务APP接入
的轻量级接入解决方案, 此方案不需要BP上架APP,直接在服务端对接即可完成接入,降低了BP的接入门槛。旺POS平台为业务方(BP)提供了一些基础的服务能力,现在已经开 放的有消息
,收银
,订单
等基础服务。业务方可以在 旺POS BP平台 中选择开通此类服务,业务方就具备了调用相应基础服务的能力。 此文档重点介绍服务接入
的相关过程。
- 1.3 服务接入流程
基本流程如下:
- 1.4 服务调用授权
BP针对设备发起服务调用
操作后,需要设备授权接受调用才能继续操作。目前提供两种方式支撑这一操作。
1.4.1 设备主动授权
这种模式适用于旺POS
设备,在业务方首次
发起服务调用
,设备上会有授权确认弹框
,操作人员点击确认授权
按钮,系统会记录这一授权动作,以后的调用将不再影响。
1.4.2 通过html5页面授权
这种模式适用于旺立方
设备,需要在BP平台中的菜单:我的服务-->详情
中设置好授权页面
,设备使用者需要扫描设备二维码,选择具体服务接入,这一过程会跳转到上一步设置好的页面,完成授权即可。
2. 消息服务
消息服务
适用于消息推送
这一业务场景,当业务方有消息需要推送的POS设备上时,可以通过开通消息服务,将业务消息推送到POS设备上。
旺POS设备接收消息的载体主要有三个:
- 业务APP
- 消息通知栏
- 消息服务APP
此处,消息服务
专为载体为消息服务APP
的场景做支撑。其他两个载体其实是业务接入
方式的消息推送。
这里重点介绍消息服务
的接入过程,其他服务的接入都类似,请参考此章节内容。
2.1 开通服务
登录BP平台,进入菜单路径:服务管理 --> 服务列表
,如图:
选择标红列详情
,进入详情页,点击开通
按钮即可,效果如图:
以上,即已开通消息服务
.
2.2 服务端对接
进入菜单路径服务管理--> 我的服务
,如图:
选择API对接配置
,进入对接配置页面:
填写好对接的URL和token,完成对接测试。
注意,此处对接机制遵守旺POS平台业务接入AccessToken机制 。
2.3 发起服务调用
发起服务调用
的本质是将业务方自己的业务数据通过旺POS提供的通道发送到旺POS设备上。
旺POS提供的服务调用接口遵循旺POS平台业务接入AccessToken机制访问控制协议,也采用access_token加上https来实现访问的权限和数据安全。
服务调用接口的相关说明如下:
- url
http://pos.weipass.cn/WeiposAcc/service/PushDataV2
- 请求方式
POST
- 参数
// 基本参数 access_token=ACCESS_TOKEN, //访问旺POS接口的唯一身份id device_en=xxxxx, //目标设备en号 msg_type=service_invoke, //常量,标识此次接口调用类型为服务调用 data={a:1,b:2 ...} //业务数据,为JSON结构的字符串 // 平台对业务参数data节点有着严格的格式定义,以下是各种格式的说明及示例 ### 1. 收款成功消息 device_en=b7a0bc2b, msg_type=service_invoke, access_token=5563daa2d548093131c3cfe8, data={ "template_code":"CASHSUCCESS002", //常量,标识此消息格式内容 "key1":"星港粥道", //店铺名称 "key2":"b7a0bc2b", //设备EN号 "key3":"微信支付", //收款方式 "key4":"吴谦", //付款人信息 "key5":"yee", //收款人员 "key6":1432607395185, //交易号 "key7":"¥1080", //金额 "key8":"2015-05-26 10:29:55", //交易时间 "key9":"一些附加信息" //附加数据(可选填) } ### 2. 卡券核销成功消息 device_en=b7a0bc2b, msg_type=service_invoke, access_token=5563df3ed5480937265219fa, data= { "template_code":"CARDSUCCESS003", //常量,标识此消息格式内容 "key1":"罗莎蛋糕", //商户名称 "key2":"b7a0bc2b", //设备EN号 "key3":"美团", //卡券发行商 "key4":"50元代金券,券码:12344343232,有效期:2014-12-31", //权益内容 "key5":"2015-05-26 10:49:34", //核销时间 "key6":"yee", //核销人员 "key7":"一些附加信息" //附加数据(可选填) } ### 3. 点菜成功消息 device_en=b7a0bc2b, msg_type=service_invoke, access_token=5563dfadd548093726521ba4, data= { "template_code":"MSG100004", "key1":"东北饺子馆", //店铺名称 "key2":"12号桌", //桌号 "key3":"1432608685519", //订单编号 "key4":"2015-02-04 13:30", //下单时间 "content":[ //订单内容总节点 { "name":"name_0", //菜品 "number":"0", //数量 "price":"0.0" //价格 }, { "name":"name_1", "number":"1", "price":"1.5" }, { "name":"name_2", "number":"2", "price":"3.0" } ], "totalPrice":"100", //总价 "discount":"满40减2", // 折扣信息 "discountPrice":"91.00" // 折后价格 }
2.4 异步接受服务调用响应结果
3. 收银服务
4. 订单服务
订单服务
适用于远程提交订单
这一业务场景。当用户从网站,微信等入口提交订单后,旺POS平台支持BP通过此服务实时将订单信息推送至旺POS设备。
4.1 开通服务
参考消息服务2.1
4.2 服务端对接
参考消息服务2.2
4.3 发起服务调用
订单服务调用
的基础机制参考消息服务
,以下是订单服务调用接口的相关说明:
- url
http://pos.weipass.cn/WeiposAcc/service/PushDataV2
- 请求方式
POST
- 参数
// 基本参数 access_token=ACCESS_TOKEN, //访问旺POS接口的唯一身份id device_en=xxxxx, //目标设备en号 msg_type=service_invoke, //常量,标识此次接口调用类型为服务调用 data={a:1,b:2 ...} //业务数据,为JSON结构的字符串 // 平台对业务参数data节点有着严格的格式定义,以下是各种格式的说明及示例 ### 1. 标准打印格式订单 device_en=b7a0bc2b, msg_type=service_invoke, access_token=55641270d54809390bcad724, data={ "template_code": "MSG100006", //常量,标识此消息类型 "out_order_no": "052600004", //外部订单号 "msg_content": { //消息内容结构体,显示在旺POS设备的标题栏 "title": "美团外卖订单" //消息标题 ,"voice":"您有未处理订单" //消息语音 ,"desc":"未处理美团外卖订单" // 消息描述 ,"desc_detail":"订单编号:123456789\n桌号:3号桌\n订单时间:2015-5-26 12:30" //消息内容详情 }, "show_content": "html code", //显示内容,HTML片段 "print_mode": 1, //打印模式:1-标准打印, 2-旺POS标签打印 "print_content": "y82yzbXY1rc6IM37vqlTT0hPCsGqz7W157uwOiAxODY4NHh4eHh4eAogIMGqz7XIyzog1cXI/QoK\nz8K1pcqxvOQ6IDIwMTUtMDUtMjEgMTA6Mjg6MzYKy82yzcqxvOQ6ILDr0KHKsdLUxNoKoaqhqqGq\noaqhqqGqoaqhqqGqoaqhqqGqoaqhqqGqoaoKINChvMYgICAgyv3BvyAgICAgw/uzxgogNy4wMCAg\nICAgMbfdICAgICDO97rsysG4x8Lrt7kKIDguMDAgICAgIDG33SAgICAgz+O4ycjiy7+4x8Lrt7kK\nMTAuMDAgICAgIDG33SAgICAgwunAscWjyOK4x8Lrt7kKoaqhqqGqoaqhqqGqoaqhqqGqoaqhqqGq\noaqhqqGqoaoKtqm1pb3wtu46IDI1LjAw1KoK08W73civICA6IC0yLjAw1KoKyrW8ytanuLY6IDIz\nLjAw1Ko=", //标准打印内容,这是对原始内容进行Base64编码(GBK)后的内容 "command": [1,2] //指令集合, 1-接单打印, 2-拒绝接单 } ### 2. 旺POS标签格式订单 device_en=da8618af, msg_type=service_invoke, access_token=55642782d54809390bcaf660, data={ "template_code": "MSG100006", //常量,标识此消息类型 "out_order_no": "052600004", //外部订单号 "msg_content": { //消息内容结构体,显示在旺POS设备的标题栏 "title": "美团外卖订单" //消息标题 ,"voice":"您有未处理订单" //消息语音 ,"desc":"未处理美团外卖订单" // 消息描述 ,"desc_detail":"订单编号:123456789\n桌号:3号桌\n订单时间:2015-5-26 12:30" //消息内容详情 }, "show_content": "html code", //显示内容,HTML片段 "print_mode": 2, //打印模式:1-标准打印, 2-旺POS标签打印 "print_content": [ //旺POS标签打印内容 { "content":"点菜单" //本行内容 ,"gravity":"CENTER", //显示位置 "font_style":"BOLD" //字体设置 }, {"content":"分店名称:东北饺子馆"}, {"content":"桌号:12号桌"}, {"content":"订单编号:1234567890"}, {"content":"下单时间:2015-05-22 08:30"}, {"content":"小计 数量 名称"}, {"content":"¥12.0 *2 青椒炒肉"}, {"content":"¥10.0 *1 麻婆豆腐"}, {"content":"¥14.0 *2 土豆丝肉泥"}, {"content":"合计:62元"}, {"content":"折扣:满40减2"}, {"content":"折扣后合计60元"} ], "command": [1,2] //指令集合, 1-接单打印, 2-拒绝接单 }
订单服务的重点数据格式罗列如下:
- msg_content
msg_content 是指订单到达设备时的
提醒消息内容
数据示例:
{ "title": "点菜成功", "voice": "您有未处理点菜成功消息", "desc": "未处理点菜成功消息", "desc_detail": "分店名称:东北饺子馆\n桌号:12号桌\n订单编号:1234567890\n订单时间:2015-05-22 08:30\n\n\n菜品信息:\nname_0 *0 ¥0.0\nname_1 *1 ¥1.5\nname_2 *2 ¥3.0\n\n\n\n合计:¥100\n折扣:\n合计:¥满40减2\n折扣后合计:¥91.0" }
显示效果为:
- print_mode & print_content
打印模式,旺POS定义了两种打印模式,分别是:
- print_mode=1,
标准打印格式,业务方可以自己拼凑打印内容,设备将以行
为单位分别打印。
- print_mode=2,
旺POS标签打印格式,旺POS定义了一套轻量级打印标签,业务方可以使用这些标签实现较为复杂的打印效果
标签的定义如下:
参数 | 是否必须 | 说明 | 默认值 | |
---|---|---|---|---|
content | 是 | 打印的内容 | ||
font_family | 否 | 打印字体,目前支持:SONG :宋体; |
SONG |
|
font_size | 否 | 打印的字体大小,目前支持:SMALL :16x16大小; MEDIUM :24x24大小; LARGE :32x32大小; 一行的宽度为384 |
MEDIUM |
|
font_style | 否 | 打印的字体样式,目前只支持:NORMAL :正常; BOLD : 加粗 |
NORMAL |
|
gravity | 否 | 打印对齐方式,目前只支持:LEFT :居左对齐;CENTER :居中对齐;RIGHT :居右对齐 |
LEFT |
|
qr_or_one | 否 | 是否为二维码或者条码,目前只支持:ONECODE :打印条码;QRCODE :打印二维码;不填写该内容表示打印标准内容 |
ONECODE |
标签打印数据示例:
[ { "content":"[点菜单]\n", "gravity":"CENTER", "font_style":"BOLD", "font_size":"LARGE" }, { "content":"1234567890", "gravity":"CENTER", "qr_or_one":"ONECODE" }, { "content":"1234567890\n\n", "gravity":"CENTER" }, { "content":"分店名称:东北饺子馆\n桌号:12号桌\n订单编号:1234567890\n下单时间:2015-05-22 08:30\n\n" }, { "content":"名称 数量 小计\nname_0 *0 ¥0.0\n很好吃的麻婆豆腐\n *1 ¥1.5\nname_2 *2 ¥3.0\n\n" }, { "content":"合计:¥100\n折扣:满40减2\n折扣后合计:¥96.0\n\n\n\n\n\n\n" } ]
显示效果为:
- show_content
show_content表示显示内容。旺POS限制此节点内容为
html代码片段
,用户可以自定义标准的HTML代码片段进行展示。
显示数据示例:
<div class="voucher_main"> <P><span>分店名称:</span>东北饺子馆</P> <P><span>桌号:</span>12号桌</P> <P><span>订单编号:</span>1234567890</P> <P><span>下单时间:</span>2015-05-22 08:30</P> <table cellpadding="0" cellspacing="0"> <tbody> <tr class="baby_details_title"> <td>¥0.0</td> <td>*0</td> <td>name_0</td> </tr> <tr class="baby_details_title"> <td>¥1.5</td> <td>*1</td> <td>name_1</td> </tr> <tr class="baby_details_title"> <td>¥3.0</td> <td>*2</td> <td>name_2</td> </tr> </tbody> </table> <P><span>合计:</span>¥62</P> <P><span>折扣:</span>满40减2</P> <P><span>折扣后合计:</span>¥60.0</P> </div>
显示效果为: