如下图
给个代码例子。
给个代码例子。
解决方案
5
这个没研究过,弄过订阅号,但是手机不能登
45
服务认证号,带网页授权功能,假如你运营的号不是服务认证号,可以其他的也利用别的服务认证号实现
public function joinUs(){ if(!is_weixin()) return false; $wechat_info = $this->winfo; $w_id = getWid(); if($wechat_info["w_auth"]!=1){ //代理官方认证号 if(SITEDOMAIN!="www.".C("officialDomain")){ $off_wid = D("User")->findProxyAuthen($w_id); if(!$off_wid) return false; $wechat_info = D("Wechat")->getWechatCache($off_wid); }else{ //官方认证号 $wechat_info = M("wechat_extend")->where(array("lower(w_weixin)"=>C("officialWx")))->find(); } } if($_GET["code"]){ $cfg["appid"] = $wechat_info["w_appid"]; $cfg["secret"] = $wechat_info["w_secret"]; $s = json_decode(getRemoteContent("https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$cfg["appid"]."&secret=".$cfg["secret"]."&code=".$_GET["code"]."&grant_type=authorization_code"),true); $urs = json_decode(getRemoteContent("https://api.weixin.qq.com/sns/userinfo?access_token=".$s["access_token"]."&openid=".$s["openid"]."&lang=zh_CN"),true); if($urs["openid"]){ $r = M("wechat_user"); $uid = getUid(); $nickname = filterNickName($urs["nickname"]); //当前公众号入库数据补充 $sfile = "./Public/Uploads/weixin/avatar/".md5($urs["openid"]).".jpg"; $data["headimgurl"] = D("WechatUser")->getAvatar($urs["headimgurl"],$sfile); $data = array("nickname"=>$nickname,"headimgurl"=>$sfile,"sex"=>$urs["sex"],"country"=>$urs["country"],"province"=>$urs["province"],"city"=>$urs["city"]); M("wechat_user")->where(array("id"=>$uid))->save($data); if($uid && $nickname && $nickname!="网友"){ $this->assign("msg","授权完成"); }elseif(!$uid){ $this->assign("msg","用户信息未入库,请检查公众号配置参数能否正确"); }else{ $this->assign("msg","很遗憾,请确认您的微信能否设置了昵称"); } $this->display("index"); }else{ $this->assign("msg","授权失败"); $this->display("index"); } }else{ $this->assign("msg","您取消了授权"); $this->display("index"); } }