微信通过某个事件推送消息

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

微信通过某个事件推送消息

在model里新建CustomServiceModel 为微信接口

<?phpnamespace Home\Model;use Think\Model;class CustomServiceModel extends Model {// protected $tableName = 'wxmenu_statistics';private static $wxInterFace;public function Service($uid,$json){$Model = D('Token');$access_token = $Model->getToken();$url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$access_token;$this->getHttpResponsePOST($url,$json);}//获取微信凭证 ACCESS_TOKENpublic 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;}/** 远程获取数据,GET模式* 注意:* 1.使用Crul需要修改服务器中php.ini文件的设置,找到php_curl.dll去掉前面的";"就行了* 2.文件夹中cacert.pem是SSL证书请保证其路径有效,目前默认路径是:getcwd().'\\cacert.pem'* @param $url 指定URL完整路径地址* @param $cacert_url 指定当前工作目录绝对路径* return 远程输出的数据*/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证书认证curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);//不认证curl_setopt($curl, CURLOPT_HEADER, 0 ); // 过滤HTTP头curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 显示输出结果$responseText = curl_exec($curl);//var_dump( curl_error($curl) );//如果执行curl过程中出现异常,可打开此开关,以便查看异常内容curl_close($curl);return $responseText;}/*** 远程获取数据,POST模式* 注意:* 1.使用Crul需要修改服务器中php.ini文件的设置,找到php_curl.dll去掉前面的";"就行了* 2.文件夹中cacert.pem是SSL证书请保证其路径有效,目前默认路径是:getcwd().'\\cacert.pem'* @param $url 指定URL完整路径地址* @param $cacert_url 指定当前工作目录绝对路径* @param $para 请求的数据* @param $input_charset 编码格式。默认值:空值* return 远程输出的数据*/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证书认证//curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//SSL证书认证curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);//严格认证curl_setopt($curl, CURLOPT_HEADER, 0 ); // 过滤HTTP头curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 显示输出结果curl_setopt($curl,CURLOPT_POST,true); // post传输数据curl_setopt($curl,CURLOPT_POSTFIELDS,$para);// post传输数据$responseText = curl_exec($curl);//var_dump( curl_error($curl) );//如果执行curl过程中出现异常,可打开此开关,以便查看异常内容curl_close($curl);return $responseText;}}?>//---TOkenmodel 获取token<?php namespace Home\Model;use Think\Model;class TokenModel extends Model{public function getToken(){$data['uid']=330;$arr = $this->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里面新增方法//文本回复public function msgReturn($openid,$array){$json = '{"touser":"'.strval($openid).'","msgtype":"text","text":{"content":"'.$array['content'].'"}}';//调用客服接口$uid=330;D("CustomService")->Service($uid,$json);}//最后在需要使用的地方调用此接口//修改未审核状态 //-----赵信------//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']."”已被确认审核通过";$this->msgReturn($m_data['openid'], $array);}else if($data['bstate']==3){$array['content'] ="您推荐的客户“".$cus['xname']."”已被确认已被推荐";$this->msgReturn($m_data['openid'], $array);}else if($data['bstate']==4){$array['content'] ="您推荐的客户“".$cus['xname']."”已被确认为已成交客户";$this->msgReturn($m_data['openid'], $array);}}$this->redirect("success_customer");}
登录后复制

以上就是微信通过某个事件推送消息的内容,更多相关内容请关注PHP中文网(www.php.cn)!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:总结分享一些小程序开发中实用的小知识
下一篇:bootstrap干什么用的

发表评论

关闭广告
关闭广告