EasyWechat 3.x 小程序客服消息自动回复
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
参数的值,这样才能验证成功
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. 客服会话自动回复
文本消息
$message = new \EasyWeChat\Message\Text(['content' => '未设置客服二维码']);
图片消息
$image = '';//本地图片绝对路径
$result = $app->material_temporary->uploadImage($image);// 上传临时素材
$message = new \EasyWeChat\Message\Image(['media_id' => $result['media_id']]);
$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();
本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!
从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!
本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。
本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。