微信网页授权是服务号才有的高级功能,开发者可以通过授权后获取用户的基本信息;在此之前,想要获取消息信息只能在用户和公众号交互时根据openid获取用户信息;而微信网页授权可在不需要消息交互,也不需要关注的情况下获取用户的基本信息。
微信网页授权时通过OAuth2.0完成的,整个过程分为三步:
对微信网页授权过程做了简单封装:
<?php /** * 微信授权相关接口 */ 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); } }
以上就是本文的全部内容,希望对大家的学习有所帮助。
本文向大家介绍微信开发 微信授权详解,包括了微信开发 微信授权详解的使用技巧和注意事项,需要的朋友参考一下 最近有机会做到一个微信项目;把其中自己整理的笔记分享给大家,有不足或错误的地方望大家指正! 1关于微信授权这块的流程图,如下 一些代码碎片仅供参考: 本地存储的运用: 1. 做微信开发,建议先造一些数据,取到对应的openId ,方便在浏览器里调试; 2.稍微麻烦的就是每次调整完成,需要发布
本文向大家介绍微信开发之网页授权获取用户信息(二),包括了微信开发之网页授权获取用户信息(二)的使用技巧和注意事项,需要的朋友参考一下 在公众号的配置过程中,许多开发者会在菜单中加入HTML5页面,有时在页面内需要访问页面的用户信息,此时就需要网页授权获取用户基本信息 呐喊教程提醒大家:本文介绍讲述的内容是基于yii2.0框架 1、设置授权回调域名:开发 ---> 接口权限 找到“网页授权获取
本文向大家介绍ajax 实现微信网页授权登录的方法,包括了ajax 实现微信网页授权登录的方法的使用技巧和注意事项,需要的朋友参考一下 项目背景 因为项目采用前后端完全分离方案,所以,无法使用常规的微信授权登录作法,需要采用 ajax 实现微信授权登录。 需求分析 因为本人是一个phper ,所以,微信开发采用的是 EasyWeChat ,所以实现的方式是基于EW的。 其实实现这个也麻烦,在实现之
本文向大家介绍MVC微信网页授权获取用户OpenId,包括了MVC微信网页授权获取用户OpenId的使用技巧和注意事项,需要的朋友参考一下 最近开发微信公众平台,做下记录,以前也开发过,这次开发又给忘了,搞了半天,还是做个笔记为好。 注意框架为MVC 开发微信公众平台。场景为,在模板页中获取用户openid,想要进行验证的页面,集成模板页就可以了。 在_Layout.cshtml中加入如下代码
本文向大家介绍php实现微信小程序授权登录功能(实现流程),包括了php实现微信小程序授权登录功能(实现流程)的使用技巧和注意事项,需要的朋友参考一下 先上图 实现流程: 1、授权登陆按钮和正文信息放到了同一个页面,未授权的时候显示登陆按钮,已授权的时候隐藏登陆按钮,显示正文信息,当然也可以授权和正文分开成两个页面,在授权页面的onload里判断是否已授权,若已授权就直接跳转正文的页面。这里只说授
本文向大家介绍微信公众号-获取用户信息(网页授权获取)实现步骤,包括了微信公众号-获取用户信息(网页授权获取)实现步骤的使用技巧和注意事项,需要的朋友参考一下 根据微信公众号开发官方文档: 获取用户信息步骤如下: 1 第一步:用户同意授权,获取code 2 第二步:通过code换取网页授权access_token 3 第三步:刷新access_token(如果需要) 4 第四步:拉取用户信息(需s