微信网页授权 40163 code已被使用过

发布于 2022-09-11 16:45:26 字数 1436 浏览 15 评论 0

获取用户的详细信息提示40163错误 code被使用过,但code我没有存储,也没使用过,每次都会有这个错误,没有成功授权过??而且调用回调函数getDetailInfo的时候会出现这个页面,我看别人的没有啊= =

clipboard.png

代码

public function getUserDetail(){
        $appid='wxccc324b35ed44896';
        $redirect_uri=urlencode('http://flowerwithpiggy.duapp.com/index.php/Weixin/getDetailInfo');
        $url='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri='.$redirect_uri.'&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect';
        //重定向页面
        header('location:'.$url);
    }
    /**
     * 获取相关凭证access_token
     * @return [type] [description]
     */
    public function getDetailInfo(){
        $appid='wxccc324b35ed44896';
        $secret='a23db7dedbdab946f473e26d07199f6e';
        $code=$_GET['code'];
        $url='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';
        $res=$this->http_curl($url);
        // if($res['errcode']){

        // }
        $access_token=$res['access_token'];
        var_dump($res);
        $openid=$res['openid'];
        $url='https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN';
        $res=$this->http_curl($url);
        var_dump($res);
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

杯别 2022-09-18 16:45:26

分享的链接里面就有code,应该分享前一条授权的链接

心不设防 2022-09-18 16:45:26

不知道你的问题解决了没有,我最近也遇到这个问题,我用的是tp5,然后我查了好久,发现,请求code发送一次,然后不执行插入数据的时候,接收code一次,如果执行插入数据库,code接收两次,这有点奇怪,但是找不到原因,因为我是把获取openid的步骤放在_initialize方法中的,而且从记录来看,在执行插入语句的时候,_initialize也被执行了两次,这就很神奇了,更神奇的是,我发现我请求code的时候state写成了snsapi_base,而我把state改成微信手册上的STATE后,在执行插入数据库的的步骤就正常了,也就是code只接收一次,这很奇怪,但是我找不到其他原因,把自己的经历分享出来一下

一世旳自豪 2022-09-18 16:45:26

微信回调了两次。需要在业务中防止重复回调

卸妝后依然美 2022-09-18 16:45:26

flowerwithpiggy.duapp.com

这个网址是什么鬼呀,你获取用户信息让用户跳转授权的时候应该照着手册上那个来呀。
如果这个网址是你自己的,那就让这个网址跳转微信那个授权地址然后把获取的用户信息给你返回来呀。

https://open.weixin.qq.com/co... 若提示“该链接无法访问”,请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。

是这个才对

应该是你的访问有问题
你直接在你的页面上
header('Location:https://open.weixin.qq.com/co...。。。。。。。。。');

          就行,微信会自动跳转回来的,你判断回来的有没有get到code参数就行,拿这个code再去走https://api.weixin.qq.com/sns/oauth2/access_token?appid=。。。。。。。。。。。。。。。。这套换用户授权数据openid之类的
⊕婉儿 2022-09-18 16:45:26

你在搞笑,人家不就是这么写的?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文