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

本文介绍了一种通过PHP实现从微信公众号获取用户信息的方法。主要包括获得AccessToken、OpenID及用户详细信息的过程。通过构建配置文件、功能函数及用户操作类等步骤实现了与微信API的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述:

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

 

步骤:

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');
...
    //文本消息响应信息
	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. 测试:
在微信中向公众号发送任意信息,会回复:“您发送的信息是:[收到的信息][用户昵称]”

 

 

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铭记北宸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值