微信公眾平台後台網頁授權地址只能填寫一個域名,當有多個網站都需要使用網頁授權來獲得用戶信息時,可以採用二次授權的方式來實現。
假設當前網頁授權的地址為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 ?>