重新梳理已经完成的功能,如果过程中遇到问题,回顾过去了解新的官方文档。准备工作(a.接入b.配置)a)修改/添加业务域名、网页授权域名;授权回调域名不带http://协议头绑定时,微信需要上传*.txt文件到根目录。需要在我的project.htaccess中添加文件权限,保证文件可以访问,否则绑定不通过b)公共平台参数appidsecret2.授权登录,简单画个流程图。网上很多人说微信浏览器session无效。我测试了它,它不存在;{父母::__构造();$this->load->library('session');}publicfunctionindex(){if(!isset($_SESSION['wx_user_data'])){//1.获取缓存令牌:如果令牌过期,则通过refresh_token获取,如果两者都过期或者第一个请求是获取代码$code=$this->input->get('code');if(!$code){//获取已有的token$access_token=$this->get_wx_access_token();}//2.获取访问令牌$this->load->library('mycurl');$wx_get_token='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.WX_APP_ID.'&secret='.WX_SECRET.'&code='.$code.'&grant_type=authorization_code';列表($returnCode,$returnContent)=$this->mycurl->curl_post_json_to_java($wx_get_token);$returnContent=json_decode($returnContent,true);如果($returnCode===200&&!isset($returnContent['access_token'])){die('error-page-todo-later'.$returnContent['errcode']);$access_token=$returnContent['access_token'];$refresh_token=$returnContent['refresh_token'];$expires_date=时间()+7100;$openid=$returnContent['openid'];//3.刷新accesstoken//4.拉取用户信息$wx_get_userinfo='https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN';列表($returnCode,$returnContent)=$this->mycurl->curl_post_json_to_java($wx_get_userinfo);$returnContent=json_decode($returnContent,true);如果($returnCode===200&&isset($returnContent['errcode'])){die('error-page-todo-later'.$returnContent['errcode']);}$userData=array();$userData['openid']=$returnContent['openid'];$userData['unionid']=$returnContent['unionid'];$userData['昵称']=$returnContent['昵称'];$userData['sex']=$returnContent['sex'];$userData['省']=$returnContent['省'];$userData['city']=$returnContent['city'];$userData['国家']=$returnContent['国家'];$userData['headimgurl']=$returnContent['headimgurl'];$userData['privilege']=$returnContent['privilege'];//5.session存储userData缓存不能每次从入口进来都实时刷新用户信息$this->session->set_userdata('wx_user_data',$userData);}//6.项目主要逻辑$templateData['userData']=$_SESSION['wx_user_data'];$this->load->view('union_m/index.html',$templateData);}/***跳转到授权页面,同入口scopeuser-infoSilence*@return[type][description]*/publicfunctionredirect_wx_url(){$wx_get_code='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.WX_APP_ID.'&redirect_uri='.urlencode(UNION_INDEX).'&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect';$this->load->helper('url');重定向($wx_get_code);}//accesstoken维护publicfunctionget_wx_access_token(){//1.如果有未过期的token,直接返回//2.如果有未过期的refresh_token,则获取token并刷新access_token(忽略)//3.如果没有首次授权或者全部过期,则跳转到授权页面$this->redirect_wx_url();}结合项目的最终URL
