PHP实现给用户发微信消息提醒功能

2023-12-08 0 800
目录
  • 正文
    • 1. 获取access_token
    • 2. 判断是否关注
    • 3. 发送客服消息
    • 4. 微信接口返回的是一个数组
    • 5. 实现效果

正文

以前有一个项目项目,当有用户有资金到账或者成员变动时需要给他发一条微信消息提示。针对这个,开始想使用模板消息,但是刚注册的公众号申请消息模板需要几天时间申请,在时间不足下选择了使用客服消息接口。

这里跳过网页授权和用户信息获取,请求接口的步骤,主要看获取access_token,发布客服消息,验证是否关注等等接口。

PHP实现给用户发微信消息提醒功能

PHP实现给用户发微信消息提醒功能

1. 获取access_token

// 获取access_token
public function getAccessToken($weid) {
$appID = \”wxfaddfdfdfd6cf6fc3569\”; // 服务号appID
$appSecret = \”071bebfdfdofdfd23687bf53d63a\”; // 服务号appSerect
$url = \”https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appID&secret=$appSecret\”;
$content = ihttp_get($url); // 自定义请求函数
if(is_error($content)) {
return error(\’-1\’, \’获取微信公众号授权失败, 请稍后重试!错误详情: \’ . $content[\’message\’]);
}
if (empty($content[\’content\’])) {
return error(\’-1\’, \’AccessToken获取失败,请检查appid和appsecret的值是否与微信公众平台一致!\’);
}
$token = @json_decode($content[\’content\’], true);
if ($token[\’errcode\’] == \’40164\’) {
return error(-1, $this->errorCode($token[\’errcode\’], $token[\’errmsg\’]));
}
if(empty($token) || !is_array($token) || empty($token[\’access_token\’]) || empty($token[\’expires_in\’])) {
$errorinfo = substr($content[\’meta\’], strpos($content[\’meta\’], \'{\’));
$errorinfo = @json_decode($errorinfo, true);
return error(\’-1\’, \’获取微信公众号授权失败, 请稍后重试! 公众平台返回原始数据为: 错误代码-\’ . $errorinfo[\’errcode\’] . \’,错误信息-\’ . $errorinfo[\’errmsg\’]);
}
$record = array();
$record[\’token\’] = $token[\’access_token\’];
$record[\’expire\’] = TIMESTAMP + $token[\’expires_in\’] – 200;
$cachekey = cache_system_key(\’accesstoken\’, array(\’acid\’ => $weid));
cache_write($cachekey, $record);
return $record[\’token\’];
}

2. 判断是否关注

// 判断当前用户是否关注公众号
public public function isSubscribe($weid,$userid) {
// 获取当前用户信息
$userinfo = pdo_get(\’hcface_users\’,array(\’uid\’=>$userid));
//return $userinfo;
if(empty($userinfo)) {
return false;
}
// 获取access_token
$accessToken = $this->getAccessToken($weid);
// 是否关注接口
$url = \”https://api.weixin.qq.com/cgi-bin/user/info?access_token=\”.$accessToken.\”&openid=\”.$userinfo[\’openid\’].\”&lang=zh_CN\”;
$res = ihttp_request($url);
if(is_error($res)) {
return false;
}
if($res[\’code\’] != \’200\’) {
return false;
}
$result = @json_decode($res[\’content\’],true);
if($result[\’subscribe\’] == 1) {
$updateData = [];
// 判断当前用户头像和昵称是否更换
if($userinfo[\’avatar\’] != $result[\’headimgurl\’]) {
$updateData[\’avatar\’] = $result[\’headimgurl\’];
}
if($userinfo[\’nickname\’] != $result[\’nickname\’]) {
$updateData[\’avatar\’] = $result[\’nickname\’];
}
if(!empty($updateData)) {
pdo_update(\’hcface_users\’,$updateData,array(\’uid\’=>$userid));
}
}
$userInfoData = [
\”subscribe\” => $result[\’subscribe\’],
\”user_openid\” => $userinfo[\’openid\’],
\”nickname\” => $userinfo[\’nickname\’],
];
return $userInfoData;
}

3. 发送客服消息

public function solPushMsg($openid, $content, $wid) {
// 获取access_token
$accessToken = $this->getAccessToken($wid);
$data = array(
\’touser\’ => $openid, // 用户openID
\’msgtype\’ => \’text\’,
\’text\’ => [
\’content\’ => $content, // 内容
],
);
$url = \’https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=\’.$accessToken;
$res = ihttp_request($url,json_encode($data,JSON_UNESCAPED_UNICODE)); // json_encode第二个参数必须带上,不然发出的消息可能是unicode编码的
if(is_error($res)) {
return false;
}
if($res[\’code\’] != \’200\’) {
return false;
}
return @json_decode($res[\’content\’],true);
}

4. 微信接口返回的是一个数组

PHP实现给用户发微信消息提醒功能

5. 实现效果

PHP实现给用户发微信消息提醒功能

以上就是PHP实现给用户发微信消息提醒功能的详细内容,更多关于PHP微信消息提醒的资料请关注悠久资源网其它相关文章!

您可能感兴趣的文章:

  • jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
  • PHP实现RTX发送消息提醒的实例代码
  • 微信小程序发送订阅消息的方法(php 为例)
  • php实现微信模板消息推送
  • 微信公众号开发之文本消息自动回复php代码

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 PHP PHP实现给用户发微信消息提醒功能 https://www.u-9.cn/biancheng/php/128286.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务