小程序上遇到一个报错,错误码是 40029,同时给了一个 RID。
{
"errcode": 40029,
"errmsg": "invalid code, rid: 69625cc8-56b1ae22-1be4ab7b"
}
顺手一查,发现还可以通过 RID 反查当初的请求和一些信息,用于 debug。

微信开发了一个工具,直接访问 https://developers.weixin.qq.com/console/devtools/debug就可以查自己的 RID 了,关键还可以查 xxx/sns/xxx 类的接口。
除了上面的方式,还可以通过 API 接口查。
先获取 token https://developers.weixin.qq.com/miniprogram/dev/server/API/mp-access-token/api_getstableaccesstoken.html,然后再通过 token 查 rid 信息https://developers.weixin.qq.com/doc/oplatform/openApi/openapi/api_getridinfo.html。不过我发现 rid 信息没法通过 API 接口查 xxx/sns/xxx。
下面是 curl 语句,方便直接调用
curl --location 'https://api.weixin.qq.com/cgi-bin/stable_token' \
--header 'Content-Type: application/json' \
--data '{
"grant_type": "client_credential",
"appid": "wx123",
"secret": ""
}'
curl --location 'https://api.weixin.qq.com/cgi-bin/openapi/rid/get?access_token=ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"rid": "69625cc8-56b1ae22-1be4ab7b"
}'
登录错误 40029
对于我遇到的错误,目前看到的情况是,wx.login 获取到的 code 是无效的,可能是 5 分钟过期了,或者本来就是伪造的 code。https://developers.weixin.qq.com/miniprogram/dev/server/API/user-login/api_code2session.html。
如果是被重复使用,返回应该是 {"errcode":40163,"errmsg":"code been used, rid: 69625bb3-6fc22b79-409ca184"}