微信小程序的在线客服与消息推送


如果你想在你的小程序中,加入客服功能,那么相当的简单。


添加客服会话入口

小程序提供了,contact-button组件,客服会话按钮,用于在页面上显示一个客服会话按钮,用户点击该按钮后会进入客服会话。

文档:客服会话 - 组件 - 小程序


在线客服功能

只需要加入了客服会话入口,和在小程序后台客服消息中添加客服人员。那么就可以使用网页版客服工具,实现在线客服了。无需其他任何配置。使用指南:网页版客服工具 - 小程序

什么服务器消息推送什么的都不需要,就完成了。


消息推送

要实现消息推送也蛮简单的。首先需要在小程序后台 - 设置 - 开发设置中去配置消息推送的信息。token,url,数据格式等。

然后照着文档做 : 微信小程序客服消息API文档

这里我遇到的问题是初始验证通过后不懂做什么了。

其实是这样的,验证通过后,输出$_GET["echostr"],接着就是接收微信post传过来的数据。

初始验证代码见文档中,这里我封装在check方法中 , 消息推送的数据格式我选的json,所以使用file_get_contents("php://input");获取数据。

TIM图片20170718094810


AccessToken的缓存

我使用的是文件缓存,简单方便,不多余依赖。看代码应该也比较好懂,就是除了缓存token之外,再缓存创建的时间,因为accessToken的有效期是2小时(7200s)。

TIM图片20170718095338


最后分享一个 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。。


php wechat


上一篇:blog由http改为https总结

移动端点击click事件没反应:下一篇