重庆小潘seo博客

当前位置:首页 > 重庆网络营销 > 小潘杂谈 >

小潘杂谈

怎样开启小程序客服功能

时间:2020-09-08 03:00:08 作者:重庆seo小潘 来源:
怎样开启小程序客服功能 开启自定义的小程序的客服功能,需要两步, 第一步:在自己的微信平台开通消息推送的功能 第二步:完成自己的后台 前提:你的服务器可以被微信访问。 流程:用户出发某个事件后,向微信服务器发送数据包,如果你开启消息推送服务(第

怎样开启小程序客服功能

怎样开启小程序客服功能

开启自定义的小程序的客服功能,需要两步,

第一步:在自己的微信平台开通消息推送的功能

第二步:完成自己的后台

前提:你的服务器可以被微信访问。

流程:用户出发某个事件后,向微信服务器发送数据包,如果你开启消息推送服务(第一步),那么微信服务器会进行数据的处理转发,具体的格式是xml还是json取决于你在微信后台的选择,我这里选择的json,微信通过主动调用你的接口将数据包返回给你,如果你想向用户响应某个信息,需要某个接口向微信服务器发送你的响应数据包,里面包含客服的openid.具体的详情看代码。<?phpheader('Content-type:text');define("TOKEN", "mytoken");class Mini extends Controller{private $appid = '';private $secret = '';public function check(){//校验服务器地址URLif (isset($_GET['echostr'])) {$this->valid();}else{$this->responseMsg();}}public function valid(){$echoStr = $_GET["echostr"];if($this->checkSignature()){header('content-type:text');echo $echoStr;exit;}else{echo $echoStr.'+++'.TOKEN;exit;}}private function checkSignature(){$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];$token = TOKEN;$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr, SORT_STRING);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;}}public function responseMsg(){$postStr = file_get_contents('php://input');//因为我的环境是php7if (!empty($postStr) && is_string($postStr)){$postArr = json_decode($postStr,true);if(!empty($postArr['MsgType']) && $postArr['MsgType'] == 'text'){//文本消息$fromUsername = $postArr['FromUserName'];//发送者openid$toUserName = $postArr['ToUserName'];//小程序id$textTpl = array("ToUserName"=>$fromUsername,"FromUserName"=>$toUserName,"CreateTime"=>time(),"MsgType"=>"transfer_customer_service",);exit(json_encode($textTpl));}elseif(!empty($postArr['MsgType']) && $postArr['MsgType'] == 'image'){ //图文消息$fromUsername = $postArr['FromUserName'];//发送者openid$toUserName = $postArr['ToUserName'];//小程序id$textTpl = array("ToUserName"=>$fromUsername,"FromUserName"=>$toUserName,"CreateTime"=>time(),"MsgType"=>"transfer_customer_service",);exit(json_encode($textTpl));}elseif($postArr['MsgType'] == 'event' && $postArr['Event']=='user_enter_tempsession'){$fromUsername = $postArr['FromUserName'];          $data = array(           "touser"=>$fromUsername,           "msgtype"=>"link",            "link"=>[            "title"=>'this is title',            "description"=> "Is Really A Happy Day",            "url":=>"URL",            "thumb_url"=>"THUMB_URL"            ]           );          $json = json_encode($data,JSON_UNESCAPED_UNICODE);$access_token = $this->get_accessToken();$url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$access_token;//将数据返给微信服务器进行转发。$this->curl_post($url,$json);}else{exit('aaa');}}else{echo "";exit;}}public function get_accessToken(){if(cache('access_token')){return cache('access_token');}/* 不在有效期,重新发送请求,获取access_token */else{$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->appid}&secret={$this->secret}";$result = curl_get_https($url);$res = json_decode($result,true);//json字符串转数组if($res){cache('access_token',$res['access_token'],7100);return cache('access_token');}else{return 'api return error';}}}/*** @Authorcallmelx* @DateTime 2018-10-06* @return[type][description]*/public function curl_post($url,$data=''){$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);if (!empty($data)){curl_setopt($curl, CURLOPT_POSTFIELDS,$data);}curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//curl_setopt($curl, CURLOPT_HTTPHEADER, $headers );$output = curl_exec($curl);if (curl_errno($curl)) {echo 'Errno'.curl_error($curl);//捕抓异常}curl_close($curl);if($output == 0){echo 'success';exit;}}}有几个坑需要注意一下,如果你的token验证总是失败:

1.建议你看一下自己server服务器的token与现在的token是否相同。

2.如果你发现自己的代码绝对没有问题,token也绝对没有问题的话,而且还是报错,那么我建议检查一下自己服务器的文件的权限问题了,如果你是tp框架,检查一下啊自己的runtime是否给了777,如果你是给755的话可能还是不会起作用。

推荐学习:小程序开发以上就是怎样开启小程序客服功能的详细内容,更多请关注小潘博客其它相关文章!