腾讯地图 WebServiceAPI 报错 111 签名验证失败 以及 121 此key每日调用量已达到上限 问题解决
从老项目里迁移腾讯地图服务(WebServiceAPI)到新项目,用到一个地址解析服务(即将地址明细转成 GPS 坐标),结果报错:
{
"status": 111,
"message": "签名验证失败,解决方法见:https://lbs.qq.com/faq/serverFaq/webServiceKey"
}
看了一下报错提示的文档,里面没提到 111 这个错误类型,110 和 112 都提到了,但都不是我这个问题。
111 就是指签名算错了,跟官方计算结果不一致。
由于代码是从老项目迁移过来的,老项目没问题,那肯定是迁移的时候有什么东西改错了。
检查了一下,发现是迁移的时候,老项目是写死的 key 和 sk,新项目里改成了从环境变量获取,结果获取 sk 的方法写成了获取 key 的。
修改后问题解决。
记录一下,发现 111 错误,就要检查签名计算。
项目发布到线上后,发现还是解析不出来,检查日志发现报错:
{
"status": 121,
"message": "此key每日调用量已达到上限"
}
很奇怪,明明还没有开始用,就已经触发上限了。。。
登录腾讯地图后台,发现原来需要给 key 分配额度(以前貌似不需要,不知道什么时候开始默认强制给调用的 key 分配额度了,也就是账户下不同的应用分开计算调用次数):
分配后如图:
再次调用,问题解决。
PS:企业认证后,调用的额度大大提升。不过我的应用调用少,暂时先不认证了。