久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

PHP實現(xiàn)給用戶發(fā)微信消息提醒功能

瀏覽:3日期:2022-06-14 11:00:17
目錄正文1. 獲取access_token2. 判斷是否關(guān)注3. 發(fā)送客服消息4. 微信接口返回的是一個數(shù)組5. 實現(xiàn)效果正文

以前有一個項目項目,當(dāng)有用戶有資金到賬或者成員變動時需要給他發(fā)一條微信消息提示。針對這個,開始想使用模板消息,但是剛注冊的公眾號申請消息模板需要幾天時間申請,在時間不足下選擇了使用客服消息接口。

這里跳過網(wǎng)頁授權(quán)和用戶信息獲取,請求接口的步驟,主要看獲取access_token,發(fā)布客服消息,驗證是否關(guān)注等等接口。

1. 獲取access_token// 獲取access_tokenpublic function getAccessToken($weid) {$appID = 'wxfaddfdfdfd6cf6fc3569'; // 服務(wù)號appID$appSecret = '071bebfdfdofdfd23687bf53d63a'; // 服務(wù)號appSerect$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appID&secret=$appSecret';$content = ihttp_get($url); // 自定義請求函數(shù)if(is_error($content)) { return error('-1', '獲取微信公眾號授權(quán)失敗, 請稍后重試!錯誤詳情: ' . $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', '獲取微信公眾號授權(quán)失敗, 請稍后重試! 公眾平臺返回原始數(shù)據(jù)為: 錯誤代碼-' . $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. 判斷是否關(guān)注// 判斷當(dāng)前用戶是否關(guān)注公眾號public public function isSubscribe($weid,$userid) {// 獲取當(dāng)前用戶信息$userinfo = pdo_get('hcface_users',array('uid'=>$userid));//return $userinfo;if(empty($userinfo)) { return false;}// 獲取access_token$accessToken = $this->getAccessToken($weid);// 是否關(guān)注接口$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 = []; // 判斷當(dāng)前用戶頭像和昵稱是否更換 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. 發(fā)送客服消息public function solPushMsg($openid, $content, $wid) {// 獲取access_token$accessToken = $this->getAccessToken($wid);$data = array( 'touser' => $openid, // 用戶openID 'msgtype' => 'text', 'text' => ['content' => $content, // 內(nèi)容 ],);$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第二個參數(shù)必須帶上,不然發(fā)出的消息可能是unicode編碼的if(is_error($res)) { return false;}if($res['code'] != '200') { return false;}return @json_decode($res['content'],true); }4. 微信接口返回的是一個數(shù)組

5. 實現(xiàn)效果

以上就是PHP實現(xiàn)給用戶發(fā)微信消息提醒功能的詳細內(nèi)容,更多關(guān)于PHP微信消息提醒的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: PHP
主站蜘蛛池模板: 宝清县| 突泉县| 兴化市| 柳江县| 两当县| 兴安县| 东平县| 朝阳市| 碌曲县| 温州市| 沙田区| 抚州市| 黄浦区| 温宿县| 哈尔滨市| 淮安市| 天门市| 宜兰市| 论坛| 白城市| 三穗县| 米脂县| 西乌珠穆沁旗| 泰顺县| 大田县| 苍梧县| 建始县| 定南县| 邵武市| 兴和县| 大同县| 洛南县| 吴川市| 仙游县| 商都县| 丹江口市| 丰镇市| 潮安县| 都兰县| 乐陵市| 崇文区|