微信公众号网页授权40163问题【php】

10 篇文章 0 订阅
4 篇文章 0 订阅

微信公众号网页授权40163问题

tp5为例,emmmm…一直报40163或40029问题,翻遍了各大网站都没找到合适我的办法。
如图:
这里写图片描述
解决之后如图:
这里写图片描述
因为重定向所以请求了两次code,所以一直报40163错误。所以,我改了改代码:

public function _initialize()
{
    parent::_initialize(); 
    
    $this->appid = '微信公众号APPID';//appid
    $this->secret = '微信公众号secret'; //secrect
    $this->redirect_uri = '回调域名地址';//返回的域名网址 
  
}
//第一步获得code
public function index_down()
{
    $weixin = new WechatAuth($this->appid,$this->secret);
    $url = $weixin->getRequestCodeURL($this->redirect_uri) ;
    header("Location:".$url);
}
//第二步 判断code,获得用户信息
 public function index()
 {  
    $code = $_GET["code"]; 
    if (isset($_GET['code'])){ 
         $userinfo = $this->get_user_info($code);  
     }else{
         echo "no code";
     }
  }
public function get_user_info($code)
{ 
    $access_token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=". $this->appid ."&secret=".$this->secret. "&code=".$code. "&grant_type=authorization_code";
    $access_token_json = $this->https_request($access_token_url);//自定义函数
    $access_token_array = json_decode($access_token_json,true);  
    $access_token = $access_token_array['access_token']; 
    $openid = $access_token_array['openid']; 
    $userinfo_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid";
    $userinfo_json = $this->https_request($userinfo_url);
    $userinfo_array = json_decode($userinfo_json,true);
    return $userinfo_array;
}
public function https_request($url)//访问url返回结果
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl,  CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
    if (curl_errno($curl)){
        return 'ERROR'.curl_error($curl);
    }
    curl_close($curl);
    return $data;
}

因为重定向请求了两次,所以会提示code已经被使用。没有获取unionID,因为还没绑定开放平台。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值