php获取所有微信号,PHP 微信公众号开发 - 获取用户信息

项目微信公众号开发,记录获取用户微信号信息,和用户openid

1,登录微信公众平台

2,获取公众号开发信息

登陆之后在 开发->基本配置

7c347e70f44dfee9c9270ca813416340.png

3,设置IP白名单

在这里添加服务器ip地址,并点击确认修改

e24abd4d942f192693e8cc0bc99ecd67.png

4,微信接口类

// 字符编码

header("Content-Type:text/html; charset=utf-8");

// 微信接口类

class WeChat{

private static $appid;

private static $appsecret;

function __construct(){

self::$appid = ''; // 开发者ID(AppID)

self::$appsecret = ''; // 开发者密码(AppSecret)

}

// 微信授权地址

public static function getAuthorizeUrl($url){

$url_link = urlencode($url);

return "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" . self::$appid . "&redirect_uri={$url_link}&response_type=code&scope=snsapi_base&state=1#wechat_redirect";

}

// 获取TOKEN

public static function getToken(){

$urla = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . self::$appid . "&secret=" . self::$appsecret;

$outputa = self::curlGet($urla);

$result = json_decode($outputa, true);

return $result['access_token'];

}

/**

* getUserInfo 获取用户信息

* @param string $code 微信授权code

* @param string $weiwei_token Token

* @return array

*/

public static function getUserInfo($code, $weiwei_token){

$access_token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" . self::$appid . "&secret=" . self::$appsecret . "&code={$code}&grant_type=authorization_code";

$access_token_json = self::curlGet($access_token_url);

$access_token_array = json_decode($access_token_json, true);

$openid = $access_token_array['openid'];

$new_access_token = $weiwei_token;

//全局access token获得用户基本信息

$userinfo_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token={$new_access_token}&openid={$openid}";

$userinfo_json = self::curlGet($userinfo_url);

$userinfo_array = json_decode($userinfo_json, true);

return $userinfo_array;

}

/**

* addLog 日志记录

* @param string $log_content 日志内容

*/

public static function addLog($log_content = ''){

$data = "";

$data .= "DATE: [ " . date('Y-m-d H:i:s') . " ]\r\n";

$data .= "INFO: " . $log_content . "\r\n\r\n";

file_put_contents('/wechat.log', $data, FILE_APPEND);

}

/**

* 发送get请求

* @param string $url 链接

* @return bool|mixed

*/

private static function curlGet($url){

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$output = curl_exec($curl);

if(curl_errno($curl)){

return 'ERROR ' . curl_error($curl);

}

curl_close($curl);

return $output;

}

/**

* 发送post请求

* @param string $url 链接

* @param string $data 数据

* @return bool|mixed

*/

private static function curlPost($url, $data = null){

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

if(!empty($data)){

curl_setopt($curl, CURLOPT_POST, 1);

curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

}

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$output = curl_exec($curl);

curl_close($curl);

return $output;

}

}

/**

* get_page_url 获取完整URL

* @return url

*/

function get_page_url($type = 0){

$pageURL = 'http';

if($_SERVER["HTTPS"] == 'on'){

$pageURL .= 's';

}

$pageURL .= '://';

if($type == 0){

$pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];

}else{

$pageURL .= $_SERVER["SERVER_NAME"];

}

return $pageURL;

}

// 获取用户openid

// 微信接口类

$WeChat = new WeChat();

if(empty($_GET['code']) || !isset($_GET['code'])){

// 通过授权获取code

$url = get_page_url();

$authorize_url = $WeChat->getAuthorizeUrl($url);

header("Location:{$authorize_url}"); // 重定向浏览器

exit();

}else{

// 获取微信用户信息

$code = $_GET['code'];

$weiwei_token = $WeChat->getToken(); // 获取微信token

$user_info = $WeChat->getUserInfo($code, $weiwei_token);

print_r($user_info); // 用户微信信息

print_r($user_info['openid']); // 用户openid

}

PHP之路——微信公众号授权获取用户信息

官方文档链接:http://mp.weixin.qq.com/wiki/4/9ac2e7b1f1d22e9e57260f6553822520.html /** * 获取code */ public f ...

PHP实现微信公众号授权获取用户信息

class WxAuthModel extends BaseModel { var $appId = APPID; var $appSecret = APPSECRET; /*微信x小程序,获取微信o ...

和小猪一起搞微信公众号开发—获取Access_token

前言 前一篇小猪和大家分享了如何回复用户的简单文本,这一篇我们来看看如何获取Access_token 介绍 在前一篇中,我们实现了这么一个简单的过程:用户发送一个文本到公众号后,公众号在该文本后面加上 ...

C#微信公众号开发——获取access_token

access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.正常情况下access_token有效期为7200秒(两个小时),微信获取access_token接 ...

微信公众号开发 获取openid时报错40029 invalid code 问题的解决

{"errcode":40029,"errmsg":"invalid code, hints: [ req_id: aELCyY4ce-WOFLAa ...

微信公众号开发——获取access_token(PHP版)

access_token是调用微信接口的唯一凭据,每两小时刷新一次,我们需要每两小时就获取一次access_token. <?php class TokenUtil { //获取access_t ...

PHP 微信公众号开发 - 消息推送

项目微信公众号开发,需要做用户消息推送,记录下来以便日后使用 1,接上一篇文章,可以查看如何获取用户openid PHP 微信公众号开发 - 获取用户信息 2,添加模板消息 3,查看模板详情 根据模板 ...

C&num;微信公众号开发--网页授权&lpar;oauth2&period;0&rpar;获取用户基本信息一

前言 微信网页授权共分为两种方式:snsapi_base.snsapi_userinfo. snsapi_base需要关注公众号,获取用户信息时不弹出用户授权界面. snsapi_userinfo是在 ...

C&num;微信公众号开发-高级接口-之网页授权oauth2&period;0获取用户基本信息(二)

C#微信公众号开发之网页授权oauth2.0获取用户基本信息(一) 中讲解了如果通过微信授权2.0snsapi_base获取已经关注用户的基本信息,然而很多情况下我们经常需要获取非关注用户的信息,方法 ...

随机推荐

支付宝WAP支付接口开发&lpar;Node&sol;Coffee语言&rpar;

此博客不更新很久了, 更新的文档在这, 有兴趣到这里围观: http://neutra.github.io/2013/%E6%94%AF%E4%BB%98%E5%AE%9DWAP%E6%94%AF%E ...

iOS多线程实现1-pthread

1 操作系统.进程.线程简单介绍 现在的程序都是在操作系统上跑,很少有裸机的,而且大部分的嵌入式应用也都支持操作系统,当然还有一些很低端的嵌入式设备没有操作系统. iPhone手机跑的是iOS操作系统 ...

如何在editplus中配置ctags&quest;

首先要说明的是, 在editPlus中的ctags功能确实是没有 vs vim等中的好用. 最主要的原因 是它不能直接在文件中 跳转. 而是要通过一个另外的框来实现, 这就大大的降低了跳转的速度和使用 ...

Codeforces Round &num;330 &lpar;Div&period; 2&rpar;

C题题目出错了,unrating,2题就能有很好的名次,只能呵呵了. 水 A - Vitaly and Night /***************************************** ...

Delphi TcxTreeList 怎么设置分组

Delphi 的TcxTreeList控件设置按种类分组,操作如下: 1. 在TcxTreeList控件中双击,打开 Bands 属性,在这里面建需要分的组,在Captions->Text 输入 ...

ural 1091&period; Tmutarakan Exams(容斥原理)

1091. Tmutarakan Exams Time limit: 1.0 secondMemory limit: 64 MB University of New Tmutarakan trains ...

c&num;使用Stopwatch来计算时间间隔

今天要记录一个接口的耗时情况,就要求去写一段测试各个代码运行时间的方法,于是就加了这么一段代码.原来的做法是在代码执行之前和之后获取系统时间,然后相减.被改成了使用c#里的Stopwatch来计算时间 ...

多个Tomcat之间实现Session共享

对于高访问量.高并发量的网站或web应用来说,目前最常见的解决方案应该就是利用负载均衡进行server集群,例如比较流行的nginx+memcache+tomcat.集群之后比如我们有N个Tomcat ...

python3:定时执行自动化测试脚本

转载请注明出处:https://www.cnblogs.com/shapeL/p/9172990.html 1.windows任务计划定时执行脚本 (1)创建 .bat 文件,执行脚本的命令(inte ...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值