微信公众平台40001错误 invalid credential, access_token is invalid or not latest hint

网站微信公众平台老是报错 {"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [70D7Ma0416vr70!]"}  ,应该是access_token过期了但直接用浏览器访问$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret"; 这个地址获取的access_token是正常的。

因为网站的access_token是缓存在数据库中的,用这个函数获取和更新的。发现即使新获取的access_token也是立即过期,很纳闷。

public function get_access_token($db)
        {
            $ret = $db->getRow("SELECT * FROM `wxch_config` WHERE `id` = 1");
            $appid = $ret['appid'];  //AppId 18
            $appsecret = $ret['appsecret'];//AppSecret 32
            $dateline = $ret['dateline'];
            $time = time();
            if(($time - $dateline) > 7200)
            {
                $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";

                $ret_json = $this->curl_get_contents($url); //access_token 150
                $ret = json_decode($ret_json);
                if($ret->access_token){
                    $db->query("UPDATE `wxch_config` SET `access_token` = '$ret->access_token',`dateline` = '$time' WHERE `wxch_config`.`id` =1;");
                }
            }

            return $db->getOne("SELECT access_token FROM `wxch_config` WHERE `id` = 1");

        }

突然发现,直接浏览器访问获取的 access_token  和 保存在数据库中的 access_token长度不一样。

浏览器里:5_kaRdp42zead-_QRaArOEKTeNhNDWCdceXKiVv5QnyDiFuXS30KXnffvj9-hy6fN_UM-AS5OQGSlMOvNUn-psWIk0uQUpDT5oTmqtS_kohnZ88QrrUyiuV47bC7crsWV-o6o2FGQOxi_C5TeiLTIdACAVDS

数据库里保存的:5_kaRdp42zead-_QRaArOEKTeNhNDWCdceXKiVv5QnyDiFuXS30KXnffvj9-hy6fN_UM-AS5OQGSlMOvNUn-psWIk0uQUpDT5oTmqtS_kohnZ88QrrUyiuV47bC7crsWV-o6o2FGQOxi_C5TeiLTId

原来是数据库定义的长度是150 ,获取的access_token的长度是156 

估计微信那边又调整access_token的长度了


把数据库中access_token长度改为156 , 问题解决。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值