前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EasyWechat 3.x 小程序客服消息自动回复

EasyWechat 3.x 小程序客服消息自动回复

作者头像
很酷的站长
发布2023-01-08 11:53:44
1.2K0
发布2023-01-08 11:53:44
举报
文章被收录于专栏:站长的编程笔记
1. 小程序消息推送简介

启用小程序的消息推送后小程序收到的消息将推送至开发者的设置的服务器地址

例如:用户关注公众号、用户给小程序的客服会话发送消息

EasyWechat 3.x : https://easywechat.com/docs/3.x/overview

更多内容参考微信官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/message-push.html

2. 开启小程序消息推送

登录小程序管理平台,找到 开发管理-开发设置 中的消息推送

消息加密方式设置为明文模式, 数据格式设置为 JSON

3. 小程序消息推送接入验证

在小程序管理平台设置消息推送配置时,点击 提交 可能会出现: Token校验失败,请检查确认

原因分析:点击提交,微信服务器会请求填写的 URL(服务器地址),并携带一些参数进行接入验证

站长源码网

我们需要接收传递的参数进行加密,然后做签名校验,最后输出 echostr 参数的值,这样才能验证成功

代码语言:javascript
复制
function checkSignature(string $token)
{
$nonce = $_GET["nonce"] ?? '';
$signature = $_GET["signature"] ?? '';
$timestamp = $_GET["timestamp"] ?? '';
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode('', $tmpArr);
$tmpStr = trim(sha1($tmpStr));
if (empty($token)) die('未设置消息推送token令牌');
if (empty($signature) || empty($tmpStr) || empty($nonce)) die('非法请求!!!');
if ($tmpStr != $signature) die('签名验证错误');
isset($_GET['echostr']) ? die($_GET['echostr']) : '';
}
4. 客服会话自动回复

文本消息

代码语言:javascript
复制
$message = new \EasyWeChat\Message\Text(['content' => '未设置客服二维码']);

图片消息

代码语言:javascript
复制
$image = '';//本地图片绝对路径
$result = $app->material_temporary->uploadImage($image);// 上传临时素材
$message = new \EasyWeChat\Message\Image(['media_id' => $result['media_id']]);
代码语言:javascript
复制
$token = '';
checkSignature($token);
$message = json_decode(file_get_contents('php://input'), true);
$app = \app\lib\EasyWechat::getInstance()->app;
switch ($message['MsgType']) {
    case 'miniprogrampage': // 小程序卡片
        $openid  = $message['FromUserName'];
        // 自动回复图片
        $image = getValue('kefu_qrcode');
        if ($image) {
            // 上传临时素材
            $result = $app->material_temporary->uploadImage($image);
            $content = new Image(['media_id' => $result['media_id']]);
        } else {
            $content = new Text(['content' => '未设置客服二维码']);
        }
        // 发送消息
        $app->staff->message($content)->to($openid)->send();
        break;
}
$response = $app->server->serve();
$response->send();
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 小程序消息推送简介
  • 2. 开启小程序消息推送
  • 3. 小程序消息推送接入验证
  • 4. 客服会话自动回复
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档