env("WECHAT.APPID"),"appsecret"=>env("WECHAT.APPSECRET")]; $this->wechat=new \Wechat($wechat_conf); } // 获取用户信息{subscribe,openid,nickname,sex,city,province,country,language,headimgurl,subscribe_time,[unionid]} public function getinfo(){ $code =$this->request->only(["code"=>"","openid"=>""],"post","trim"); $valid =Validate::rule([ "code|微信授权Code"=>"requireWithout:openid|max:255|min:5", "openid|微信openid"=>"requireWithout:code|max:255|min:5", ]); if($valid->check($code)==false) return error_show(1004,$valid->getError()); if($code['openid']==""){ $uid =$this->wechat->getAccessTokenByCode($code['code']); if($uid==false){ return error_show(1004,"未获取到用户数据"); } if(!isset($uid['openid'])|| $uid['openid']=='') return error_show(1004,"未获取到用户数据"); }else$uid['openid']=$code['openid']; $Dbuser =Db::name("wechat_user")->where(["openid"=>$uid['openid']])->findOrEmpty(); if(empty($Dbuser)){ if($code['openid']!="") return error_show(1004,"未找到用户数据"); $useinfo = $this->wechat->getUserInfo($uid['openid']); if($useinfo==false)return error_show(1004,"未获取到用户数据"); $Dbuser = [ "openid"=>$useinfo['openid'], "nickname"=>$useinfo['nickname'], "mobile"=>'', "gender"=>$useinfo['sex'], "avatar"=>$useinfo['headimgurl'], "subscribe_time"=>date("Y-m-d H:i:s",$useinfo['subscribe_time']), "addr"=>"{$useinfo['province']}/{$useinfo['city']}/{$useinfo['country']}", "status"=>$useinfo['subscribe'], "companyArr"=>'', "is_show"=>0, "addtime"=>date("Y-m-d H:i:s"), "updatetime"=>date("Y-m-d H:i:s") ]; $Dbuser['id']=Db::name("wechat_user")->insertGetId($Dbuser); }else { $Dbuser["updatetime"]=date("Y-m-d H:i:s"); Db::name("wechat_user")->save($Dbuser); } $Dbuser["companyArr"]=$Dbuser['companyArr']!=''?json_decode($Dbuser['companyArr'],true):[]; $Dbuser["is_show"]=explode(",",$Dbuser["is_show"]); return app_show(0,"获取成功",$Dbuser); } //网页端调用jssdk配置config public function getConfig(){ $url =$this->request->only(["url"=>""],"post","trim"); $valid =Validate::rule(["url|微信授权地址"=>"require|max:255|min:5"]); if($valid->check($url)==false) return error_show(1004,$valid->getError()); $baseconfig =$this->wechat->getJsTicket(); if($baseconfig==false){ return error_show(1002,"签名获取失败"); } $baseconfig =$this->wechat->getJsSign($url['url']); if($baseconfig==false){ return error_show(1004,"签名获取失败"); } return app_show(0,"获取成功",$baseconfig); } }