PHP微信公众平台开发高级篇—网页授权接口

【1】带微信帐号的手机

【2】打开浏览器,这里以IE为例。

输入:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

【3】用手机登录你的微信,使用微信中的“扫一扫”功能,扫描上面网页中的二维码。在手机上会出现以下界面:

【3】网页授权获取用户基本信息

注意:

这里的填写只要域名就可以里,不要http和以及域名下面的方法哦!

【4】然后在该域名下面定义一个控制器,添加方法即可

【5】方法一:跳转获取Code【需要微信登陆或者扫描的页面】

需要的参数:

(1)appid      (2)redirect_uri(这里需要urlencode编码)

案例代码:

这里的:Scope为snsapi_base

/* *  定向的跳转,为了获取Code */public function getcodeAction(){    $this->view->disable();    $appid = ‘wx94c43716d8a91f3f‘;    $redirect_uri = urlencode(‘http://ford4s.amailive.com/redis/getaccesstoken‘);

    $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_base&state=1234#wechat_redirect";    header(‘location:‘.$url);} 

【6】方法二:这个方法也就是第一个方法要跳转的回调函数,这个方法名就在方法一的URL地址中:

需要跳转的方法:

实例代码:

public function getaccesstokenAction(){    $this->view->disable();    $appid = ‘wx94c43716d8a91f3f‘;    $appsecret = ‘d4624c36b6795d1d99dcf0547af5443d‘;    /*回调的时候自带的这个参数*/    $code = $_GET[‘code‘];

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

    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL,$url);    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);    $data = curl_exec($ch);    curl_close($ch);    /*这里接收到的data数据是Json格式的,我在这转换成数组了*/    $result = json_decode($data,true);    /*取出数组中的access_token这个值*/    $access_token = $result[‘access_token‘];    $expires_in = $result[‘expires_in‘];    /*拿到Openid就知道是哪个用户了,例如:参加活动次数,统计量的统计,没参加一下就写一次,在这里可以写入数据库*/    $openid = $result[‘openid‘];    echo $openid;} 

http://ford4s.amailive.com/redis/getcode【5】把域名和方法一生成一个二维码测试:

【6】返回信息:

{
   "access_token":"ACCESS_TOKEN",
   "expires_in":7200,
   "refresh_token":"REFRESH_TOKEN",
   "openid":"OPENID",
   "scope":"SCOPE"
}

【7】获取用户信息:

(1)方法一:用户登陆或者扫描的方法

这里的:Scope为snsapi_userinfo

public function getcodeAction(){    $this->view->disable();    $appid = ‘wx94c43716d8a91f3f‘;

    /*基本授权 方法跳转地址*/    $redirect_uri = urlencode(‘http://ford4s.amailive.com/redis/getuserinfo‘);

    /*高级授权 snsapi_userinfo*/    $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_userinfo&state=1234#wechat_redirect";    header(‘location:‘.$url);} 

(2)方法二:获取用户详细信息,【这个方法是在第一个跳转页面的时候加载域名后面的那个方法哦!】

public function getUserInfoAction(){    $this->view->disable();    $appid = ‘wx94c43716d8a91f3f‘;    $appsecret = ‘d4624c36b6795d1d99dcf0547af5443d‘;    /*回调的时候自带的这个参数*/    $code = $_GET[‘code‘];

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

    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL,$url);    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);    $data = curl_exec($ch);    curl_close($ch);

    $result = json_decode($data,true);    /*取出数组中的access_token这个值*/    $access_token = $result[‘access_token‘];    $openid = $result[‘openid‘];    $URL2 = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN";

    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL,$URL2);    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);    $info = curl_exec($ch);    curl_close($ch);    var_dump($info);} 

(3)打印结果:

(4)单独获取access_token方法:

参数说明:

公众号可以使用AppID和AppSecret调用本接口来获取access_token

案列代码:

/* AppID和AppSecret调用本接口来获取access_token */public function getaccesstokenAction(){    $this->view->disable();    $appid = ‘wx94c43716d8a91f3f‘;    $appsecret = ‘d4624c36b6795d1d99dcf0547af5443d‘;

    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret."";    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL,$url);    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);    $data = curl_exec($ch);    curl_close($ch);    /*这里接收到的data数据是Json格式的,我在这转换成数组了*/    $result = json_decode($data,true);    /*取出数组中的access_token这个值*/    $access_token = $result[‘access_token‘];    return $access_token;}
时间: 2024-12-15 19:55:48

PHP微信公众平台开发高级篇—网页授权接口的相关文章

PHP微信公众平台开发高级篇—微信JS-SDK

PHP微信公众平台开发高级篇—微信JS-SDK 第一步.绑定域名: 第二步.引入JS文件: 第三部.通过Config接口注入权限验证配置 第四部.通过Read接口处理成功验证 第五部.通过Error接口处理失败验证 实际案例:分享接口内容

(转)微信公众平台开发 OAuth2.0网页授权

微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息 作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使用这个的时候失败了或者无法理解其内容,希望我出个教程详细讲解一下,于是便有了这篇文章. 一.什么是OAuth2.0 官方网站:http://oauth.net/   http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secure

微信公众平台开发 OAuth2.0网页授权认证

一.什么是OAuth2.0 官方网站:http://oauth.net/   http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications. OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站.移动或桌面应用上存储的私

PHP实现微信公众平台开发—基础篇

PHP实现微信公众平台开发-基础篇 2 1课程介绍 2 2. 微信公众号账号介绍的申请流程详解 2 2.1微信三角色关系 2 2.2信息流的过程 2 2.4微信公众账号的认证 3 2.5订阅号的申请流程 3 3. 微信公众号的工作原理 3 3.1数据交互流程 3 3.2编辑模式和开发者模式的介绍 4 3.3编辑模式的简单演示 5 3.4接口介绍 5 4. 接入微信公众账号的API 5 1.验证配置介绍   5 2.验证参数介绍 5 3.填写验证配置 6 4.生成公网访问的脚本文件 6 5.验证代

[转]抢先Mark!微信公众平台开发进阶篇资源集锦

FROM : http://www.csdn.net/article/2014-08-01/2820986 由CSDN和<程序员>杂志联合主办的 2014年微信开发者大会 将于8月23日在北京举行.作为一线微信开发商云集.专注在开发实践方面的顶级技术活动,演讲话题极为丰富,涵盖了微信开发不同维度的多个层内容 (首批议程发布),包括:企业服务号开发和高级应用.企业号开发.如何与业务系统对接.各种高级接口功能.智能客服与LBS.HTML5社交应用.微信支付.微信电商开发等多方面(查看 参加微信开发

微信公众平台开发 - 动手篇。使用weinxinFundation开始一个微信公众平台的开发

本文主要讲解如何使用 weinxinFundation 进行二次开发. 步骤如下: 1.创建新的web项目. 在eclipse里新建一个dynamicly web project,比如本文叫weixinDemo 2.引用weinxinFundation 获得weinxinFundation的方法: 参考我的另一篇文章:http://www.cnblogs.com/vir56k/p/3664181.html 有两种引用方式: 1).如果你拿到的是个jar包,请按常规方式引用,程序员都知道. 2).

【微信公众平台开发】百度周边搜索接口php封装

现在微信公众平台很多娱乐的,都有用到周边搜索功能,研究下比较简单,通过百度周边搜索接口封装如下: 调用格式: $wechatBaiduAPI = new WechatBaiduAPI(); $ret = $wechatBaiduAPI->Place_search($str_key,$location['x'].",".$location['y'] ); 参数说明: $query:搜素关键词 $location: 地理位置经纬度 $radius: 搜索半径 <?php cla

微信公众平台开发之在网页上添加分享到朋友圈,关注微信号等按钮

微信公众平台开始支持前端网页,大家可能看到很多网页上都有分享到朋友圈,关注微信等按钮,点击它们都会弹出一个窗口让你分享和关注,这个是怎么实现的呢?今天就给大家讲解下如何在微信公众平台前端网页上添加分享到朋友圈,关注微信号等按钮. 一.微信浏览器 通过 Mac 远程调试 iPhone 上微信自己的网页,我们可以发现微信内嵌浏览器定义了一个私有 JavaScript 对象:WeixinJSBridge,通过操作这个对象的相关方法可以实现分享到微信朋友圈,和判断一个微信号的关注状态以及实现关注指定微信

微信公众平台(3)-网页授权获取用户基本信息

关于微信公众平台网页授权获取用户基本信息的博文,网上已经有不少了,但是用nodejs开发的和nodejs开发公众平台的文章还是寥寥无几,今天就给大家介绍下nodejs获取用户基本信息的接口. 具体而言,网页授权流程分为四步: 1. 引导用户进入授权页面同意授权,获取code 2. 通过code换取网页授权access_token(与基础支持中的access_token不同) 3. 如果需要,开发者可以刷新网页授权access_token,避免过期 4. 通过网页授权access_token和op