# 测试 **Repository Path**: ekincen/test ## Basic Information - **Project Name**: 测试 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-04-19 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 奇艺果游艺设备接入文档 ### 设备说明文档列表 - [娃娃机](#娃娃机) - [大转盘](#大转盘) - [跳跳球](#跳跳球) - [钥匙机](#钥匙机) - [太空篮球](#太空篮球) - [手办机](#手办机) - [掉球机](#掉球机) ### 设备操作流程 1. [分配房间](#分配房间) 2. 发送指令([Http](#http发送指令) / [Websocket](#websocket发送指令)) 3. 获取结果([Http](#http获取结果) / [Websocket](#websocket获取结果)) 4. [游戏结果推送](#游戏结果推送) ### 分配房间 参考云+物娱娃娃机接入方案 开始游戏 接口 > https://gitee.com/Yun_WuYu/gongkongban#title-2 - 请求URL:{site_url}/api/index.php?app=doll&act=assign - 请求方式:GET - 请求参数: 请求参数 | 类型 | 说明 | 值 --- | --- | --- |---- device_id | string | 设备ID | 如:ScmAJt8zdiXvXYLHowWpAP user_id | int | 用户ID | 如:420808 platform | string | 平台方 | 如:qyguo - 返回结果 ``` 应答包: { "done": true, //Bool true:成功 false:失败 "msg": "操作成功", //结果信息 "retval": { "log_id": 51508, //操作日志id "time": 20, //游戏时间 "device_id": "ScmAJt8zdiXvXYLHowWpAP", //设备id "ws_url": "ws://doll.artqiyi.dev:9502?device_id=ScmAJt8zdiXvXYLHowWpAP&user_id=1&platform=qyguo&ts=&sign=" // 用于websocket方式操作娃娃机 } } ``` ### Http发送指令 参考云+物娱娃娃机接入方案 操作设备 接口 > https://gitee.com/Yun_WuYu/gongkongban#title-3 - 请求URL:{site_url}/api/index.php?app=doll&act=operate - 请求方式:GET - 请求参数: 请求参数 | 类型 | 说明 | 值 --- | --- | --- |---- device_id | string | 设备ID | 如:ScmAJt8zdiXvXYLHowWpAP action | int | 指令参数(见设备说明 “指令参数” 部分的command参数)| 如:1 usre_id | int | 用户ID | 如:420808 platform | string | 平台方 | 如:qyguo - 返回结果 ``` 应答包: { "done": true, //Bool true:成功 false:失败 "msg": "操作成功", // "retval": [] } ``` ### Http获取结果 参考云+物娱娃娃机接入方案 查询操作结果 接口 > https://gitee.com/Yun_WuYu/gongkongban#title-4 - 请求URL:{site_url}/api/index.php?app=doll&act=operate_result - 请求方式:GET - 请求参数: 请求参数 | 类型 | 说明 | 值 --- | --- | --- |---- log_id | int | 操作记录ID | 如:23 platform | string | 平台方 | 如:qyguo - 返回结果 ``` 应答包: { "done": true, //Bool true:成功 false:失败 "msg": "", "retval": { ... //Http结果参数,详见设备文档“Http获取结果”部分 } } ``` ### Websocket发送指令 参考云+物娱娃娃机接入方案 Websocket 娃娃机操作方案 部分 > https://gitee.com/Yun_WuYu/gongkongban#title-19 请求参数 | 类型 | 说明 | 值 --- | --- | --- |---- type| string | 固定 | data | int | 指令参数(见设备说明 “指令参数” 部分的command参数) | 如:1 ``` 发送包: { "type":"Control", "data":1 //Websocket指令参数,详见设备文档“指令参数”部分 } ``` ### Websocket获取结果 游戏结束后,websocket将主动推送当前结果 返回参数 | 类型 | 说明 | 值 --- | --- | --- |---- type | string | 固定 | data | dictionary | 结果参数(见设备说明 “Websocket获取结果” 部分) | 如: {operate_result:1} ``` 应答包: { "type":"Result", "data":{ ... //Websocket结果参数,详见设备文档“Websocket获取结果”部分 } } ``` ### 游戏结果推送 每局游戏结束后奇艺果平台将按log_id的记录推送最终游戏结果至客户平台定义的游戏回调接口,推送结果可参考设备文档“Http获取结果”部分 # 娃娃机 游戏开始可以发送左右上下移动或停止指令;发送抓取命令等待游戏结果。成功抓取娃娃将结果返回商品ID **玩法说明** **指令参数** Command | 说明 --- | --- 1 | 前进 2 | 后退 3 | 左移 4 | 右移 5 | 抓取 55 | 停止 示例: ``` { "type":"Control", "data":1} ``` **Http获取结果** 游戏结束后客户端主动获取结果: ``` 应答包: { "done": true, "msg": "操作成功", "retval":{ 'user_id': 40021, 'device_id': '', 'operate_result': 1, 'platform': 'qyguo', 'add_time': 1423163030, 'consignee': '收件人姓名', 'address': '收件人地址', 'mobile': 13354233321, 'goods_id': 1234, 'send_type': '' } } ``` **Websocket获取结果** 游戏结束后服务器主动推送结果: ``` 应答包: { "type":"Result", "data":{ "opearte_result":1 } } ``` data参数说明: 返回参数 | 类型 | 说明 --- | --- | --- operate_result | int | 1.抓取成功 2.抓取失败 # 大转盘 **玩法说明** 游戏开始后发送开始转动指令,后发送停止转动指令转盘指针停止等待结果,成功后将返回所得积分 **指令参数** Command | 说明 --- | --- 1 | 开始转动 2 | 停止转动 示例: ``` { "type":"Control", "data":1} ``` **Http获取结果** 游戏结束后客户端主动获取结果: ``` 应答包: { "done": true, "msg": "操作成功", "retval":{ 'user_id': 40021, 'device_id': '', 'operate_result': 1, 'platform': 'qyguo', 'add_time': 1423163030, 'consignee': '收件人姓名', 'address': '收件人地址', 'mobile': 13354233321, 'goods_id': 0, 'send_type': '', 'score': 100, 'result_type': 2 } } ``` **Websocket获取结果** 游戏结束后服务器主动推送结果: ``` 应答包: { "type":"Result", "data":{ "opearte_result":1, "result_type":1, "goods_id":0, "score":1, "value":1 } } ``` data参数说明: 返回参数 | 类型 | 说明 --- | --- | --- operate_result | int | 1.中奖 2.未中奖 result_type | int | 中奖结果类型:1.获得奖品 2.获得积分 goods_id| int | 中得奖品时的商品ID score| int | 中得积分时的分数 value| int | 获得奖品时代表礼品编号; 获得积分时代表分数 # 跳跳球 **玩法说明** 游戏开始后发送出球指令,等待机器出球。若球掉进积分洞口,则结束并返回积分结果;若球掉进“欢乐奖”洞口,则返回奖池积分并结束;若球掉进“大奖抽奖”洞口,则可以继续发送“大奖停止”指令,结束后返回积分。每次游戏未获得欢乐奖将累计积分至上限 **指令参数** Command | 说明 --- | --- 1 | 出球 2 | 大奖停止 示例: ``` { "type":"Control", "data":1} ``` **Http获取结果** 游戏结束后客户端主动获取结果: ``` 应答包: { "done": true, "msg": "操作成功", "retval":{ 'user_id': 40021, 'device_id': '', 'operate_result': 1, 'platform': 'qyguo', 'add_time': 1423163030, 'consignee': '收件人姓名', 'address': '收件人地址', 'mobile': 13354233321, 'goods_id': 1234, 'send_type': '' 'score' => 100, 'ball' => 0, 'total_score' => 100, 'result_type' => 1, } } ``` **Websocket获取结果** 游戏结束后服务器主动推送结果: ``` 应答包: { "type":"Result", "data":{ "opearte_result":1, "log_id":134100, "score":2, "ball":0, "total_score":2, "total_ball":0, "result_type":1 } } ``` data参数说明: 返回参数 | 类型 | 说明 --- | --- | --- operate_result | int | 1.中奖 2.未中奖 log_id| int | 操作记录ID score| int | 当次出球操作获得的分数 ball| int | 当次出球操作获得的出球机会 total_score| int | 总获得的分数 result_type| int | 1.获得分数 2.获得奖励球 3.开始大奖游戏 4.获得欢乐奖(分数) # 钥匙机 **玩法说明** 游戏开始可以发送左右上下移动或停止指令,发送过上下移动指令后再发送左右移动指令无效(不能控制左右移动);发送推出指令等待游戏结果。成功推出商品将返回商品ID **指令参数** Command | 说明 --- | --- 2 | 上移 3 | 下移 4 | 左移 5 | 右移 6 | 停止 7 | 推出 示例: ``` { "type":"Control", "data":2} ``` **Http获取结果** 游戏结束后客户端主动获取结果: ``` 应答包: { "done": true, "msg": "操作成功", "retval":{ 'user_id': 40021, 'device_id': '', 'operate_result': 1, 'platform': 'qyguo', 'add_time': 1423163030, 'consignee': '收件人姓名', 'address': '收件人地址', 'mobile': 13354233321, 'goods_id': 1234, 'send_type': '' } } ``` **Websocket获取结果** 游戏结束后服务器主动推送结果: ``` 应答包: { "type":"Result", "data":{ "opearte_result":1 } } ``` data参数说明: 返回参数 | 类型 | 说明 --- | --- | --- operate_result | int | 1.中奖 2.未中奖 # 太空篮球 **玩法说明** 游戏开始后有30秒发球时间,期间可发送“发球”指令,篮球架中球websocket在线推送每次结果,结束后返回所得积分 **指令参数** Command | 说明 --- | --- 1 | 发球 示例: ``` { "type":"Control", "data":1} ``` **Http获取结果** 游戏结束后客户端主动获取结果: ``` 应答包: { "done": true, "msg": "操作成功", "retval":{ 'user_id': 40021, 'device_id': '', 'operate_result': 1, 'platform': 'qyguo', 'add_time': 1423163030, 'consignee': '收件人姓名', 'address': '收件人地址', 'mobile': 13354233321, 'goods_id': 0, 'send_type': '', 'score': 100 } } ``` **Websocket获取结果** 游戏结束后服务器主动推送结果: ``` 应答包: { "type":"Result", "data":{ "opearte_result":1, "score":1 } } ``` data参数说明: 返回参数 | 类型 | 说明 --- | --- | --- operate_result | int | 1.中奖 2.未中奖 score| int | 当前获得的总分数 # 手办机 参考 [娃娃机说明文档](#娃娃机) # 掉球机 **玩法说明** 游戏开始后,天车下爪抓到球,待游戏回应球已准备后,可以发送左右上下移动或停止指令;发送放爪命令等待游戏结果。结果返回未中奖或洞口编号(中奖) **指令参数** Command | 说明 --- | --- 1 | 前移 2 | 后移 3 | 左移 4 | 右移 5 | 放爪 55 | 停止 ``` { "type":"Control", "data":1} ``` **Http获取结果** 游戏结束后客户端主动获取结果: ``` 应答包: { "done": true, "msg": "操作成功", "retval":{ 'user_id': 40021, 'device_id': '', 'operate_result': 1, 'platform': 'qyguo', 'add_time': 1423163030, 'consignee': '收件人姓名', 'address': '收件人地址', 'mobile': 13354233321, 'goods_id': 0, 'send_type': '', 'score': 1, } } ``` **Websocket获取结果** 游戏开始,抓取球成功后主动推送,表示球已准备好: ``` 应答包: { "type":"Status", "data":1, "msg":"ball_ready" } ``` 游戏结束后服务器主动推送结果: ``` 应答包: { "type":"Result", "data":{ "opearte_result":1, "score":1 } } ``` data参数说明: 返回参数 | 类型 | 说明 --- | --- | --- operate_result | int | 1.中奖 2.未中奖 score| int | 所进洞口的编号(1~7),未中奖时返回0