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

本文主要为第三方平台开发遇到的相关常见问题提供解决思路,帮助你加速定位及解决问题。并且,还提供就如何在社区发帖高效解决问题的相关建议,一起共建良好的开发者社区。

如果通过下方自助排查指引仍无法解决问题,前往社区或者其他途径向官方反馈接口类问题时请一定要提供接口报错返回的 rid 信息,方便排查问题。

# 自我排查

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

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

3)请求参数格式错误(即,接口报错返回的 errmsg 关键字为 format error 或者 invalid format 之类的;错误码通常为 4700185006850078500885011 等),通常是 JSON 格式化的问题,要注意 UTF-8 编码和 Unicode 编码,以及检查是否进行了 json.dumps() 或者 json_encode()。请详细参考接口文档进行编码,以及确保是 JSON 格式传递。

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

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

  • 例如,你以为你传对了,但是实际上传到微信后台这边是乱码,此时可以通过 getRidInfo 接口查看实际传参的内容传到微信后台是什么,从而验证是否传参错误。
  • 此外,如 invalid template_idinvalid codeinvalid env TcbCodeinvalid 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_tokencomponent_access_tokenauthorizer_access_token 调用;请注意不要使用错误的 Token 进行调用。
  • 同时该 clear_quota 接口,也适用于用来清理获取 access_tokencomponent_access_tokenauthorizer_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 月提审单数、服务商表现排名分配,服务商可以在「小程序服务商助手」小程序的「审核专区」查询每月分配额度和剩余额度,「表现与权益专区」查询每月小程序数据表现,详细可参考第三方服务商提 quota 机制优化说明
  • 如果因业务发展需求 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 为小程序申请插件权限,详情可查看插件管理接口文档

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"}

  • 开发者仔细检查是否在「第三方平台 - 开发资料」中配置域名,要先将域名登记到第三方平台的小程序服务器域名(业务域名)中,才可以调用接口进行配置。
  • 注意:在开发资料中配置域名,域名之间需要使用英文 ; 隔开,中间不能有空格或换行。
  • 注意:在开发资料中配置具体的域名即可,不需要携带 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,可通过获取授权账号列表接口重新获取 refresh_token 再调用 API。

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

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

# 自我检索

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

1)访问微信开发者社区

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

# 发帖处理

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

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

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

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

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

  • 请使用明确而有意义的题目,这有利于帖子被更及时地关注到。
  • 问题应明晰,漫无边际的问题会被标记为无效问题。
  • 请不要刻意标明问题紧急。如果是平台的故障则会被监控到且在及时处理中,请耐心等待即可。
  • 请不要重复发帖。如果当时平台出现了故障影响了你的业务,也请不要重复发帖,相关进展会在原帖子及时回复处理即可;如果没有及时回复则可能是尚在处理中,请耐心等待即可。
  • 请尽量不要私聊发问题。因为如果你私信发给某个同学,那么私信则只有 TA 才能看到以及进行处理,当遇到该同学休假或者忙其他事情的时候,你的问题将会得不到及时的处理;建议还是在社区上发帖,因为社区的帖子会被多个官方人员看到并处理,更加有利于你的问题被及时解决。
  • 问题解决后追加一条简要说明。如果你的问题已经被解决了,请在原帖子上表述出来,这有助于帖子处理人员及时了解进展,也将帮助其他人在搜索相关问题时能看到真正解决问题的方案,从而让社区的人员受益。