PHP获取微信openid 简单教程
获取code
https://open.weixin.qq.com/connect/oauth2/authorize?appid=这里是你的公众号的APPID&redirect_uri=http://www.xx.com/getcode&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect
用户点击确认登录,自动跳转下面地址得到code
http://www.xx.com/getcode 这个是你自己的跳转地址
http://www.xx.com/getcode?code=0064f7afef7af7b395147bfe8b51f7bf&state=123
后面的这个 ?code=……123 是微信自动跳转添加的,不是你自己加的
下面是PHP语言,写在getcode这个页面里
1
2
3
4
5
|
$code = $_GET [ 'code' ]; //获取code $weixin = file_get_contents ( "https://api.weixin.qq.com/sns/oauth2/access_token?appid=这里是你的APPID&secret=这里是你的SECRET&code=" . $code . "&grant_type=authorization_code" );//通过code换取网页授权access_token $jsondecode = json_decode( $weixin ); //对JSON格式的字符串进行编码 $array = get_object_vars( $jsondecode ); //转换成数组 $openid = $array [ 'openid' ]; //输出openid |
$appid
=
"公众号在微信的appid"
;
$secret
=
"公众号在微信的app secret"
;
$code
=
$_GET
[
"code"
];
$get_token_url
=
'https://api.weixin.qq.com/sns/oauth2/access_token?appid='
.
$appid
.
'&secret='
.
$secret
.
'&code='
.
$code
.
'&grant_type=authorization_code'
;
$ch
= curl_init();
curl_setopt(
$ch
,CURLOPT_URL,
$get_token_url
);
curl_setopt(
$ch
,CURLOPT_HEADER,0);
curl_setopt(
$ch
, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt(
$ch
, CURLOPT_CONNECTTIMEOUT, 10);
$res
= curl_exec(
$ch
);
curl_close(
$ch
);
$json_obj
= json_decode(
$res
,true);
//根据openid和access_token查询用户信息
$access_token
=
$json_obj
[
'access_token'
];
$openid
=
$json_obj
[
'openid'
];
$get_user_info_url
=
'https://api.weixin.qq.com/sns/userinfo?access_token='
.
$access_token
.
'&openid='
.
$openid
.
'&lang=zh_CN'
;
$ch
= curl_init();
curl_setopt(
$ch
,CURLOPT_URL,
$get_user_info_url
);
curl_setopt(
$ch
,CURLOPT_HEADER,0);
curl_setopt(
$ch
, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt(
$ch
, CURLOPT_CONNECTTIMEOUT, 10);
$res
= curl_exec(
$ch
);
curl_close(
$ch
);
//解析json
$user_obj
= json_decode(
$res
,true);
$_SESSION
[
'user'
] =
$user_obj
;
print_r(
$user_obj
);
PHP获取微信openid 简单教程的更多相关文章
- 获取微信openID 的步骤
获取微信openid的步骤:1.进入-->判断openID是否为空: 空-->$url=urlencode("http://xxx/xxx.php");//回调链接 $ ...
- 微信公众号开发系列-获取微信OpenID
在微信开发时候在做消息接口交互的时候须要使用带微信加密ID(OpenId),下面讲讲述2中类型方式获取微信OpenID.接收事件推送方式和网页授权获取用户基本信息方式获取. 1.通过接收被动消息方式获 ...
- php获取微信openid
使用微信接口,无论是自动登录还是微信支付我们首先需要获取的就是openid,获取openid的方式有两种,一种是在关注的时候进行获取,这种订阅号就可以获取的到,第二种是通过网页授权获取,这种获取需要的 ...
- PHP获取用户是否关注公众号。获取微信openid和用户信息
<?php /* * 首先填写授权地址为当前网址 * 将$appid和$secret参数替换成自己公众号对应参数,需要外网可以访问服务器环境测试 */ header("Content- ...
- 微信开发获取用户OpenID
第一次开发微信版网页,对最重要的获取微信OpenId,特此记录下来 1.首先得有appid和appsecret . public class WeiXin { public static string ...
- MVC 微信开发获取用户OpenID
第一次开发微信版网页,对最重要的获取微信OpenId,特此记录下来 1.首先得有appid和appsecret . public class WeiXin { public static string ...
- asp.net core 微信获取用户openid
获取openid流程为首先根据微信开发参数构造AuthorizeUrl认证链接,用户跳转到该链接进行授权,授权完成将跳转到回调页(首次认证需要授权,后面将直接再跳转至回调页),此时回调页中带上一个GE ...
- 微信公众平台开发—利用OAuth2.0获取微信用户基本信息
在借鉴前两篇获取微信用户基本信息的基础下,本人也总结整理了一些个人笔记:如何通过OAuth2.0获取微信用户信息 1.首先在某微信平台下配置OAuth2.0授权回调页面: 2.通过appid构造url ...
- 基于注解的实现获取微信openId1
最近在弄微信支付,网站有好几种不同类型的"商品",去每个支付的页面都需要获取用户的OpenId,而且获取openid要在微信的浏览器去发送请求,如果有三个不同类型的付款页面就需要写 ...
随机推荐
- 客户端与服务端Post报文构造请求及Http Post与Get请求方法
客户端 namespace Client.Controllers { public class HomeController : Controller { // // GET: /Home/ publ ...
- 辛星跟您玩转vim第二节之用vim命令移动光标
首先值得一提的是,我的vim教程pdf版本号已经写完了,大家能够去下载.这里是csdn的下载地址:csdn下载.假设左边的下载地址挂掉了,也能够自行在浏览器以下输入例如以下地址进行下载:http:// ...
- Delphi7 Just In Time debugger 与VS冲突
这是设定系统当前调试器的,你可以在注册表中自己设置一下,位置是:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDe ...
- Backup and Recovery Basics1
一.Backup and Recovery Overview 1.Backup and Recovery Overview 1.1 What is Backup and Recovery? 一般,备份 ...
- hdu 4821 字符串hash+map判重 String (长春市赛区I题)
http://acm.hdu.edu.cn/showproblem.php?pid=4821 昨晚卡了非常久,開始TLE,然后优化了之后,由于几个地方变量写混.一直狂WA.搞得我昨晚都失眠了,,. 这 ...
- MySql多对多关系中外键的应用
业务需求:用户表r_user保存用户名等信息.现需要给每个用户设置工作基地,一个用户可以有多个工作基地,多个用户也可以有一个工作基地,即多对多关系.(外键,若有两个表A,B,C是A的主键,而B中也有C ...
- 234. Palindrome Linked List【easy】
234. Palindrome Linked List[easy] Given a singly linked list, determine if it is a palindrome. Follo ...
- SQL中使用视图的优点和缺点是什么
视图的优点与缺点 在程序设计的时候必须先了解视图的优缺点,这样可以扬长避短,视图具有如下的一些优点: ● 简单性.视图不仅可以简化用户对数据的理解,也可以简化他们的操作.那些被经常使用的查询可以被定义 ...
- Sphinx 安装与使用(1)-- 安装Coreseek
Coreseek就是Sphinx的中文版 官方网站 http://www.coreseek.cn/ 一.安装 1.修改LANG 永久修改: vim /etc/locale.conf LANG=&quo ...
- springMVC对简单对象、Set、List、Map的数据绑定和常见问题.
算了,就不粘贴了,到原文去查看吧! springMVC对简单对象.Set.List.Map的数据绑定和常见问题.