php获取微信用户的openid

思路:

1、引导用户进入授权页面同意授权,获取code
2、通过code换取网页授权access_token(与基础支持中的access_token不同)
3、如果需要,开发者可以刷新网页授权access_token,避免过期
4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)
测试代码:

1.微信访问此文件;

<?php 
$APPID='微信公众号的appid';
$REDIRECT_URI='<span style="font-family: Arial, Helvetica, sans-serif;">http://www.test.net/callback.php</span><span style="font-family: Arial, Helvetica, sans-serif;">';</span>
$scope='snsapi_base';
//$scope='snsapi_userinfo';//需要授权
$url='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$APPID.'&redirect_uri='.urlencode($REDIRECT_URI).'&response_type=code&scope='.$scope.'&state=123#wechat_redirect';
header("Location:".$url);
?>

2.在此回调文件中获取用户信息;

<?php
//http://www.test.net/callback.php
$appid = "<span style="font-family: Arial, Helvetica, sans-serif;">微信公众号的appid</span><span style="font-family: Arial, Helvetica, sans-serif;">"; </span>
$secret = "<span style="font-family: Arial, Helvetica, sans-serif;">微信公众号的appsecret</span><span style="font-family: Arial, Helvetica, sans-serif;">"; </span>
$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';
$json=json_decode(file_get_contents("$get_token_url"));
$access_token = $json->access_token; 
$openid = $json->openid; 
$get_user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN'; 
$userInfo=json_decode(file_get_contents("$get_user_info_url"));
//$_SESSION['user'] = $user_obj; 
print_r($userInfo->openid);
?>

注:
file_get_contents函数需要在php.ini文件中启用,方法如下:
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px; border: 0px; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">在php.ini中找到并修改</p><p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px; border: 0px; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">extension=php_openssl.dll</p><p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px; border: 0px; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">allow_url_include = On</p>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值