# 69酷站PHP客服在线咨询交流系统 **Repository Path**: flywit/kz_kefu ## Basic Information - **Project Name**: 69酷站PHP客服在线咨询交流系统 - **Description**: 酷站PHP客服适合个人,中小规模工作室以及大小企业使用,快速提升客户服务效率和服务体验,客服系统支持多客服、排队、随机接待、发表情、发图片、发文件、历史消息、 离线消息、消息提醒、系统消息、在线留言、服务评价等功能,支持PC浏览器和H5移动端,只需要插入一段html片段即可快速接入现有系统,更美观的用户界面设计.程序设计简单,操作清晰流畅所有页面自动适应电脑以及手机,系统拥有较多插件可进行安装使用 - **Primary Language**: PHP - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://www.69kz.com/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2022-12-21 - **Last Updated**: 2022-12-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 69酷站PHP客服在线咨询交流系统 #### 介绍 酷站客服PHP在线咨询交流系统使用协议 感谢您选择酷站客服PHP在线咨询交流系统(简称:酷站PHP客服),酷站PHP客服是国内最稳定、最强大、最先进的客服咨询站管理平台解决方案之一,酷站PHP客服基于 PHP + MySQL的技术,酷站PHP客服框架使用ThinkPHP6/Mysql数据库基于workerman插件开发而成,项目安装请参考`ThinkPHP`官方文档及下面的服务环境说明。酷站PHP客服适合个人,中小规模工作室以及大小企业使用的酷站PHP客服在线咨询交流系统,降低个人、工作室、企业开发成本,快速提升客户服务效率和服务体验,客服系统支持多客服、排队、随机接待、发表情、发图片、发文件、历史消息、 离线消息、消息提醒、系统消息、在线留言、服务评价等功能,支持PC浏览器和H5移动端,只需要插入一段html片段即可快速接入现有系统,支持与现有系统用户对接,程序小巧使用简单,一建安装,更美观的用户界面设计.程序设计简单,操作清晰流畅所有页面自动适应电脑以及手机,系统拥有较多插件可进行安装使用,可开启或停用插件操作简单方便。 #### 软件架构 酷站PHP客服框架使用ThinkPHP6/Mysql数据库基于workerman插件开发而成,项目安装请参考`ThinkPHP`官方文档及下面的服务环境说明 酷站客服PHP在线咨询交流系统以通过中华人民共和国国家版权局下发的计算机软件著作权登记证书:2021SR0201207 官方网站 https://www.69kz.com #### 安装教程 1.在宝塔创建站点,将源码导入站点中 2.配置站点伪静态 Thinkphp 3.网站目录选择 public 4.PHP推荐使用7.2 或者 7.3 5.需要删除PHP禁用函数里所有带 pcntl_ 6.然后运行网站安装数据库 域名/install 7.进行安装数据库 8.安装完成以后 进入数据库执行命令 `cd /www/wwwroot/网站地址/service/Gateway/` 执行 `php start.php start -d` 握手成功 9.酷站客服系统使用HTTPS(SSL)要如何设置 我们要去宝塔修改您的网站配置文件 ``` location /wss { proxy_pass http://您的域名:8282; #代理到上面的地址去,格式:http://域名:端口号, proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_connect_timeout 5s; #配置点1 proxy_read_timeout 60000s; #配置点2,如果没效,可以考虑这个时间配置长一点 proxy_send_timeout 60000s; #配置点3 } ``` ![输入图片说明](https://foruda.gitee.com/images/1663890711902952789/da8d65f7_8204998.jpeg "01.jpg") #### 插件开发 内置函数 获取插件列表 ``` function get_addons_list() {} ``` 插件显示内容里生成访问插件的url @param $url @param array $param @param bool|string $suffix 生成的URL后缀 @param bool|string $domain 域名 @return bool|string ``` function addons_url($url = '', $param = [], $suffix = true, $domain = false) {} ``` 获取插件类的类名 @param string $name 插件名 @param string $type 返回命名空间类型 @param string $class 当前类名 @return string ``` function get_addons_class($name, $type = 'hook', $class = null) {} ``` 获取插件类的配置值值 @param string $name 插件名 @return array ``` function get_addons_config($name) {} ``` 获取插件的单例 @param string $name 插件名 @return mixed|null ``` function get_addons_instance($name) {} ``` 设置基础配置信息 @param string $name 插件名 @param array $array 配置数据 @return boolean @throws Exception ``` function set_addons_info($name, $array) {} ``` 读取插件的基础信息 @param string $name 插件名 @return array ``` function get_addons_info($name) {} ``` 写入配置文件 @param string $name 插件名 @param array $array 配置数据 @return boolean @throws Exception ``` function set_addons_fullconfig($name, $array) {} ``` 插件目录下的config.php需要返回一个多维数组,例如: ``` 'tablist', //配置标题 'title' => 'TAB', //配置类型,支持string/text/number/array/select/selects/image/file/checkbox/radio/bool 'type' => 'array', //配置select/checkbox/radio/bool时显示的列表项 'content' => [], //配置值 'value' => [ 'a1' => '我是a1的值', 'a2' => '我是a2的值', 'a3' => '我是a3的值', 'a4' => '我是a4的值', 'a5' => '我是a5的值', 'a6' => '我是a6的值', ], //配置验证规则,更之规则可参考nice-validator文件 'rule' => 'required', 'rule_msg'=> '不能为空' ], ]; ``` 以下是实现的效果图 ![输入图片说明](https://foruda.gitee.com/images/1663890930084248626/cb6095d9_8204998.png "02.png") 控制器 基本和Thinkphp6的控制器基本相同 唯一不同的是需要导入继承 addons 的基类 `use think\addons\Controller;` 还有加载html需要用 return $this->fetch(); 传值 `return $this->assign();` 控制器的定义 ``` fetch(); } } ``` 我们可以通过 http://www.abc.com/addons/test来访问我们插件的前台页面 默认 index 控制器 index 方法 模型 和Thinkphp6相同 [点击前往查看](https://www.kancloud.cn/manual/thinkphp6_0/1037579) 视图 和Thinkphp6基本相同 可前去查看 注意: 加载html需要用 return $this->fetch(); 不能使用View静态方法 ``` 传值 return $this->assign(); ``` | 标签位 | 描述 | 类型说明 | |---------------|---------------|-------| | AppInit | 应用初始化标签位 | 系统事件 | | HttpRun | 应用开始标签位 | 系统事件 | | HttpEnd | 应用结束标签位 | 系统事件 | | LogWrite | 日志write方法标签位 | 系统事件 | | RouteLoaded | 路由加载完成 | 系统事件 | | before_select | select查询前回调 | 数据库事件 | | before_find | find查询前回调 | 数据库事件 | | after_insert | insert操作成功后回调 | 数据库事件 | | after_update | update操作成功后回调 | 数据库事件 | | after_delete | delete操作成功后回调 | 数据库事件 | | after_read | 查询后 | 模型事件 | | before_insert | 新增前 | 模型事件 | | after_insert | 新增后 | 模型事件 | | before_update | 更新前 | 模型事件 | | after_update | 更新后 | 模型事件 | | before_write | 写入前 | 模型事件 | | after_write | 写入后 | 模型事件 | | before_delete | 删除前 | 模型事件 | | after_delete | 删除后 | 模型事件 | | chat_right_tabs | 前台右侧tabs位 | tabs事件 | | upload_storage_location | 上传时 | 上传事件 | 消息推送 接口状态: 已完成 接口URL: `https://www.69kz.com/api.php/pmsg` 请求方式: `POST` Content-Type:` multipart/form-data` body参数及说明 请求参数 | 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 | |----------|-----|--------|------|-----------------------| | realname | | String | 是 | 授权域名【例如:www.69kz.com】 | 响应示例 成功响应示例 ``` { "code": 200, "msg": "推送成功", "data": [] } ``` 自动识别支付插件 自动识别支付插件文档 使用须知: 1. 所有支付类插件如需加入自动识别支付功能,必须实现下面的钩子,但不一定必须使用本接口 2.实现pay_addons钩子用于使插件被自动识别功能识别 3.建议插件在支付回调地址中填写插件内的地址,以便支付完成后执行回调与验签工作 3.建议插件在添加进自己的订单列表中时,写入调起支付插件的插件名与回调钩子,以便完成支付回调后继续完成业务回调 自动识别流程: 1.支付插件 按要求实现pay_addons钩子(文末举例) 2.业务插件 在打开设置页面时,若需使用自动识别支付,应定义一个设置name为pay_type,content为空数组,type为checkbo 3.业务插件 如需限定使用插件的返回类型,应在插件内设置公用变量$use_pay_result,如需设置只使用二维码支付插件,例: ![输入图片说明](https://foruda.gitee.com/images/1663891646688367059/306dd2dd_8204998.png "03.png") 现有的类型为qr(二维码),url(跳转链接) 4.若不设置use_pay_result变量,则为全部支付结果都能接受,若变量为空数组,则为所有类型都不接受 5.具体参数应与 支付插件 pay_addons实现中的pay_result参数一致 下单流程如下: 1,业务插件 在下单页面使用辅助函数 pay_addons()获取支付插件信息,插件信息如下 ![输入图片说明](https://foruda.gitee.com/images/1663891674461380651/da8f9b93_8204998.png "04.png") 2.业务插件 发起统一下单请求,调用 goalong_pay($pay_type,$data)支付函数 $paytyoe即为"alipayface-0",$data为下单参数 3.业务插件 调用支付函数时,应传入相应支付参数,以及addons(业务插件名),addons_notify(业务插件中处理回调的钩子名) 4.支付插件 发起统一下单,并返回结果。若下单成功,支付插件 应返回结果类型(应同pay_addons中的pay_result) 5.业务插件 收到下单结果后,继续自己的业务流程 回调流程如下: 1.支付插件 在发起下单时,应填写自己插件的地址作为回调地址 2.支付插件 在收到回调后,应执行验签与自己的回调流程 3.支付插件 在回调验证完成后,根据调起支付时传入的业务插件名addons与业务插件回调钩子addons_notify,使用业务插件的回调钩子 4.支付插件 在使用业务插件回调钩子时,应统一参数如下,此处以支付宝回调为例 ![输入图片说明](https://foruda.gitee.com/images/1663891715050264585/f5b848fa_8204998.png "05.png") 5.业务插件收到回调后,执行自己的业务逻辑 支付插件自动识别钩子: 以下为pay_addons()示例 自动识别短信插件 使用短信类插件接口须知: 1.所有短信类插件如需加入自动识别短信功能,必须实现下面的钩子,但不必使用本接口 2.实现sms_addons用于使插件被自动识别功能识别 短信插件信息返回钩子: ``` pudlic function sms_addons(): array; ``` ![输入图片说明](https://foruda.gitee.com/images/1663891775262038099/162fc0d7_8204998.png "07.png") #### 参与贡献 1. [定义](https://www.kancloud.cn/manual/thinkphp6_0/1037580) 2. [模型字段](https://www.kancloud.cn/manual/thinkphp6_0/1037581) 3. [新增](https://www.kancloud.cn/manual/thinkphp6_0/1037582) 4. [更新](https://www.kancloud.cn/manual/thinkphp6_0/1037583) 5. [删除](https://www.kancloud.cn/manual/thinkphp6_0/1037584) 6. [查询](https://www.kancloud.cn/manual/thinkphp6_0/1037585) 7. [查询范围](https://www.kancloud.cn/manual/thinkphp6_0/1037586) 8. [JSON字段](https://www.kancloud.cn/manual/thinkphp6_0/1037587) 9. [获取器](https://www.kancloud.cn/manual/thinkphp6_0/1037588) 10. [修改器](https://www.kancloud.cn/manual/thinkphp6_0/1037589) 11. [搜索器](https://www.kancloud.cn/manual/thinkphp6_0/1037590/) 12. [数据集](https://www.kancloud.cn/manual/thinkphp6_0/1037591) 13. [自动时间戳](https://www.kancloud.cn/manual/thinkphp6_0/1037592) 14. [只读字段](https://www.kancloud.cn/manual/thinkphp6_0/1037593) 15. [软删除](https://www.kancloud.cn/manual/thinkphp6_0/1037594) 16. [类型转换](https://www.kancloud.cn/manual/thinkphp6_0/1037595) 17. [模型输出](https://www.kancloud.cn/manual/thinkphp6_0/1037597) 18. [模型事件](https://www.kancloud.cn/manual/thinkphp6_0/1037598) 19. [模型关联](https://www.kancloud.cn/manual/thinkphp6_0/1037599) #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)