欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

微信公众号使用PHP获取H5网页授权用户信息

程序员文章站 2023-12-24 10:49:45
...

一、准备工具

服务号(订阅号不能获取网页授权用户信息)、域名、服务器

二、配置公众号

1、获取开发者id和开发者密码
微信公众号使用PHP获取H5网页授权用户信息
微信公众号使用PHP获取H5网页授权用户信息
2、设置网页授权域名:

业务域名和js接口安全域名,不需配置,只需配置网页授权域名即可!

微信公众号使用PHP获取H5网页授权用户信息
微信公众号使用PHP获取H5网页授权用户信息
3、配置证书,将下载后的证书放到域名根目录即可
微信公众号使用PHP获取H5网页授权用户信息
如果浏览器能访问到该文件,则说明配置成功:
微信公众号使用PHP获取H5网页授权用户信息
微信公众号使用PHP获取H5网页授权用户信息

三、代码实现

博主所使用的是tp3框架

流程一:访问该方法,拉起网页授权界面,如果同意则携带参数跳转到回调地址中

myurl这个地址是我自己随意设置的回调地址,这个地址不需要在公众号上指定!!!

	public function webpage_authorization()
    {
        $appid="微信公众号上获取"; //AppID
        $key="微信公众号上获取"; //AppSecret
        
        $myurl=urlencode("http://baidu.com/index/redirect_url"); //回调域名
        $wxurl='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri='.$myurl.'&response_type=code&scope=snsapi_userinfo&state=0#wechat_redirect';
        header('Location:'.$wxurl);
    }

微信公众号使用PHP获取H5网页授权用户信息

流程二:回调地址中获取code,拿到code后在去请求一个接口获取access_token和openid,拿到openid后再去请求获取用户信息的接口即可:
	public function redirect_url(){
    	$appid="微信公众号上获取"; //AppID
        $key="微信公众号上获取"; //AppSecret
    	$code   = $_GET['code'];
        if ($code) {
           $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$key&code=$code&grant_type=authorization_code";
           $s = file_get_contents($url);
           $s = json_decode($s, true);
        }
        $access_token = $s["access_token"];
        $openid = $s['openid'];
        //第二步:根据全局access_token和openid查询用户信息
        $get_user_info_url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN";
        $userinfo = $this->http_curl($get_user_info_url); // 获取用户信息
		print_r($user_info);
    }
	
	public function http_curl($url){
      //用curl传参
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

      //关闭ssl验证
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);


      curl_setopt($ch,CURLOPT_HEADER, 0);
      $output = curl_exec($ch);
      curl_close($ch);
      return json_decode($output, true);
    }

最后打印出的用户信息:
微信公众号使用PHP获取H5网页授权用户信息

四、采坑总结:

坑一:

在请求第一个接口获取code拉起授权的时候,报错:redirect_uri域名与后台配置不一致,错误代码10003!但是公众号配置又没问题,于是在第一步请求接口获取code的时候,给回调地址这个参数加上urlencode(回调地址)后就可以了!
微信公众号使用PHP获取H5网页授权用户信息

坑二:

公众号设置中,只需要配置网页授权域名即可,配置的域名不需要加http!并且回调地址是自己在代码中设置的,不需在公众号中配置!!!
微信公众号使用PHP获取H5网页授权用户信息微信公众号使用PHP获取H5网页授权用户信息

坑三:

微信公众号使用PHP获取H5网页授权用户信息
如果只是单纯的做获取h5网页授权用户信息的话,服务器配置不需要启动!!!
微信公众号使用PHP获取H5网页授权用户信息

五、微信开发文档

链接: 微信获取网页授权开发文档.

相关标签: 微信公众号

上一篇:

下一篇: