php 微信公众号开发之 四 页面跳转取得用户信息

image.png

潇湘博客 2018-05-17 21:00:47   779   收藏

分类专栏: PHP基础技术

版权

index.php

<?
 
 //scope=snsapi_base 实例
$appid='appid';
$redirect_uri = urlencode('http://wx.xswkj.com/getUserInfo.php');
$url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
header("Location:".$url);
?>


getinfo.php


<?
header("Content-type: text/html; charset=utf-8"); 
//ID 密钥  
$appid = "appid";  
$appsecret = "appsecret";  
$code = $_GET["code"];
 
//第一步:取全局access_token
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
//$token = getJson($url);
$jsoninfo = https_request($url);  
//$jsoninfo = json_decode($output, true);  
 //返回 一个数组  
//[html] view plain copy
//7200  
//var_dump($jsoninfo);  
//[html] view plain copy
$access_token = $jsoninfo["access_token"];  
 
 
 
 
 
//第二步:取得openid
$oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$appsecret&code=$code&grant_type=authorization_code";
//$oauth2 = getJson($oauth2Url);
 $oauth2 = https_request($oauth2Url); 
 //$oauth2 = json_decode($oauth2, true);    
//第三步:根据全局access_token和openid查询用户信息  
//$access_token = $token["access_token"];  
$openid = $oauth2['openid'];  
$get_user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN";
$userinfo = https_request($get_user_info_url);
//$userinfo = json_decode($userinfo, true); 
//打印用户信息
echo "欢迎你:".$userinfo['nickname']."登录到我的公众号。</br></br></br></br>";
echo "你的openid是:".$userinfo['openid']."</br></br></br></br>";
  print_r($userinfo);
 
function getJson($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($ch);
    curl_close($ch);
//return $output;
    return json_decode($output, true);
}
 
function https_request($url,$data = null){  
    $curl = curl_init();  
//$data=iconv('GB2312','UTF-8',$data);
$encode = mb_detect_encoding($data, array('ASCII','UTF-8','GB2312','GBK','BIG5')); 
if ($encode!='UTF-8')
{
$data=iconv('GB2312','UTF-8',$data);
}
 
 
 echo $data;
  curl_setopt($curl, CURLOPT_HTTPHEADER, array("Accept: application/json", "Content-Type: text/xml; charset=utf-8"));
 
    curl_setopt($curl, CURLOPT_URL, $url);  
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);  
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);  
    if (!empty($data)){  
        curl_setopt($curl, CURLOPT_POST, 1);  
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);  
    }  
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  
    $output = curl_exec($curl);  
    curl_close($curl);  
   // return $output;  
return json_decode($output, true);
}  
 
?>


————————————————

版权声明:本文为CSDN博主「潇湘博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/fkedwgwy/java/article/details/80356807


Last modification:June 21, 2020
如果觉得我的文章对你有用,请随意赞赏