关于微信登录的接口开发
流程说明
(1). 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;
https://open.weixin.qq.com/connect/oauth2/authorize?appid=WX_APPID&redirect_uri=回调链接&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect';
这里的请求成功后,会跳转到回调链接中,然后用$_GET['code']获取code的值
(2). 通过code参数加上AppID和AppSecret等,通过API换取access_token;(这步里面能获取到openid 如果只需要openid而不需要其他信息第三步不需要做).
https://api.weixin.qq.com/sns/oauth2/access_token?appid=WX_APPID&secret=WX_APPSECRET&code=CODE&grant_type=authorization_code'
这步要用curl的分装函数来获取请求回来的信息
//这个就是post的请求curl函数
public function Send_curl($url,$data=null){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
if($data){
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
//解析json
$date= json_decode($output,true);
return $date;//返回值是一个对象类型
}
(3). 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。
$url = https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET
利用上面的curl分装函数Send_curl($url)
返回的值有token值