更换服务器后公众号菜单不显示不出来,迁移服务器导致公众号不可用

每个和微信相关的页面都会报如下错误:

49559629164c

image.png

找到错误是JSSDK文件中的获取access_token时报错

private function getAccessToken() {

// access_token 应该全局存储与更新,以下代码以写入到文件中做示例

$data = json_decode($this->get_php_file("access_token.php"));

$access_token='';// 定义变量 add by ls 2018-11-20

if ($data->expire_time < time()) {

// 如果是企业号用以下URL获取access_token

// $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret";

$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";

file_put_contents("/server/ls_log.txt", "--url={$url}\r\n", FILE_APPEND);

$res = json_decode($this->httpGet($url));

file_put_contents("/server/ls_log.txt", "--------ret=" . var_export($res, true) . "\r\n", FILE_APPEND);

$access_token = $res->access_token;

if ($access_token) {

$data->expire_time = time() + 7000;

$data->access_token = $access_token;

$this->set_php_file("access_token.php", json_encode($data));

}

} else {

$access_token = $data->access_token;

}

return $access_token;

}

打印日志发现如下错误码:40125

--url=https://api.weixin.qq.com/cgi-bin/token? grant_type=client_credential&appid=online12345678910&secret=online1234567890

--------ret=stdClass::__set_state(array(

'errcode' => 40125,

'errmsg' => 'invalid appsecret, view more at http://t.cn/RAEkdVq hint: [5iqQZa09221533]',

))

一般报错40125就是appId和appSecret不正确或者是请求获取access_token的链接中有空格

$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";

发现日志中输出的这个url没有空格,然后对比公众号后台发现appId和url中的不一样,secret现在是看不到的,但是appId不应该不正确啊,然后打开配置文件,发现日志中打印的是线上的appId,而不是beta环境,而我现在是在beta环境出现的这个bug。

最终发现配置文件没有添加软连接指向beta环境,还有就是access_token.php和jsapi_ticket.php

这两个文件的权限不够,没法写入,后来添加了权限

发现还是不可以,但是此时打印的错误信息变了: 40164

--url=https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=beta1234567890&secret=beta1234567890

--------ret=stdClass::__set_state(array(

'errcode' => 40164,

'errmsg' => 'invalid ip 120.133.17.222, not in whitelist hint: [M9gbfa05242994]',

))

重要的是此时的appId和secret都是beta环境的,说明刚才添加beta环境配置文件的软连接是正确的

此时40164这个的错误信息提示的是:iP没在白名单里,这个只需要在配置的白名单把错误的这个ip添加进去。

详细的添加白名单请参考

https://www.jianshu.com/p/28e6bef5f1f5

添加好了之后ok

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值