小程序客服 后台代码php,微信小程序客服系统 php后台开发代码

小程序客服 后台代码php,微信小程序客服系统 php后台开发代码一 在小程序后台配置参数 配置的时候会验证服务器 将一下 php 代码保存放到服务器上就可以通过验证 二 服务器上的 php 代码 valid else wechatObj gt responseMsg classwechatC publicfuncti 第一次验证服务器用 echoStr GET echostr

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

0d20afa7ead7850fd0f3e56171d26d70.png

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

二、服务器上的php代码。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227805.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午8:29
下一篇 2026年3月16日 下午8:30


相关推荐

  • 国内最著名的公用CDN BootCDN停止服务

    国内最著名的公用CDN BootCDN停止服务今天打开博客的时候 发现网站所有引用 bootCDN 的资源全部无法加载 并且打开 bootCDN 搜索的资源地址都指向了 cdnjs cloudflare com 难道是遭受

    2025年9月12日
    7
  • 每天一道算法_3_487-3279_对电话号码格式化统计批处理

    早上弄了一道求高精度幂的算法,偷懒用了内部类,总觉得过意不去,所以今天重新做了一道算法题,做完心里舒服好多。题目如下: Description企业喜欢用容易被记住的电话号码。让电话号码容易被记住的一个办法是将它写成一个容易记住的单词或者短语。例如,你需要给滑铁卢大学打电话时,可以拨打TUT-GLOP。有时,只将电话号码中部分数字拼写成单词。当你晚上回到酒店,可以通过拨打310-GI

    2022年3月10日
    364
  • Grok AI PHP 客户端库 Grok

    Grok AI PHP 客户端库 Grok

    2026年3月15日
    2
  • js网页打印

    js网页打印Javascript 网页打印大全普通打印 整页打 nbsp nbsp nbsp nbsp nbsp 打印网页内部分内容 自定义 nbsp nbsp nbsp nbsp nbsp nbsp nbsp 打印去掉 添加页眉页脚 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 使用外部控件 方法实现多功能打印 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 打印背景以上为代码控制设置 页面设置 实现打印参数设置 Window 系统图文版 一 普通打印 整页打 这个不用多说 直接用 nbsp 引用 window print

    2026年3月26日
    2
  • 数字图像处理与Python实现-颜色空间转换-RGB颜色空间与YIQ颜色空间转换

    数字图像处理与Python实现-颜色空间转换-RGB颜色空间与YIQ颜色空间转换RGB 颜色空间与 YIQ 颜色空间转换 RGB 颜色空间与 YIQ 颜色空间转换 1 前言 2 RGB 颜色空间转换 YIQ 颜色空间描述 3 代码实现 1 前言 YIQ 色彩空间通常被北美的电视系统所采用 属于 NTSC NationalTele 系统 这里 Y 不是指黄色 而是指颜色的明视度 Luminance 即亮度 Brightness 其实 Y 就是图像的灰度值 Grayvalue 而 I 和 Q 则是指色调 Chrominance 即描述图像色彩

    2026年3月16日
    3
  • 修改aws亚马逊 中的windows 虚拟机实例密码

    修改aws亚马逊 中的windows 虚拟机实例密码

    2022年2月18日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号