這篇文章給大家分享的是有關(guān)微信開發(fā)之通過某個事件推送消息的示例的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)專注于興寧企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站定制開發(fā)。興寧網(wǎng)站建設(shè)公司,為興寧等地區(qū)提供建站服務(wù)。全流程按需策劃設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
在model里新建CustomServiceModel 為微信接口
getToken(); $url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$access_token; $this->getHttpResponsePOST($url,$json); } //獲取微信憑證 ACCESS_TOKEN public function getACCESS_TOKEN($uid){ $interface = M('wxinterface','wxmenu'); $data = $interface->getInterfacebyUid($uid); $AppId = $data[0]['AppId']; $AppSecret = $data[0]['AppSecret']; $ctime = $data[0]['ctime']; if(time()-$ctime<7200){ $ACCESS_TOKEN = $data[0]['token']; }else{ $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$AppId."&secret=".$AppSecret; $info = $interface->getHttpResponseGET($url); $arr = json_decode($info,$assoc=true); $ACCESS_TOKEN = $arr['access_token']; $data[0]['token'] = $ACCESS_TOKEN; $data[0]['ctime'] = time(); $interface->save($data[0]); } return $ACCESS_TOKEN; } /** 遠(yuǎn)程獲取數(shù)據(jù),GET模式 * 注意: * 1.使用Crul需要修改SSL證書請保證其路徑有效,目前默認(rèn)路徑是:getcwd().'\\cacert.pem' * @param $url 指定URL完整路徑地址 * @param $cacert_url 指定當(dāng)前工作目錄絕對路徑 * return 遠(yuǎn)程輸出的數(shù)據(jù) */ public function getHttpResponseGET($url) { $curl = curl_init($url); //curl_setopt($curl, CURLOPT_URL, $url); //curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, CURL_SSLVERSION_TLSv1);//SSL證書認(rèn)證 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);//不認(rèn)證 curl_setopt($curl, CURLOPT_HEADER, 0 ); // 過濾HTTP頭 curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 顯示輸出結(jié)果 $responseText = curl_exec($curl); //var_dump( curl_error($curl) );//如果執(zhí)行curl過程中出現(xiàn)異常,可打開此開關(guān),以便查看異常內(nèi)容 curl_close($curl); return $responseText; } /** * 遠(yuǎn)程獲取數(shù)據(jù),POST模式 * 注意: * 1.使用Crul需要修改服務(wù)器中php.ini文件的設(shè)置,找到php_curl.dll去掉前面的";"就行了 * 2.文件夾中cacert.pem是SSL證書請保證其路徑有效,目前默認(rèn)路徑是:getcwd().'\\cacert.pem' * @param $url 指定URL完整路徑地址 * @param $cacert_url 指定當(dāng)前工作目錄絕對路徑 * @param $para 請求的數(shù)據(jù) * @param $input_charset 編碼格式。默認(rèn)值:空值 * return 遠(yuǎn)程輸出的數(shù)據(jù) */ function getHttpResponsePOST($url, $para, $input_charset = '') { if (trim($input_charset) != '') { $url = $url."_input_charset=".$input_charset; } $curl = curl_init($url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, CURL_SSLVERSION_TLSv1);//SSL證書認(rèn)證 //curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//SSL證書認(rèn)證 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);//嚴(yán)格認(rèn)證 curl_setopt($curl, CURLOPT_HEADER, 0 ); // 過濾HTTP頭 curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 顯示輸出結(jié)果 curl_setopt($curl,CURLOPT_POST,true); // post傳輸數(shù)據(jù) curl_setopt($curl,CURLOPT_POSTFIELDS,$para);// post傳輸數(shù)據(jù) $responseText = curl_exec($curl); //var_dump( curl_error($curl) );//如果執(zhí)行curl過程中出現(xiàn)異常,可打開此開關(guān),以便查看異常內(nèi)容 curl_close($curl); return $responseText; } } ?> //---TOkenmodel 獲取token table('wxm_wxmenu_interface')->where($data)->find(); //file_put_contents("g.txt",$arr['token'],FILE_APPEND); return $arr['token']; } public function setToken($token){ $to['token']=$token; $arr= $this->table('wxm_wxmenu_interface')->where('uid=330')->save($to); //file_put_contents("s.txt",$token,FILE_APPEND); return true; } } ?> //---然后在需要使用的action里面新增方法 //文本回復(fù) public function msgReturn($openid,$array){ $json = '{ "touser":"'.strval($openid).'", "msgtype":"text", "text": { "content":"'.$array['content'].'" } }'; //調(diào)用客服接口 $uid=330; D("CustomService")->Service($uid,$json); } //最后在需要使用的地方調(diào)用此接口 //修改未審核狀態(tài) //-----趙信------// public function modn(){ $data['xid']=$_GET['xid']; $data['bstate']=$_GET['bstate']; $data['update_time'] = time(); $customer=M("Customer"); $member = M('members'); $cus = $customer->where('xid='.$data['xid'])->find(); $m_data = $member->where('oid='.$cus['oid'])->find(); $c=$customer->save($data); if($c){ if($data['bstate']==5){ $array['content'] ="您推薦的客戶“".$cus['xname']."”已被確認(rèn)審核通過"; $this->msgReturn($m_data['openid'], $array); }else if($data['bstate']==3){ $array['content'] ="您推薦的客戶“".$cus['xname']."”已被確認(rèn)已被推薦"; $this->msgReturn($m_data['openid'], $array); }else if($data['bstate']==4){ $array['content'] ="您推薦的客戶“".$cus['xname']."”已被確認(rèn)為已成交客戶"; $this->msgReturn($m_data['openid'], $array); } } $this->redirect("success_customer"); }
感謝各位的閱讀!關(guān)于“微信開發(fā)之通過某個事件推送消息的示例”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!