这篇文章主要为大家分享了PHP实现微信网页授权开发教程,开发者可以通过授权后获取用户的基本信息,感兴趣的小伙伴们可以参考一下

微信网页授权是服务号才有的高级功能,开发者可以通过授权后获取用户的基本信息;在此之前,想要获取消息信息只能在用户和公众号交互时根据openid获取用户信息;而微信网页授权可在不需要消息交互,也不需要关注的情况下获取用户的基本信息。

微信网页授权时通过OAuth2.0完成的,整个过程分为三步:用户授权,获取code;

根据code获取access_token【可通过refresh_token刷新获取较长有效期】

通过access_token和openid获取用户信息

对微信网页授权过程做了简单封装:

/**

* 微信授权相关接口

*/

class Wechat {

//高级功能-》开发者模式-》获取

private $app_id = 'xxx';

private $app_secret = 'xxxxxxx';

/**

* 获取微信授权链接

*

* @param string $redirect_uri 跳转地址

* @param mixed $state 参数

*/

public function get_authorize_url($redirect_uri = '', $state = '')

{

$redirect_uri = urlencode($redirect_uri);

return "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$this->app_id}&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_userinfo&state={$state}#wechat_redirect";

}

/**

* 获取授权token

*

* @param string $code 通过get_authorize_url获取到的code

*/

public function get_access_token($app_id = '', $app_secret = '', $code = '')

{

$token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$this->app_id}&secret={$this->app_secret}&code={$code}&grant_type=authorization_code";

$token_data = $this->http($token_url);

if($token_data[0] == 200)

{

return json_decode($token_data[1], TRUE);

}

return FALSE;

}

/**

* 获取授权后的微信用户信息

*

* @param string $access_token

* @param string $open_id

*/

public function get_user_info($access_token = '', $open_id = '')

{

if($access_token && $open_id)

{

$info_url = "https://api.weixin.qq.com/sns/userinfo?access_token={$access_token}&openid={$open_id}&lang=zh_CN";

$info_data = $this->http($info_url);

if($info_data[0] == 200)

{

return json_decode($info_data[1], TRUE);

}

}

return FALSE;

}

public function http($url, $method, $postfields = null, $headers = array(), $debug = false)

{

$ci = curl_init();

/* Curl settings */

curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);

curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 30);

curl_setopt($ci, CURLOPT_TIMEOUT, 30);

curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);

switch ($method) {

case 'POST':

curl_setopt($ci, CURLOPT_POST, true);

if (!empty($postfields)) {

curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);

$this->postdata = $postfields;

}

break;

}

curl_setopt($ci, CURLOPT_URL, $url);

curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);

curl_setopt($ci, CURLINFO_HEADER_OUT, true);

$response = curl_exec($ci);

$http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);

if ($debug) {

echo "=====post data======\r\n";

var_dump($postfields);

echo '=====info=====' . "\r\n";

print_r(curl_getinfo($ci));

echo '=====$response=====' . "\r\n";

print_r($response);

}

curl_close($ci);

return array($http_code, $response);

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助。

php怎么开发微信网页,PHP实现微信网页授权开发的步骤相关推荐

  1. 微信开放JS-SDK,助力网页开发[转自微信官方]

    为什么80%的码农都做不了架构师?>>>    微信公众平台今日面向开发者开放微信内网页开发工具包(微信JS-SDK). 通过微信JS-SDK提供的11类接口集,开发者不仅能够在网页 ...

  2. (微信公众号开发《一》OAuth2.0网页授权认证获取用户的详细信息,实现自动登陆)http://blog.csdn.net/liaohaojian/article/details/70175835

    从接触公众号到现在,通过不断积累学习,对如何调用微信提供接口有了一定的见解.当然在开发过程中遇到很多问题,现在把部分模块功能在这备案一下,做个总结也希望能给其他人帮助 工欲善其事,必先利其器,先看看开 ...

  3. C#微信公众号开发 -- (七)自定义菜单事件之VIEW及网页(OAuth2.0)授权

    通俗来讲VIEW其实就是我们在C#中常用的a标签,可以直接在自定义菜单URL的属性里面写上需要跳转的链接,也即为单纯的跳转. 但更多的情况下,我们是想通过VIEW来进入指定的页面并进行操作. 举一个简 ...

  4. 微信网页开发教程 php,PHP实现微信网页授权开发教程,php授权教程_PHP教程

    PHP实现微信网页授权开发教程,php授权教程 微信网页授权是服务号才有的高级功能,开发者可以通过授权后获取用户的基本信息:在此之前,想要获取消息信息只能在用户和公众号交互时根据openid获取用户信 ...

  5. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

  6. Java后台微信点餐小程序开发最新版笔记,Springboot+Mysql+Freemarker+Bootstrap+微信小程序实现扫码点餐小程序,包含语音提示,微信消息推送,网页管理后台

    由于之前的Java后台微信点餐小程序有些知识点过时了,所以今天重新出一版,把里面过时的知识点更新下 前五章是部署笔记,后面是知识点的详细讲解,大家可以先看部署笔记,部署起来后,再跟着详细知识学习. 第 ...

  7. Shopro商城 高级版 Fastadmin和Uniapp进行开发的多平台商城(微信公众号、微信小程序、H5网页、Android-App、IOS-App)

    Shopro商城无加密的开源源码(可用于自营+外包项目(多主体).可用于外包定制开发项目) shopro 商城,一款基于 uni-app 的前端模板商城.目前适配了(小程序+app+h5+公众号). ...

  8. Shopro商城,基于Fastadmin和Uniapp进行开发的多平台(微信公众号、微信小程序、H5网页、Android-App、IOS-App)购物商城

    Shopro商城 基于Fastadmin和Uniapp进行开发的多平台(微信公众号.微信小程序.H5网页.Android-App.IOS-App)购物商城,拥有强大的店铺装修.小程序直播.自定义模板. ...

  9. 微信昵称乱码 mysql_微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案...

    微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案如下: 问题产生原因:由于数据库及属性一致设为utf8,而utf8只支持1-3个字节.当用户昵称为emoji表情时,获取用户基本信 ...

最新文章

  1. 重庆理工大学计算机学院学概率论,重庆理工大学概率论试卷及答案.doc
  2. 【opencv】20.直方图均衡化的数学原理
  3. 2021“MINIEYE杯”中国大学生算法设计超级联赛(1)zoto(二维数颜色)
  4. C/C++获取二维数组行列数
  5. Spring学习笔记002 - AOP
  6. 95-872-060-源码-CEP-匹配事件提取
  7. 从头搭建drbd+openfiler+corosync (二)
  8. Linux_Shell符号及各种解释对照表
  9. USB转串口线突然不好用了
  10. messagebox函数弹窗后根据选择的YES或者NO做出不一样的操作
  11. CoppeliaSim用户手册中文翻译版(二)
  12. 斐讯n1刷鸿蒙系统,斐讯N12.28成功刷机 方法分享给大家
  13. 遗传算法求解带时间窗的VRP问题(python)
  14. 人工神经网络算法的应用,人工神经网络发展历史
  15. dyn_threshold 算子
  16. Pos应用与扫盲一路通
  17. 微信公众号服务器管理员权限,简析公众号管理员和运营者的区别
  18. RTL8188CUS驱动程序编译步骤
  19. 一首同音叠字诗“石室诗士施氏”
  20. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早晨又将剩下 的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时, 就只

热门文章

  1. vue 多种方法实现名字拼接
  2. JJWT:JWS, JWE, JWK, JWA, JWT
  3. html把保留图片改为提交按钮,如何制作图片按钮,并为图片按钮添加提交表单和重置表单功能...
  4. 电子取证之服务器取证,本人小白第一次从pc取证到服务器,这里有一套例题分享给大家,所有解析我都尽可能全面具体,希望与各位同仁一起学习。(非常推荐!)
  5. java 中 Native.loadLibrary 不能加载 jar 包中库文件的解决方案
  6. Android打包混淆----APP加密防破解 + 重新签名
  7. (幼儿园毕业)Javascript小学级随机生成四则运算
  8. 企业在项目中采用工时管理系统的好处
  9. VSCode这13款插件也太好用了
  10. java四大名著知乎_四大名著放到世界文学史上,各处于怎样的地位?