知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >
小程序發(fā)送公眾號模版信息
發(fā)表時間:2020-10-19
發(fā)布人:葵宇科技
瀏覽次數(shù):35
小程序的發(fā)送模版信息功能,經(jīng)過修改,只能發(fā)送訂閱信息,如需向公眾號一樣發(fā)送模版信息,需滿足以下條件
一、微信開放平臺花300元開通認證,認證通過后、去管理中心、小程序、綁定小程序(小程序登入賬號就是微信公眾號的賬號and密碼)
二、在公眾號中綁定對應(yīng)的小程序
三、在公眾號中基本配置-服務(wù)器配置(啟用-注意,啟用此配置后,公眾號自定義菜單會失效,需要自己開發(fā)對應(yīng)的功能)
配置如下圖
四、在服務(wù)器中上圖地址創(chuàng)建url接口getGzhConfig方法,及相關(guān)代碼
//公眾號服務(wù)器配置url
public function getGzhConfig(){
$timestamp = input('get.timestamp');
$nonce = input('get.nonce');
$token = 'cmxx';//自定義,對應(yīng)令牌token名
$signature = input('get.signature');
$array = array($timestamp, $nonce, $token);
sort($array);
$stmstr = implode('', $array);
$stmstr = sha1($stmstr);
$echostr = input('get.echostr');
if($stmstr == $signature && $echostr){
echo $echostr;
exit;
} else {
$this->responseMsg();
}
}
//發(fā)送響應(yīng)消息(暫只做關(guān)注處理,保存關(guān)注用戶的信息,openid unionid,nickname等)
public function responseMsg()
{
$postArr = file_get_contents("php://input");
$postObj = simplexml_load_string($postArr);
$type = strtolower($postObj->MsgType);
//關(guān)注和向公眾號發(fā)送消息是兩個不同的事件
//因此可以通過獲取到的事件類型來決定回復(fù)什么內(nèi)容
switch ($type) {
//關(guān)注事件回復(fù)內(nèi)容
case 'event':
if (strtolower($postObj->Event) == 'subscribe') {
$this->getUserInfo($postObj->FromUserName);
}
break;
default:
break;
}
}
//用戶關(guān)注時,通過openId獲取用戶信息
public function getUserInfo($openid){
$token = $this->getWxAccessToken();
$url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid=".$openid."&lang=zh_CN";
$res = $this->curl($url);
$userGzh = UserGzhModel::where('openid',$openid)->find();
if(empty($userGzh)){
UserGzhModel::create($res);
}else{
UserGzhModel::where('openid',$openid)->update($res);
}
//發(fā)送模版信息-關(guān)注公眾號
$template_id = "IXAHnaj1ZyOlWAoQu9CqMkfVQIzS0suHbfojhNiIDFQ";
$strFirstVal = '您好,您已通xxxxx';
$keyword1Val = $res['nickname'];
$keyword2Val = getTimeData6(date("Y-m-d H:i:s"));
$keyword3Val = 'aaa盒';
$remark = '新人立贈6元優(yōu)惠,趕緊開啟您的點餐之旅吧!充值多多,優(yōu)惠多多!';
//參數(shù)說明:$openid = 用戶openid $template_id=模版id $model=自定義類型 $strFirstVal=模版參數(shù).....
$this->sendMsg2AttGZH($res['openid'],$template_id,$strFirstVal,$keyword1Val,$keyword2Val,$keyword3Val,$remark);
}
//此方法只需提前運行一次,所有關(guān)注公眾號的用戶信息
//獲取所有關(guān)注公眾號的用戶信息,保存在數(shù)據(jù)庫中,只用做一次,把舊的數(shù)據(jù)保存即可,新的用戶關(guān)注時自動保存
public function getGzhUser(){
$token = $this->getWxAccessToken();
$url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$token;
$res = $this->curl($url);
foreach($res['data']['openid'] as $k=>$vo) {
// p($vo);die;
$this->getUserInfo($vo);
}
}
/**
* 獲取公眾號access_token
*/
public function getWxAccessToken(){
$appId = constant("APPIDGZH");
$appSecret = constant("SECRETGZH");
$access_token = Cache::get('wx_access_token:'.$appId);
if($access_token){
return $access_token;
}else{
//1.請求url地址
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appId."&secret=".$appSecret;
$res = $this->curl($url);
if(isset($res['errcode']) && $res['errcode']!=0){
return ('獲取access_token出錯');
}
$access_token = $res['access_token'];
Cache::set('wx_access_token:'.$appId,$access_token,5400);
return $access_token;
}
}
public function curl($url,$data = null){
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
// 為保證第三方服務(wù)器與微信服務(wù)器之間數(shù)據(jù)傳輸?shù)陌踩?#xff0c;所有微信接口采用https方式調(diào)用,必須使用下面2行代碼打開ssl安全校驗。
// 如果在部署過程中代碼在此處驗證失敗,請到 http://curl.haxx.se/ca/cacert.pem 下載新的證書判別文件。
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_URL, $url);
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
$res = curl_exec($curl);
curl_close($curl);
$json_obj = json_decode($res,true);
return $json_obj;
}
通過以上的方法,就能把關(guān)注過公眾號的openid保存在數(shù)據(jù)庫中,當(dāng)用戶觸發(fā)小程任務(wù),需要發(fā)送模版信息時,就先通過小程序用戶信息,從數(shù)據(jù)庫中查詢到該用戶的公眾號openid,然后通過此openid發(fā)送模版信息即可,怎么發(fā)送模版信息,在這里就不在描敘。
多年程序開發(fā),2年開發(fā)微信小程序經(jīng)驗,已有數(shù)個穩(wěn)定上線運營項目,PHP后臺+小程序 全棧開發(fā)
兼職接單,歡迎咨詢 微信號:x1880161
相關(guān)案例查看更多
相關(guān)閱讀
- 云南做網(wǎng)站
- 保山小程序開發(fā)
- 網(wǎng)站維護
- 小程序被攻擊
- 云南網(wǎng)站建設(shè)方案 doc
- 云南網(wǎng)站建設(shè)特性
- 制作一個小程序
- 網(wǎng)站建設(shè)制作
- 云南網(wǎng)站建設(shè) 網(wǎng)絡(luò)服務(wù)
- 商標(biāo)注冊
- 云南小程序開發(fā)課程
- 云南網(wǎng)站建設(shè)公司排名
- 云南網(wǎng)站維護
- 搜索引擎排名
- 小程序分銷商城
- 汽車報廢系統(tǒng)
- 昆明網(wǎng)絡(luò)公司
- 云南網(wǎng)站建設(shè)
- 網(wǎng)站建設(shè)案例
- 昆明網(wǎng)站建設(shè)公司
- 網(wǎng)站收錄
- 全國前十名小程序開發(fā)公司
- 網(wǎng)站建設(shè)首選
- 云南做百度小程序的公司
- 海報插件
- flex
- 迪慶小程序開發(fā)
- 小程序表單
- 快排推廣
- php網(wǎng)站