首页 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践全文在线阅读

《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》7.3.3 二次授权多个域名

关灯直达底部

微信公众平台后台网页授权地址只能填写一个域名,当有多个网站都需要使用网页授权来获得用户信息时,可以采用二次授权的方式来实现。

假设当前网页授权的地址为www.doucube.com,而另外3个网站www.a.com、www.b.com、www.c.com也希望能拿到用户信息,这种需求可以通过分配参数来实现。

http://www.a.com想获取授权时,先跳转访问http://www.doucube.com/?domain=1,授权成功后再跳回http://www.a.com,并带上授权access_token和用户OpenID参数。http://www.a.com下的程序再使用授权access_token和用户OpenID自行拉取用户基本信息。

同理,http://www.b.com想获取授权时,访问http://www.doucube.com/?domain=2;http://www.c.com想获取授权时,访问http://www.doucube.com/?domain=3,以此类推。

相应代码实现如下。


 1 <?php 2 require_once('weixin.class.php'); 3 $weixin = new class_weixin; 4 $openid = ""; 5 if (!isset($_GET["code"])){ 6     $redirect_url = 'http:// '.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 7     $jumpurl = $weixin->oauth2_authorize($redirect_url, "snsapi_userinfo", "123"); 8     Header("Location: $jumpurl"); 9     exit;10 }else{11     $oauth2_info = $weixin->oauth2_access_token($_GET["code"]);12     if ($_GET["domain"] == 1){13         $href = "http:// www.a.com/?accesstoken=".$oauth2_info['access_token']."&open      domain"] == 2){15         $href = "http:// www.b.com/?accesstoken=".$oauth2_info['access_token']."&open      domain"] == 3){17         $href = "http:// www.c.com/?accesstoken=".$oauth2_info['access_token']."&open      Location: $href");20     exit;21 }22 ?>