您的位置:首页 > 移动开发 > 微信开发

微信开发(三)获取用户信息,同时整理代码

2014-12-03 21:19 603 查看
概述:

获得与公众号进行交互的用户信息

步骤:

1. 获得AccessToken

2. 获得OpenID

3. 获得用户信息

实现:

1. 将配置参数封装起来:

创建config.php文件,内容如下:

//填写自己公众号的appid
define("APPID", "***********");
//填写自己公众号的secret
define("APPSECRET", "**************************");
//定义全局Token
define("TOKEN", "hhwxjj");
2. 将功能函数封装起来,内容如下:
<?php
function getUserNickName($openId = null){
if(empty($openId))return "OpenId is Empty";
$accessToken = getAccessToken();
//构造Get请求URL
$url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token={$accessToken}&openid={$openId}";
//通过CURL提交GET请求
$result = https_request($url);
//解码JSON数据
$strjson=json_decode($result);
//获得Token
$token = $strjson;
return $token;
}

function getAccessToken(){
//构造Get请求URL
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".APPID."&secret=".APPSECRET;
//通过CURL提交GET请求
$result = https_request($url);
//解码JSON数据
$strjson=json_decode($result);
//获得Token
$token = $strjson->access_token;
return $token;
}

function https_request($url, $data = null, $method = 'GET'){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if($method != 'GET'){
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
return $result;
}
?>
3. 建立用户操作类

建立文件GetUserInfo.php, 内容如下:

<?php
class GetUserInfo{
private $openId;

public function __construct($openId){
$this->openId = $openId;
}

public function getUserInfo(){
$usenikename = getUserNickName($this->openId);
return $usenikename;
}
}
?>


4. 在入口文件index.php中引入上述文件,并增加操作响应来测试:

require('config.php');
require('util.php');
require('GetUserInfo.php');
...
<pre name="code" class="php">//文本消息响应信息
private function responseText($object)
{
$getUserInfo = new GetUserInfo($object->FromUserName);

$funcFlag = 0;
$contentStr = "你发送的内容为:".$object->Content.$getUserInfo->getUserInfo();
$resultStr = $this->transmitText($object, $contentStr, $funcFlag);
return $resultStr;
}


5. 测试:

在微信中向公众号发送任意信息,会回复:“您发送的信息是:[收到的信息][用户昵称]”


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: