1. 简介
微信开发是现在很多公司所使用的一项技术,因为微信拥有巨大的用户基础,对于想要推销自己的品牌或者产品来说是非常适合的。在微信开发中,我们需要获取用户的信息来能够更好地对其进行定制化的服务,下面我们就来介绍一下如何使用 PHP 来获取微信用户信息。
2. 获取 access_token
在开始获取用户信息之前,我们需要先获取 access_token,因为在调用微信接口时,需要使用 access_token。获取方式如下:
2.1 准备工作
在获取 access_token 之前,需要先去微信公众平台申请一个 AppID 和 AppSecret,这两个参数都是需要在获取 access_token 时使用的。申请完之后,在微信公众平台的开发者中心可以找到对应的 AppID 和 AppSecret。这里需要注意一下,不同的公众号 AppID 和 AppSecret 是不一样的。
2.2 获取 access_token
获取 access_token 的方式有很多种,这里介绍其中一种。首先构造一个 URL 如下:
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
其中,APPID 和 APPSECRET 分别替换为你所申请到的 AppID 和 AppSecret,然后使用 curl 或者 file_get_contents 等函数来获取返回结果,如下所示:
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
$res = file_get_contents($url);
$res = json_decode($res, true);
$access_token = $res['access_token'];
这样,我们就成功获取了 access_token。
3. 获取用户信息
获取用户信息也需要调用微信接口,其中包括了用户的基本信息和用户所在城市等信息。
3.1 准备工作
在获取用户信息之前,需要先让用户授权,也就是让用户同意授权给你的应用程序,这个过程叫做引导用户。用户同意授权后,会将用户重定向到你所指定的 URL 中,并在 URL 中带上一个参数 code,这个 code 就是用来获取用户信息的一个凭证。
3.2 引导用户授权
引导用户授权的方式有很多种,这里我们介绍其中的一种,使用微信的 JS SDK 来实现。
首先需要在 HTML 中引入 JS SDK,代码如下:
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
然后在 JS 中配置 appId、timestamp、nonceStr、signature 等参数,代码如下:
wx.config({
debug: false,
appId: 'APPID',
timestamp: <?php echo $timestamp;?>,
nonceStr: '<?php echo $noncestr;?>',
signature: '<?php echo $signature;?>',
jsApiList: ['chooseWXPay']
});
其中,appId 需要替换为你所申请的 AppID,$timestamp、$noncestr、$signature 可以从服务器获取,这里不做详细介绍。
接下来,在 JS 中定义一个函数,用来引导用户授权,代码如下:
function wxAuth() {
wx.ready(function () {
wx.checkJsApi({
jsApiList: [
'getLocation',
'chooseWXPay'
],
success: function (res) {
if (res.checkResult.getLocation && res.checkResult.chooseWXPay) {
wx.getLocation({
success: function (res) {
window.location.href = "http://your.domain.com/?code=" + res.code;
},
cancel: function (res) {},
fail: function (res) {}
});
}
}
});
});
}
在用户点击授权按钮时,调用 wxAuth() 函数即可引导用户授权。
3.3 获取用户信息
在用户同意授权后,会将用户重定向到指定的 URL 中,带上一个参数 code,我们可以使用这个 code 来获取用户信息。获取方式如下:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=APPSECRET&code=CODE&grant_type=authorization_code
其中,APPID、APPSECRET、CODE 替换为实际的值,使用 curl 或者 file_get_contents 等函数获取到返回的结果,其中包括了 access_token 和 openid 等参数,然后通过下面的接口获取用户信息:
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
其中,ACCESS_TOKEN 和 OPENID 分别为上面获取到的参数,同样使用 curl 或者 file_get_contents 等函数来获取到返回的结果,如下所示:
$url = "https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid'.$openid";
$res = file_get_contents($url);
$res = json_decode($res, true);
$username = $res['nickname'];
$avatar = $res['headimgurl'];
从上面的代码中可以看到,我们成功获取了用户的昵称和头像地址,这些信息可以用于制定定制化的服务。
4. 总结
在本文中,我们介绍了如何使用 PHP 来实现获取微信用户信息的功能。使用微信开发可以为我们的品牌或者产品带来更多的曝光和客户量,希望这篇文章能够对大家有所帮助。