php 实现微信开发获取用户信息

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 来实现获取微信用户信息的功能。使用微信开发可以为我们的品牌或者产品带来更多的曝光和客户量,希望这篇文章能够对大家有所帮助。