PHP得到微信用戶的OpenID,而後再經過OpenID和access_token查詢用戶信息大體以下步驟:php
前提是必需要知道的有公衆賬號的:appid和secret
html
* 一、拼成一個連接
* 二、把連接拋出去返回一個code echo $_GET['code']
* 三、根據code換取access_token和openid
* 4. 使用access_token和openid來獲取用戶信息
* 五、
*
sql
1、第一步寫個頁面去進行請求微信API獲取codejson
<?php
//$APPID='*******';
//$REDIRECT_URI='wx.qq.com/c/m1020.php';
//$scope='snsapi_base';若是要獲取全部的信息請用$scope = snsapi_userinfo;
//$state = 120;api
//須要受權的域名 wx.qq.com這一步是在公衆後臺進行添加的,而後這個域名下的全部頁面均可以得到受權好比個人:http://wx.qq.com/c/m1020a.php
header("Location: https://open.weixin.qq.com/connect/oauth2/authorize?appid=***********&redirect_uri=http://wx.qq.com/c/m1020a.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect");
?>數組
2、第二步寫另一個頁面得到微信用戶的OpenID,而後再經過OpenID和access_token查詢用戶信息代碼以下:微信
<?php
//wx.mtgdfs.com/c/m1020.php
$appid = "你的公衆賬號appid";
$secret = "你的公衆賬號祕鑰";
$code = $_GET["code"];
$get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$get_token_url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res = curl_exec($ch);
curl_close($ch);
$json_obj = json_decode($res,true);
//根據openid和access_token查詢用戶信息
$access_token = $json_obj['access_token'];
$openid = $json_obj['openid'];
$get_user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$get_user_info_url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res = curl_exec($ch);
curl_close($ch);
//echo "<hr>ddd<hr>";
//$code = $_GET['code'];//獲取code
//$weixin = file_get_contents("https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxba922caddc6700a8&secret=9f47a54b26ab9ed1a01fa71ae2e82f27&code=".$code."&grant_type=authorization_code");//經過code換取網頁受權access_token
//$jsondecode = json_decode($weixin); //對JSON格式的字符串進行編碼
//$array = get_object_vars($jsondecode);//轉換成數組
//print_r($array);exit;
//$openid = $array['openid'];//輸出openid
//解析json
$user_obj = json_decode($res,true);
$_SESSION['user'] = $user_obj;
print_r($user_obj);
?>app
/*參考頁面以下:
curl
http://www.cnblogs.com/txw1958/p/weixin71-oauth20.html學習
http://www.cnblogs.com/txw1958/p/weixin-menu-get-openid.html
http://mp.weixin.qq.com/wiki/home/index.html
*/
PHP+Mysql網站源碼學習請訪問:PHP+Mysql網站源碼學習請訪問
http://www.erdangjiade.com/