流程:
用户点击菜单按钮
—–> 发送页面授权请求到微信后台
—–> 得到 code 发送到 我们服务器后台的url
—–> 将 code 参数发送到微信后台获取用户的openid返回服务器上的页面(也可以直接获取用户头像等基本信息,需用户点击同意授权)
详情参照官方文档:
https://mp./wiki?t=resource/res_main&id=mp1421140842
//填写获取code的接口的路径
//添加路由
class WapWechatController extends Controller
{
public function http_curl($url){$ch = curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$output = curl_exec($ch);curl_close($ch);return json_decode($output,true);}public function getcode(){//1.用户同意授权,获取code$appid="你的appid";$redirect_uri=urlencode("/wx/getuserinfo");$url = "https://open./connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";//跳转到回调地址的方法里header('location:'.$url);}
//携带code参数跳到getuserinfo方法
/wx/getuserinfo?code=sbnJJMJMX&state=STATE
public function getuserinfo(Request $request){//2.通过code换取网页授权access_token,openid//获取code$code= $_GET['code'];$appid="你的appid";$secret=你的secret";$url="https://api./sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";$res=$this->http_curl($url,'get');$access_token=$res['access_token'];$openid=$res['openid'];//3.拉取用户信息$url2="https://api./sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";$res2=$this->http_curl($url2,'get');//将用户信息存入数据库(举例)$insert = DB::table('user_auths')->insert(['openid' => $res2['openid'],'nickname' => $res2['nickname']]);//跳转到你要跳转的页面header('location:'.'');}
}
方法2:
将菜单 view 按钮的 url直接写为:
“https://open./connect/oauth2/authorize?appid=“+yourAppid+”&redirect_uri=”+你要跳转的url+”&response_type=code&scope=snsapi_base&state=1#wechat_redirect”
相当于直接发送页面授权请求到微信后台,将url里的code发送给后台,直接请求第二个接口获取openid,token接口即可
如果觉得《点击微信公众号菜单按钮 跳转网页授权登录》对你有帮助,请点赞、收藏,并留下你的观点哦!