微信接口开发之高级篇系列【网页授权接口】

【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-09-22 12:13:25

微信接口开发之高级篇系列【网页授权接口】的相关文章

微信接口开发之高级篇系列【网页授权获取用户基本信息】

PHP微信接口开发之高级篇之网页授权获取用户基本信息    二.WEB开发工具  

微信接口开发之高级篇系列【微信JS-SDK】

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

微信接口开发之高级篇系列【微信权限封装类WechatAuth】

ThinkPHP框架目录结构: <?php /** * Created by PhpStorm. * User: Tinywan * Date: 2016/9/11 * Time: 9:55 */ namespace Org\Util; class WechatAuth { /* 消息类型常量 */ const MSG_TYPE_TEXT = 'text'; const MSG_TYPE_IMAGE = 'image'; const MSG_TYPE_VOICE = 'voice'; const

微信接口开发之高级篇系列【用户分组接口和生成带参数的二维码】

<?php /** * Created by PhpStorm. * User: Tinywan * Date: 2016/9/11 * Time: 10:00 */ namespace Home\Controller; use Org\Util\WechatAuth; use Think\Controller; class UserController extends Controller { private $appid; private $appSecret; private $Wecha

微信公众号开发系列-网页授权获取用户基本信息

OAuth2.0网页授权这个也是在做微信公众平台用到最多的,可以利用授权接口对自己平台内用户进行绑定,实现用户扫描码和微信分享.微信签到.微信商城购物等: 1.高级接口OAuth2.0网页授权设置 a.进入高级接口列表-OAuth2.0-点击修改设置授权域名,域名可以上一级域名和二级域名 b.填写要设置授权域名,我这里用的的是二级域名 体授权Url规则见下面详细描述,主要摘自微信公众平台开发文档,点击进入 2.网页授权获取用户基本信息说明 如果用户在微信中(Web微信除外)访问公众号的第三方网页

认证的政府与媒体类订阅号可取得网页授权接口了

继四月底已认证的政府与媒体类订阅号可申请微信支付后,今天微信公众平台向认证的政府与媒体类订阅号开放网页授权接口,授权后可以调用相应的接口,比如获取自动回复和自定义菜单配置,群发接口.授权登录等 公众平台接口策略更新,向认证的政府与媒体类订阅号开放网页授权接口. 常见问题: 1. 什么是认证的政府与媒体类订阅号? 认证的政府与媒体类订阅号是指:订阅号在进行微信认证时,选择的主体类型是政府或者媒体.如下图所示: 2. 认证的政府与媒体类订阅号如何使用网页授权接口? 和其他拥有网页授权接口权限的公众号

.net电商接口开发(接单及状态回传接口)

问题描述 .net电商接口开发(接单及状态回传接口) 首先请大家体谅我问题的粗糙! 刚接触接口开发这个工作,想了解下关于做这个接口要用到.net的哪些技术呢! 我们是有一套自己的系统,需要从淘宝啊,京东这样的电商获取数据(xml格式)保存到本地,解析写进自己的数据库,并返回一个处理结果(xml格式),我现在没什么头绪,所以想通过这里从你们这里了解一些信息,好作为我的一个了解这个接口工作的突破口,如果你们就是做这个相关工作的,并且愿意给我一定的帮助,我先谢谢你们了. 解决方案 WebService

【微信Java开发 --番外篇】错误解析

虽然在微信开发过程中,会有微信公众平台开发者文档中的<全局返回码>作为错误的参考对比:但是依旧的,会觉得有时候的问题莫名其妙.[注:本人使用weixin-java-tools进行开发] 下面吧微信开发过程中碰到的各种问题做一个归类[注:错误总结会在开发过程中一一补充]   一.自定义菜单---错误集合 1.创建自定义菜单{"errcode":40019,"errmsg":"invalid button key size hint: [a90Wa

微信开发 网页授权获取用户基本信息

微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是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