一、在小程序后台配置参数。

配置的时候会验证服务器,将一下php代码保存放到服务器上就可以通过验证。

二、服务器上的php代码。

<?phpheader('Content-type:text');
define("TOKEN", "anranwebtoken");$wechatObj = new wechatCallbackapiTest();
if (isset($_GET['echostr'])) {$wechatObj->valid();
}else{$wechatObj->responseMsg();}class wechatCallbackapiTest
{public function valid()  //第一次验证服务器用{$echoStr = $_GET["echostr"];if($this->checkSignature()){header('content-type:text');echo $echoStr;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');   //此处推荐使用file_get_contents('php://input')获取后台post过来的数据if (!empty($postStr) && is_string($postStr)){$postArr = json_decode($postStr,true);if(!empty($postArr['MsgType']) && $postArr['MsgType'] == 'text'){   //用户发送文本消息$fromUsername = $postArr['FromUserName'];   //发送者openid$content = '中文';   //输入想要回复$data=array("touser"=>$fromUsername,"msgtype"=>"text","text"=>array("content"=>$content));$json = json_encode($data,JSON_UNESCAPED_UNICODE);  //PHP版本5.4以上   $this->post2($json);}else if(!empty($postArr['MsgType']) && $postArr['MsgType'] == 'image'){ //用户发送图文消息$fromUsername = $postArr['FromUserName'];   //发送者openid$media_id = '';   //输入想要回复的图片消息的media_id$data=array("touser"=>$fromUsername,"msgtype"=>"image","image"=>array("media_id"=>$media_id));$json = json_encode($data,JSON_UNESCAPED_UNICODE);  $this->post2($json);                }else if($postArr['MsgType'] == 'event' && $postArr['Event']=='user_enter_tempsession'){ //用户进入客服$fromUsername = $postArr['FromUserName'];   //用户第一次进入客服系统$content = '吃了么!';$data=array("touser"=>$fromUsername,"msgtype"=>"text","text"=>array("content"=>$content));$json = json_encode($data,JSON_UNESCAPED_UNICODE);$this->post2($json);  }else{exit('error');}}else{exit;}}//获取access_token/* 调用微信api,获取access_token,有效期7200s*/public function Curl() { $appid="你自己的appid"; $appsecret="小程序的appsecret"; $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$appsecret; //替换成自己的小程序id和secret$result = file_get_contents($url);$res = json_decode($result,true);   //json字符串转数组return $res['access_token']; }//更新access_token存储到数据库并返回数据public function get_token(){include("common.inc.php"); //这个是数据库链接信息,我是将token存储到数据库中。你可以根据自身情况修改$times=time();//当前时间 $sql="select A_ID,A_Token,A_Date from wx_anran_accesstoken order by A_ID desc"; $result = $conn->query($sql);if ($result->num_rows > 0) {$row = $result->fetch_assoc();if($row['A_Date'] < $times){ $token= $this->Curl(); $timestamp=time()+7100;$sqlu="UPDATE `wx_anran_accesstoken` SET `A_Token`='$token',`A_Date`='$timestamp' WHERE A_ID = '$row[A_ID]' "; $conn->query($sqlu); return $token; }else{//没超过,则从数据库取 return $row['A_Token']; }}else{$timestamp=time()+7100; $token= $this->Curl(); $sqlin="insert into wx_anran_accesstoken(A_Token,A_Date) values('$token','$timestamp')"; $conn->query($sqlin); return $token; }  }//向客户端发送回复消息public function post2($data){$access_token = $this->get_token();$url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$access_token;$opts = array('http' =>array('method'  => 'POST','header'  => 'Content-type: text','content' => $data));$context = stream_context_create($opts);$result = file_get_contents($url, false, $context);return $result;}}?>

心得:

1、其中token的保存方式,我采用的是保存到数据库的方式。需要自己去写这一块。

2、我看网上好多文章都是用curl_init()给小程序post消息数据,不知道为什么我试了很多次都不成功,就换了一种方式。

3、基本思路就是,接收用户发送的消息。返回消息给用户端。中间也遇到很多挫折,我也是一点一点的实验,一点点的找错才完善的。大的框架就是这样,后期我是打算在这个基础上接入聊天机器人自动聊天。

微信小程序客服系统 php后台开发代码相关推荐

  1. 微信小程序客服系统怎么使用?小程序客服消息有没有什么限制?

    越来越多的商家开始使用微信小程序,大批客户涌入,就会面临一个头疼的问题,如何和客户即时对话,怎么高效处理客户消息,所以就需要巧妙运用微信小程序客服系统.那么微信小程序客服系统怎么使用呢? 一.使用微信 ...

  2. 微信小程序客服系统手机版五大功能介绍

    很多朋友小程序上线后,客服消息这块一直没得到解决.小程序客服消息只能在PC端回复,是让众多小程序运营商及商家头疼的问题,因为一个再牛逼的客服,也不可能随时随地都抱着电脑,这就导致很多用户的留言不能及时 ...

  3. 微信小程序客服消息(带流程图)

    微信小程序客服消息 功能介绍 调用客服消息接口发送客服消息 填写消息推送配置 网页版客服工具与移动端小程序客服工具 使用说明(后台接入消息服务) 一.在页面使用客服消息 二.后台接入消息服务 三.接收 ...

  4. 怎么授权接入米多客小程序客服系统?

    微信小程序自带的客服系统很难满足使用者的需求,想知道微信小程序客服可以像公众号那样被第三方客服工具接入吗? 答案是可以的. 今天就给大家讲一下如何授权接入米多客小程序客服系统. 一.进入米多客小程序客 ...

  5. 给自己的微信小程序客服回话添加头像!

    在这里教大家如何在微信小程序客服回话里显示用户的头像和昵称. 先给大家看下获取头像与昵称后的实际效果: 第一步,百度搜索芝麻小客服 或者 点击此链接 打开之后点击 一键接入小客服 按钮,按照提示接入小 ...

  6. 免费的微信小程序客服消息自定义关键词自动回复管理系统

    源码名称:微信小程序客服消息自定义关键词回复管理系统 框架版本:laravel5.8,和thinkphp类似的框架,会thinkphp就会laravel. 适用范围:二次开发,独立部署,客服自动回复 ...

  7. 使用微信小程序客服消息上的一些注意事项!小程序客服消息按钮,接入及消息接收

    本文分为四部分,为大家介绍一下,小程序客服消息上的一些解决方案 1.增加小程序客服按钮 2.实现客服会话(绑定客服人员,消息推送配置) 3.如何实现小程序客服智能消息(自动回复等) 4.用手机回复小程 ...

  8. 小程序客服系统可以实现哪些操作?

    微信小程序的发展已经是当下最热门的互联网话题,虽然给企业带来了新机遇,但对小程序的使用不是很懂,以及渴望一款更便捷的工具,提高接待效率!今天给大家分享一下,小程序客服系统的运用,实现的效果. 一.小程 ...

  9. 微信小程序客服消息授权给第三方Udesk

    微信小程序客服消息授权给第三方Udesk 一.必须是微信认证过的微信小程序 登录微信小程序后台-设置-基本设置 链接:https://mp.weixin.qq.com/ 下面有一栏:微信认证(看是否认 ...

最新文章

  1. MySQL闪退问题的解决
  2. Msql sql(优化三)
  3. 从Java视角理解系统结构(一)CPU上下文切换
  4. Android测试框架-uiautomator
  5. 解释型语言与编译型语言的区别
  6. javascript 红宝书笔记之如何使用对象 如何操作数组
  7. 微软借Bletchley项目将云计算信息加入区块链
  8. [JavaWeb-MySQL]多表查询(内连接,外连接,子查询)
  9. 人工智能的前生,今世,和未来
  10. 文本标注工具——doccano
  11. java - 小程序二维码中间的logo占整个二维码的比例计算
  12. Delphi XE10百集视频教程计划
  13. red5流媒体服务器系统,red5流媒体服务器
  14. 通用数据权限的设计思路
  15. 相似的核心玩法之下,谁能在“自走棋”的路上走得更远?
  16. 酒店管理系统——界面设计
  17. java中求矩形面积,java求矩形面积
  18. 微型计算机的一般结构,微型计算机的基本结构
  19. An error has occured.See the log file
  20. 电脑蓝屏代码大全及解决办法合集

热门文章

  1. 桥接、NAT、HOST-ONLY三种网络模式的区别详解
  2. php实现上传,轻松实现php文件上传功能
  3. 层次分析法代码—一致性检验权重计算
  4. 小米11发布会雷军大发感慨:程序员的心酸历程谁人能懂?
  5. XT.COM关于NEFI AMA直播回顾
  6. 东华理工大学南昌校区学计算机,我校学子在2019年第十四届江西省大学生计算机作品赛斩获佳绩...
  7. java版商城 springcloud+springboot+mybatis+redis+uniapp 多商户电子商务源码 直播带货源码 短视频带货源码 社交电商源码 分布式 微服务电子商务源码
  8. 【数据库】聚合查询和联合查询
  9. Symbian OS内存泄漏
  10. python 并行化 图像处理_Python数据预处理:使用Dask和Numba并行化加速