记一次获取access_token为空引发的生产问题 -1000

项目开发中微信渠道为了获取用户地理位置(经纬度)需要调用微信JSAPI,在参数的获取过程中需要后端服务器请求获取access_token,在生产上报出了空指针,也就是未获取到access_token,我们看下获取access_token接口说明。

接口调用请求说明

https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

参数说明

参数是否必须说明
grant_type获取access_token填写client_credential
appid第三方用户唯一凭证
secret第三方用户唯一凭证密钥,即appsecret

返回说明

正常情况下,微信会返回下述JSON数据包给公众号:

{"access_token":"ACCESS_TOKEN","expires_in":7200}

参数说明

参数说明
access_token获取到的凭证
expires_in凭证有效时间,单位:秒

公司开发分为sit uat 准生产 生产环境,在sit和uat配置时使用的是微信测试号,没有出现任何问题,生产偏偏出现问题,在排查中发现微信接口返回报文是

{
“errcode”: -1000
“errmsg”: "system error"
}
提示:未知返回状态.

经过各种百度发现官方的一段说辞。

为了提高公众平台开发者接口调用的安全性,避免一旦开发者ID和密码泄露后给帐号造成损失。我们对调用“获取access_token”接口增加IP白名单校验:只有将IP地址设置为公众号的IP白名单,才能成功调用该接口。

开启IP白名单的步骤如下:

1、登录公众平台,进入开发->基本配置页面

2、点击配置进入IP白名单设置页

3、填写IP地址列表

多个之间回车隔开

4、管理员扫码确认保存

5、调用“获取access_token”接口,返回结果。如非白名单IP调用,将返回错误码:40164,可通过wiki查看具体原因

这里说明了问题是未配置白名单ip,为什么会返回-1000状态而不是40164状态,是因为在生产的企业微信未配置任何ip白名单。未配置ip白名单返回-1000,配置了但是不再白名单ip中返回40164。

公司项目后端是通过代理服务器出去的,所以我们在配置的时候找到了代理服务器的出口也就是出口的公网ip全部配置进ip白名单中,问题解决。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值