微信网页授权

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信网页授权相关的知识,希望对你有一定的参考价值。

参考技术A 微信网页授权文档地址:

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

微信网页授权步骤:
一、用户同意授权,获取code

注:公众号需要有授权作用域

授权流程:
1.用户点击公众号菜单
调用链接url,用户在同意授权之后,回调地址将会拿到code
注:每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。
2.将code发送至第三方网页服务器(就是我们开发服务器的后端接口)

二、通过code,获取openid,获取用户基本信息

后端拿到code之后,使用Spring RestTemplate类 进行请求
注:对于RestTemplate类的使用方法,请查看:
https://docs.spring.io/spring/docs/5.1.8.RELEASE/javadoc-api/

服务器后端处理code

请求结果详解:

此时拿到了access_token,可以进行用户信息的拉取

服务器后端请求获取用户信息

请求结果详解:

注:在获取用户信息的时候,微信使用ISO-8859-1编码,需要进行编码转化

到此,网页授权结束

微信公众平台,微信网页授权,redirect_uri参数错误,解决方法!

刚才在做微信网页授权的时候,发生一个错误!!!微信网页授权redirect_uri 参数错误!

 

遇到问题,第一时间应该做的就是查看官网微信公众平台的技术文档。

微信网页授权

如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。

关于网页授权回调域名的说明

1、在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头; 

2、授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com无法进行OAuth2.0鉴权 

3、如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可。

检查微信授权的网页服务。

网页帐号   网页授权获取用户基本信息     无上限     修改       

点击修改,进去把http://www.xxxx.cn 改为www.xxxx.cn就不会出现redirect_uri 参数错误!

注意:http://www.xxxx.cn这样是可以通过网页授权安全监测的,我们不知道这是有问题的,后来程序执行调用的时候发现redirect_uri 参数错误,查看文档,回来发现,原来是这里的错误。

//获取用户的openid
  function getBaseInfo(){
   //1.获取到code
   $appid="qq1813284q1q6q8888";//这里的appid是假的演示用
   $redirect_uri=urlencode("http://www.xxxx.cn/xxx.php/Index/getUserOpenId");//这里的地址需要http://
   $url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_base&state=123#wechat_redirect";
   header(\'location:\'.$url);
  }

  function getUserOpenId(){
   //2.获取到网页授权的access_token
   $appid="qq1813284q1q6q8888";//这里的appid是假的演示用
   $appsecret="61qqqq36745987167q73bq1q2552qq75";//这里的appsecret是假的演示用
   $code=$_GET[\'code\'];
   $url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecret."&code=".$code."&grant_type=authorization_code ";
   //3.拉取用户的openid
   $res = $this->http_curl($url,\'get\');

 var_dump($res);//打印即可看到用户的openid

}

转自:https://www.cnblogs.com/jilu/p/6123447.html

以上是关于微信网页授权的主要内容,如果未能解决你的问题,请参考以下文章

微信网页授权

微信网页授权

微信网页授权

微信公众平台,微信网页授权,redirect_uri参数错误,解决方法!

微信网页授权

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