获取微信公众号Openid未跳转指定url页面
发布于 7 年前 作者 zpan 473 次浏览 来自 问答

https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

场景:A链接请求B链接,B链接是获取微信相关信息code及openid等,在获取code时时设置redirect_uri时,微信未跳转相应的页面,无法获取到openid数据

设置的redirect_uri就是本方法地址,此url是正常的页面,是可以访问的,

但不是同一域名下的链接访问就不跳转,是同一域名下是可以跳转的

 //获取openid
     public function getOpenId()
     {
         
         //如果已经获取到用户的openId就存储在session中
         if(isset($_SESSION['openid']))
         {
             return $_SESSION['openid'];
         }
         else
         {
             //2.根据code获取到openID
             if(! isset($_GET['code']))
             { 
                 $uri = urlencode('http://center.fxxx/Pay_Jmwxwap_getOpenId.html'); 
                 //组装跳转地址
                 $redirect_uri = self::CODEURL .'appid='.self::APPID.'&redirect_uri='.$uri.'&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect';                
                              
                 //跳转 让用过去获取code
                 header('Location:'.$redirect_uri); 
             }
             else
             {
                 //调用接口获取openId
                 $openidurl = self::OPENIDURL.'appid='.self::APPID.'&secret='.self::SECRET.'&code='.$_GET['code'].'&grant_type=authorization_code'; 
                
                 //请求获取用户的openID
                 $data = file_get_contents($openidurl);
                 $arr = json_decode($data,true);
                 //获取到的openid保存到session 中
                 $_SESSION['openid'] = $arr['openid']; 
                 return $_SESSION;
             }
         }
 
     }   

这种问题如何解决?

1 回复

你好,麻烦具体描述下问题流程,提供下appid,完整的请求,最近一次操作时间(特别说明,5小时内才有机会快速定位),收到的回复消息

回到顶部