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

简介: 【1】带微信帐号的手机   【2】打开浏览器,这里以IE为例。          输入:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 【3】用手机登录你的微信,使用微信中的“扫一扫”功能,扫描上面网页中的二维码。
【1】带微信帐号的手机
 
【2】打开浏览器,这里以IE为例。
【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;
}



 
 
 
 
 
 
 
目录
相关文章
|
12天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
12天前
|
小程序 安全 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的身份认证与授权机制。身份认证包括手机号验证、微信登录和第三方登录,而授权机制涉及角色权限控制、ACL和OAuth 2.0。实践中,开发者可利用微信登录获取用户信息,集成第三方登录,以及实施角色和ACL进行权限控制。注意点包括安全性、用户体验和合规性,以保障小程序的安全运行和良好体验。通过这些方法,开发者能有效掌握小程序全栈开发技术。
|
12天前
|
JavaScript 前端开发 小程序
微信小程序全栈开发之性能优化策略
【4月更文挑战第12天】本文探讨了微信小程序全栈开发的性能优化策略,包括前端的资源和渲染优化,如图片压缩、虚拟DOM、代码分割;后端的数据库和API优化,如索引创建、缓存使用、RESTful API设计;以及服务器的负载均衡和CDN加速。通过这些方法,开发者可提升小程序性能,优化用户体验,增强商业价值。
|
12天前
|
小程序 前端开发 JavaScript
微信小程序全栈开发中的PWA技术应用
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中PWA技术的应用,PWA结合Web的开放性和原生应用的性能,提供离线访问、后台运行、桌面图标和原生体验。开发者可利用Service Worker实现离线访问,Worker处理后台运行,Web App Manifest添加桌面图标,CSS和JavaScript提升原生体验。实践中需注意兼容性、性能优化和用户体验。PWA技术能提升小程序的性能和用户体验,助力开发者打造优质小程序。
|
1月前
|
小程序 前端开发 程序员
微信小程序开发入门教程-小程序账号注册及开通
微信小程序开发入门教程-小程序账号注册及开通
|
9天前
|
小程序 前端开发 开发者
调用第三方接口微信登录接口
该文档介绍了调用微信登录接口的需求和实现思路。当用户尝试访问需要登录的页面时,若未登录则弹出微信登录选项。登录过程涉及微信小程序的wx.login()方法获取临时凭证code,并将其发送到服务器,服务器通过此code换取用户的OpenID、UnionID和session_key。依据这些信息,服务器可生成自定义登录态以识别用户身份。参考微信官方文档和登录流程图进行实现。
21 9
|
12天前
|
SQL 安全 小程序
探索微信小程序全栈开发的安全性问题
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的安全性问题,包括数据安全、接口安全、隐私保护和代码安全。为解决这些问题,建议采取数据加密、使用HTTPS协议、身份认证与授权、输入验证、安全审计及漏洞扫描以及安全培训等措施。通过这些方法,开发者可提升小程序安全性,保护用户隐私和数据。
|
1月前
|
小程序 JavaScript
在使用微信小程序开发中用vant2框架中的Uploader 文件上传wx.uploadFile无反应和使用多图上传
网上有的说是bind:after-read="afterRead"的命名问题不支持-,但是我这儿执行了console.log("file",file);证明函数运行了。后来发现是multiple="true"原因开启了多图上传,如果是多图上传的话file就是数组了
25 2
|
1月前
|
移动开发 小程序 API
微信小程序的一些开发限制
微信小程序的一些开发限制
75 1
|
1月前
|
JSON 小程序 前端开发
微信小程序开发入门学习01-TDesign模板解读
微信小程序开发入门学习01-TDesign模板解读

热门文章

最新文章