博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CI-微信公众号获取openid和消息推送
阅读量:5247 次
发布时间:2019-06-14

本文共 4263 字,大约阅读时间需要 14 分钟。

load->database(); } /* * 用户授权登录 */ function userLogin(){ $redirect_uri = urlencode('http://****/wxOpenid'); //跳转到下面调用这个方法的地址 $url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$this->APPID.'&redirect_uri='.$redirect_uri.'&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect'; header('Location:'.$url); } /* * code获取openid */ function CodegetOpenid($code){ $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$this->APPID.'&secret='.$this->APPSECRET.'&code='.$code.'&grant_type=authorization_code'; $res = file_get_contents($url); $res = json_decode($res,true); if($res['openid']){ return $res['openid']; }else{ return false; } } /** * 生成token 每2个生成一次 脚本执行 * */ function access_token(){ $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$this->APPID.'&secret='.$this->APPSECRET; $res = file_get_contents($url); $res = json_decode($res,true); if($res['access_token']){ file_put_contents('access_token.json', $res['access_token']); }else{ $error = file_get_contents('access_token_error.json'); file_put_contents('access_token_error.json', $error.'获取token失败'.date('Y-m-d H:i:s',time())."\r\n"); } } /** * 获取token */ function gain_token(){ $token = file_get_contents('access_token.json'); if($token){ return ['code'=>0,'token'=>$token]; }else{ return ['code'=>1,'msg'=>'获取失败']; } } /** * 微信消息推送 * @param $openid 用户opendID * @param $url 跳转地址 * @param $title 推送标题 * @param $realname 用户姓名 * @param $starttime 开始时间 * @param $content 推送内容 * @param string $remarks 备注 * @return $arr; */ function postNews($openid,$url,$title,$realname,$starttime,$content,$remarks=''){ $token = $this->gain_token(); $wx_url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token='.$token['token']; $data = [ 'touser'=>$openid, 'template_id'=>'-dq0w-Orz0XRcQvvdse-BdNlwny1qU5i24gePpRsE6s', 'url'=>$url, 'topcolor'=>'#FF0000', 'data'=>[ 'first'=>[ 'value'=>$title, 'color'=>'#173177' ], 'keyword1'=>[ 'value'=>$realname, 'color'=>'#173177' ], 'keyword2'=>[ 'value'=>$starttime, 'color'=>'#173177' ], 'keyword3'=>[ 'value'=>$content, 'color'=>'#173177' ], 'remark'=>[ 'value'=>$remarks, 'color'=>'#173177' ] ] ]; $res = $this->https_post($wx_url,json_encode($data)); return $res; } /** * @param $url * @param null $data * @return mixed */ function https_post($url, $data = null){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); //curl_setopt($curl,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); $output = curl_exec($curl); curl_close($curl); return $output; }} //CI 控制器调用方法
/*  * 微信导航跳转地址  */ function wxLogin(){
$this->load->model('Wx_model'); $this->Wx_model->userLogin(); } function wxOpenid(){
$this->load->model('Wx_model'); $openid = $this->Wx_model->CodegetOpenid($_GET['code']); if($openid){
//查询数据库中是否存在 //不存在携带ID跳转登录 登录后绑定该ID //存在获取信息直接登录 }else{
//未获取到 //走正常登录 } }
//消息推送 $this->load->model('Wx_model');

$this->Wx_model->postNews('用户opendID','跳转地址URL','推送标题','用户姓名','开始时间','推送内容','备注');

 

 

转载于:https://www.cnblogs.com/phper8/p/9004227.html

你可能感兴趣的文章
Linux重定向: > 和 &> 区别
查看>>
nginx修改内核参数
查看>>
【欧拉函数模板题】最大公约数
查看>>
IOS做天气预报
查看>>
C 筛选法找素数
查看>>
TCP为什么需要3次握手与4次挥手(转载)
查看>>
IOC容器
查看>>
计算机网络(谢希仁版)——第三章回顾(2)
查看>>
jQuery1.0图片截览
查看>>
Css实现元素的垂直居中
查看>>
ElasticSearch的x-pack配置查询
查看>>
织梦仿站第三课:网站的文件分割
查看>>
Windows 2003全面优化
查看>>
(转)AWK函数
查看>>
linux ---- diff命令
查看>>
URAL 1002 Phone Numbers(KMP+最短路orDP)
查看>>
SpringBoot 之Actuator.
查看>>
web_day4_css_宽度
查看>>
fidder抓包调试神器
查看>>
619. [金陵中学2007] 传话
查看>>