# 接口类常见问题排查指南

  • 本文主要为第三方平台开发遇到的相关常见问题提供解决思路,帮助您加速定位及解决问题。并且,还提供就如何在社区发帖高效解决问题提相关的建议,一起共建良好的开发者社区,保持社区良好的氛围。
  • 如果通过下方自助排查指引仍无法解决问题,前往社区或者其他途径向官方反馈接口类问题时请一定要提供接口报错返回的 rid 信息,方便排查问题。

# 自我排查

1、和权限(即,接口报错返回的 errmsg 关键字为 api unauthorized 或 api is unauthorized )相关的问题请查看权限集常见排错指南

2、和 component_verify_ticket 相关的问题请查看component_verify_ticket常见排错指南

3、请求参数格式错误(即,接口报错返回的 errmsg 关键字为 format error 或者 invalid format 之类的;错误码通常为 47001、85006、85007、85008、85011等),通常是json格式化的问题,要注意utf8 encoded 和 unicode encode 以及清检查是否进行了json.dumps()或者json_encode()。请详细参考接口文档进行编码,以及确保是 json 格式传递。

4、时间参数格式错误(即,接口报错返回的 errmsg 关键字为 invalid DateInfo 或者 date format error 等等),时间格式通常为时间戳以及通常对开始时间或结束时间都有要求,例如有的接口的结束时间最大为昨天而非今天,有的开始时间最早要在现在后的10分钟等等。具体请查看接口文档,严格按照接口文档描述的规则进行正确传参。

5、不合法的传参(即,接口报错返回的 errmsg 关键字为 invalid xxx)遇到此些错误码,请详细查看接口文档,严格按照接口文档描述的规则进行正确传参以及仔细检查当前使用的 appid、secret、各种 code 等是否正确的。如果确认没传错,那就检查一下编码格式是否有问题。

  • 例如,你以为你传对了,但是实际上传到微信后台这边是乱码,此时可以通过getRidInfo接口查看实际传参的内容传到微信后台是什么,从而验证是否传参错误。
  • 此外,如 invalid template_id、invalid code 、invalid env TcbCode 、invalid openid等请务必要注意大小写,需严格写正确
  • 以及,如果是 {"errcode":40013,"errmsg":"invalid appid xxx"} 则需详细查看对应的接口文档,例如看下传的小程序 appid 和 小程序的 code 是否对应;或者传的小程序 appid 和 公众号 appid 是否有绑定关系等等

6、对于接口返回 {"errcode":-1,"errmsg":"system error rid: xxxxx"} ,通常是当时系统问题,请重试或者稍等一会再重试。如果重试无效请到社区发帖处理。

7、对于接口返回 {"errcode":45009,"errmsg":"reach max api daily quota limit rid: xxxxxx"} ,则是当天的接口调用次数用完了。即,接口请求次数有限制的,开发者可调用getApiQuota接口获取接口每日调用次数。

  • 遇到该问题可调用接口clear_quota进行清空(该接口同样适用于第三方平台代其调用)。
  • 补充:clear_quota接口的调用,可使用access_token、component_access_token和authorizer_access_token调用;请注意不要使用错误的token进行调用。
  • 同时该clear_quota接口,也适用于用来清理获取access_token、component_access_token和authorizer_access_token的调用次数,使用其对应的token进行调用即可。

8、对于接口返回 {"errcode":50002,"errmsg":"user limited rid: xxxxxx"},则通常是该小程序/公众号/服务号等账号被冻结了、注销了或者迁移了。可以自己使用手机扫该公众号/服务号或者小程序码进行验证即可。此外,50007的错误码则是账号冻结了,详情可查看公众账号被系统冻结问题汇总

9、对于接口返回 {"errcode":61004,"errmsg":"access clientip is not registered requestIP: 119.147.XX.170 rid: XXXXXXXX"}

  • 需要将 requestIP 添加到第三方平台-开发资料-白名单IP地址列表中
  • 注意:通过“编辑”入口添加需要再次全网发布生效;通过“修改”入口添加立即生效无需再次全网发布
  • 注意:IP之间需要使用英文;隔开,不要有空格或换行
  • 补充:如果是公众号/服务号/小程序等账号调用接口出现 61004 的错误码,需要将 requestIP 添加到公众号/服务号/小程序等账号的IP白名单中

10、对于接口返回 {"errcode":85085,"errmsg":"submit audit reach limit, please try later rid: XXXXXXXX"}

  • 出现 85085 错误码是指小程序提审数量已达本月上限。提审额度分配规则已经进行优化:每月quota基于近3月提审单数、服务商表现排名分配,服务商可以在小程序服务商助手的“审核专区”查询每月分配额度和剩余额度,“表现与权益专区”查询每月小程序数据表现,详细可参考https://developers.weixin.qq.com/community/minihome/doc/00022ce7b209f09f363b9c62958401?blockType=99
  • 如果因业务发展需求quota不够使用的问题,请在服务商助手小程序-我的-审核管理专区自行申请提升临时额度。如有更多疑问,可通过“咨询反馈”入口联系人工客服进行反馈,客服值班时间为工作日9:00-12:00,14:00-18:00

11、对于接口返回 {"errcode":80082,"errmsg":"miniprogram has no permission to plugin[wxAAAA] rid: XXXXXXXX"}

  • 小程序没有plugin[WXAAAA]权限
  • 可通过api为小程序申请插件权限,可查看文档:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/plugin-management/managePlugin.html

12、配置小程序服务器、业务域名报错 {"errcode":85301,"errmsg":"no domain to modify after filtered, please confirm the domain has been set in miniprogram or open, and follows the rule of domains rid: XXXXXXXX"}

  • 开发者仔细检查是否在第三方平台-开发资料中配置域名,要先将域名登记到第三方平台的小程序服务器域名(业务域名)中,才可以调用接口进行配置
  • 注意:1、在开发资料中配置域名,域名之间需要使用英文;隔开,中间不能有空格或换行
  • 2、在开发资料中配置配置具体的域名即可,不需要携带https/http协议

13、配置小程序服务器域名报错 {"errcode":45104,"errmsg":"reach max domain quota limit rid: XXXXXXXX"}

  • 每月仅有50次修改小程序服务器域名机会,请各位开发者合理使用,若本月已使用完无渠道新增次数,只能下个月修改。

14、对于接口返回 {"errcode":61023,"errmsg":"refresh_token is invalid rid: XXXXXXXX"}。可能是填写refresh_token为空,或者refresh_token无效,使用其他账号的refresh_token,可通过接口https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/authorization-management/getAuthorizerList.html 重新获取refresh_token再调用API。

15、对于接口返回 {"errcode":43101,"errmsg":"user refuse to accept the msg rid: xxx"} 就是用户拒收模板消息,属于正常的返回。

16、更多接口返回的错误码信息检索请查看返回码说明.

# 自我检索

在进行自我排查后仍然无法解决问题的情况下,可到社区发帖进行处理。但,为了快速解决问题,可在发帖之前进行相关搜索。按照经验,大部分的问题都可以在社区上找到解决方案。

1、访问社区https://developers.weixin.qq.com/community/develop/mixflow

2、在右上角进行搜索,如果是接口类型问题可按照错误码或者errmsg进行检索以及也可以进行筛选

# 发帖处理

在完成自我排查和自我检索之后,仍然无法解决问题则可及时发帖处理。并且提问时,请先表述你已经做了上述事情,这将有助于处理帖子的人员加速定位问题,也有助于建立你在社区的专业的印象。

1、接口类的报错请提供接调用接口返回的rid。

2、如果是调用接口没有报错,只是返回的结果有误或者有疑问。请提供相关的appid、请求参数、请求时间、回包等信息。

3、如果是第三方平台的问题请发帖的时候提供第三方平台的appid(必不可少),如果还涉及公众号服务号或者小程序等,也请一并提供其appid。此外,还请尽可能提供更多的报错信息(如有相关截图也请一并提供)、错误日志、发生的时间等等。

4、关于发帖时的问题描述的建议:

  • 请使用明确而有意义的题目,这有利于帖子被更及时地关注到

  • 问题应明晰,漫无边际的问题会被标记为无效问题

  • 请不要刻意标明问题紧急。如果是平台的故障则会被监控到且在及时处理中,请耐心等待即可

  • 请不要重复发帖子。如果当时平台出现了故障影响了您的业务,确实也是着急的事情,也请不要重复发帖子,相关进展会在原帖子及时回复处理即可;如果没有及时回复则可能是尚在处理中,请耐心等待即可

  • 请尽量不要私聊发问题。因为如果您私信发给某个同学,那么私信则只有TA才能看到以及进行处理,当遇到该同学休假或者忙其他事情的时候,您的问题将会得不到及时的处理;建议还是在社区上发帖子,因为社区的帖子会被多个官方人员看到并处理,更加有利于您的问题的及时被解决

  • 问题解决后追加一条简要说明。如果您的问题已经被解决了(个别情况是如涉及隐私信息会私信进行处理)请在原帖子上表述出来,这有助于帖子处理人员及时了解进展,以及这也将帮助其他人在搜索相关问题时能看到真正解决问题的方案,从而也让社区的人员受益。