获取微信公众号Openid未跳转指定url页面
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;
}
}
}
这种问题如何解决?