如果你想在你的小程序中,加入客服功能,那么相当的简单。
添加客服会话入口
小程序提供了,contact-button组件,客服会话按钮,用于在页面上显示一个客服会话按钮,用户点击该按钮后会进入客服会话。
在线客服功能
只需要加入了客服会话入口,和在小程序后台客服消息中添加客服人员。那么就可以使用网页版客服工具,实现在线客服了。无需其他任何配置。使用指南:网页版客服工具 - 小程序
什么服务器消息推送什么的都不需要,就完成了。
消息推送
要实现消息推送也蛮简单的。首先需要在小程序后台 - 设置 - 开发设置中去配置消息推送的信息。token,url,数据格式等。
然后照着文档做 : 微信小程序客服消息API文档
这里我遇到的问题是初始验证通过后不懂做什么了。
其实是这样的,验证通过后,输出$_GET["echostr"],接着就是接收微信post传过来的数据。
初始验证代码见文档中,这里我封装在check方法中 , 消息推送的数据格式我选的json,所以使用file_get_contents("php://input");获取数据。
AccessToken的缓存
我使用的是文件缓存,简单方便,不多余依赖。看代码应该也比较好懂,就是除了缓存token之外,再缓存创建的时间,因为accessToken的有效期是2小时(7200s)。
最后分享一个 curl 带上 post 数据的方法
一直想封装一个curl类,有感觉好麻烦啊。
public function curl_post($url,$post_data){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$res = curl_exec($ch);
if(!$res){
$this->record('发送消息失败:'.curl_error($ch));
}
curl_close($ch);
}
tip: 关于回复的中文消息乱码的问题,注意封装进数组的时候urlencode一下,然后再转为json格式之后,再urldecode。。