微信 获取 用户信息访问授权管理

define( "WX_APPID" ,$appid); //公众号的appid
define( "WX_SRC" , $screat ); 公众号seceat

define( "WX_CALLBACK_URLL" , $serverName.'/parter/weixin/callback2.php' ); //登录之后回调地址

1.微信通过 appid 和 appsereat 获取 code; 


header('location:https://open.weixin.qq.com/connect/oauth2/authorize?appid='.WX_APPID.'&redirect_uri='.urlencode(WX_CALLBACK_URLL).'&response_type=code&scope='.WX_U.'&state=STATE#wechat_redirect');

array ( [code] => 061CVJUq0F85Pp1xXPXq02M8Vq0CVJUx [state] => STATE ) 获取到code

2.通过code 获取 token,和 openid 绑定微信开放平台会有 unid;

使用code换取access_token

换取网页授权access_token页面的构造方式:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

参数说明

参数

是否必须

说明

appid

公众号的唯一标识

secret

公众号的appsecret

code

填写第一步获取的code参数

grant_type

填写为authorization_code

code:在这里填写为上一步获得的值。

curl_get_https请求方法。(提示 :高版本的 直接 用 file_get_content 就可以)

function curl_get_https($url){
    $curl = curl_init(); // 启动一个CURL会话
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);  // 从证书中检查SSL加密算法是否存在
    $tmpInfo = curl_exec($curl);     //返回api的json对象
    //关闭URL请求
    curl_close($curl);
    return $tmpInfo;    //返回json对象

}

打印如下: 

$get_token_url='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.WX_APPID.'&secret='.WX_SRC.'&code='.$code.'&grant_type=authorization_code';
$res = curl_get_https($get_token_url); //获取文件内容或获取网络请求的内容
$json_obj = json_decode($res,true); 

3.通过token 和 openid 请求获取到 用户信息和 跳转。

通过access_token、openid获取用户信息 

请求方法:

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

  参数说明

参数

描述

access_token

网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同

openid

用户的唯一标识

$get_user_info_url='https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN'; 
$res = curl_get_https($get_user_info_url); //获取文件内容或获取网络请求的内


//解析json 

$user_obj = json_decode($res,true); 

猜你喜欢

转载自blog.csdn.net/qq_25861247/article/details/82108095
今日推荐