PHP API微信网页授权接口实现
这两天在网上看到关于微信网页授权的文档,闲着没事就来做做
首先说说需要的材料
1. 一个可访问的域名或IP地址
2.微信公众平台(一定要先去https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index里面设置网页授权获取用户基本信息的网页账号)
3.草料二维码制作
首先说明一下,我用的是laravel框架
行,不废话了,代码直接上
/***当用户同意授权(授权成功)时,微信会回调到$redirect_url这个链接,并且带上一个有效时间为五分钟的code(code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。)*/public function getUserDetail(){$redirect_url=urlencode("https://www.cacov.cn/crontab/getUserInfo");$url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$this->appid&redirect_uri=$redirect_url&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect";return redirect($url);}/***通过code换取网页授权access_token*拉取用户信息(需scope为 snsapi_userinfo---上一个方法中设置)*/public function getUserInfo(){$code=$_GET['code'];$url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=$this->appid&secret=$this->appsecret&code=$code&grant_type=authorization_code";$res=$this->my_curl_wx_api($url,'GET');$access_token=$res['access_token'];//网页授权的access_token$openid=$res['openid'];//用户的openid//拉取用户的详细信息$user_url="https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";$user_res=$this->my_curl_wx_api($user_url,'GET');print_r($user_res);}/*** @param $url* @param string $type* @param array $data* @return mixed* 接口请求*/protected function my_curl_wx_api($url, $type = 'POST', $data = array()){$ch = curl_init();curl_setopt($ch, CURLOPT_URL,$url);curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $type);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);curl_setopt($ch, CURLOPT_HEADER,0);curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);curl_setopt($ch, CURLOPT_AUTOREFERER, 1);if($data){curl_setopt($ch, CURLOPT_POSTFIELDS, $data);}//curl_setopt ( $ch, CURLOPT_SAFE_UPLOAD, false);$result = curl_exec($ch);curl_close($ch);return json_decode($result, true);}完成上面的步骤后,就可以去草料二维码里面将getUserDetail方法的服务器位置生成一个二维码,然后用微信扫一下就好了。
PHP API微信网页授权接口实现相关推荐
- php 微信获取code,微信网页授权接口为什么获取不到code(已解决)
一.调用第三方接口的方法 function https_request($url,$type='get',$res='json',$data = ''){ //1.初始化curl $curl = cu ...
- 后盾php文档,后盾PHP微信网页授权接口技术文档
为什么要学习网页授权接口 如果用户在微信接口通过微信客户端中访问第三方网页,就可以通过网页授权接口来获取用户数据,就是在获取到用户的唯一openid后实现登陆状态 几乎所有的微信站点业务逻辑都需要用户 ...
- Java微信网页授权开发
1.微信网页授权access_token与普通access_token区别 有效期:两者有效时间都是 7200s: 使用范围:通过网页授权获得的access_token,只能获取到对应的微信用户信息, ...
- 微信遇到特殊服务器,解决微信网页授权,出现errcode:40163,errmsg:codebeenused,看似微信访问了2次这个回调接口的问题...
先说说自己理解的微信机制: 微信内访问自己服务器的页面,如果访问出错,微信就会认为是微信自身的问题,那么他就会开启另外一个IP来访问这个页面(什么上海的IP,深圳的IP不等),再把访问结果发回用户端, ...
- Nodejs实现微信网页授权及正确配置JS-SDK接口
原文链接:<Nodejs实现微信网页授权及正确配置JS-SDK接口>- 陈帅华 帅华君将在本文介绍基于Nodejs实现微信网页授权以及如何正确在前后端配置JS-SDK接口. 微信网页授权 ...
- PHP实现微信公众平台开发---提升篇(网页授权接口)
网页授权接口(类似于浏览器通过cookie|session标识客户 微信端通过openid标识) 接口类型(通过网页授权 获取openid) snsapi_base:基本类型 静默授权并自动跳转到回调 ...
- 微信公众平台开发--微信网页授权
在微信公众号开发中实现微信用户自动登陆第三方的功能: 条件: 1.公众号必须为微信认证服务号: 2.在公众号接口权限->网页账号 网页授权获取用户基本信息 修改需要OAuth2.0鉴权的域名: ...
- 微信网页授权,获取微信code,获取access_tocken,获取用户信息
微信开发中,经常有这样的需求:获得用户头像.绑定微信号给用户发信息.. 那么实现这些的前提就是授权! 1.配置安全回调域名: 在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的" ...
- java : 实现微信网页授权,超详细!
背景 使用微信公众号实现网页授权. 开始 1.微信网页授权的官方文档 微信网页授权 2.申请微信测试公众号 从红框进入申请页面. 填写必要的信息,注意上图红框部分的域名需要可以外网能够访问,微信需要发 ...
- 微信公众号开发(一) 微信网页授权登录
微信网页授权登录 前期准备 授权登录 获取微信数据 处理授权拒绝 前期准备 1.微信公众号开发,首先要搞一个公众号,开发阶段可以申请一个公众平台测试账号. (进入到微信公众公众平台,找到开发者工具,点 ...
最新文章
- 10个 Python 工程师,9个不合格!
- 如何让 zend studio 10 识别 Phalcon语法并且进行语法提示
- ElasticSearch PPT-笔记
- VS-c# web程序:gridview保存Excel文件遇到的问题
- fork、vfork、wait、waitpid
- checkbox已设置为checked--true-但不勾选问题解决方法(只第一次勾选有效)
- 短信微信等消息发送系统的架构设计
- Kotlin 基本数据类型(五)
- 开课吧课堂:Kubernetes集群环境常见问题解决
- 如何用BootStrap栅格系统实现响应式布局
- html文字边框颜色,css背景颜色/文字/边框 设置渐变色
- 微型计算机求RAM片数,微机原理随堂练习答案及解析..doc
- 2018-2019赛季多校联合新生训练赛第四场题解与补题(中石油)
- “科比男孩”被美国大学录取 即将出国圆梦
- PageOffice实现在线编辑Word的手写批注功能
- js实现文字转语音功能tts
- 我是如何拿到腾讯头条美团小米的offer从小厂跳到大厂的?深夜思考
- HDU2091题解——空心三角形
- 苹果自带地图定位 经纬度
- Word2010怎么给文档设置权限用密码进行加密防止他人查看
热门文章
- 注册(四)之删除绑定
- 【数据分享】全国357个城市历年空气质量数据(2013-2021)
- python logging模块使用详解
- 用梯度下降求解最小二乘线性回归python实现
- spark读取gz文件与parquet文件
- 字符串匹配---KMP
- linux bootloader启动流程,技术|Linux 的启动流程详解
- html限制显示字数其余用...代替,html实现钝角效果;html实现限制一行字数的显示,超出的部分用省略号(....)来代替...
- python多进程_python学习笔记:多进程
- python获取音频音量大小_如何在python中规范化音频文件的音量:当前可用的任何包?...