加载中…

无法获取用户 Openid

在使用 “apifm-wxapi” 模块开发小程序过程中,很多用户可能会遇到很多问题; _无法获取 openid_ _当前登录token无效,请重新登录_ # 解决办法 ## 查看系统日志排查错误 ![](https://dcdn.it120.cc/yuque/0/2022/png/572726/1666264578441-d09b8107-ad02-4e6e-9578-9c458d78e8d4.png) 如果这里有错误信息,优先根据这里的信息进行排查,例如: ```latex 无法获取openid, code(043GXZZv3nuMqZ2RX34w3LVL4r2GXZZy),接口返回({"errcode":40164,"errmsg":"invalid ip 139.196.253.167 ipv6 ::ffff:139.196.253.167, not in whitelist, rid: 635115cc-49d9f49b-2d1df27a"}) ``` 那就说明你设置了IP白名单,而你又没有把 “api工厂” 的服务器IP加上去。 所以你要么取消白名单的设置;要么把“api工厂” 的服务器IP加上去: ```latex 106.14.43.122;106.15.66.205;139.196.253.167;121.36.243.129;47.103.1.124;139.196.174.85 ;103.88.32.13;103.88.32.128;110.42.39.111 ``` ## 设置了IP白名单 ![](https://dcdn.it120.cc/yuque/0/2022/png/572726/1666409588266-e5b65e91-8f6d-498d-b14a-f7aa0df298c6.png) ## 初始化 “apifm-wxapi” 的时候,有没有正确配置你的专属域名 + ```javascript WXAPI.init('gooking') ``` **这句代码必须要写到小程序js文件的 onLoad 方法里面!不要放在头部!** 这里的 “gooking” 一定要是你自己的专属域名 [《免费注册开通后台,获得专属域名》](https://www.yuque.com/apifm/doc/qr6l4m) ## api 安全域名有没有设置 > 开发工具上可以设置不校验 api安全域名 > 可以参考这篇文章的域名设置章节: [《使用 “apifm-wxapi” 快速开发小程序》](https://www.yuque.com/apifm/doc/mdldsd) > 如果是正式上线,请参考下面的文章进行设置 > [《微信小程序合法服务器域名如何设置?》](https://www.yuque.com/apifm/doc/tvpou9) ## 确保下面3个地方的 appid 必须要保持一致 - 登录你的小程序商户后台([https://mp.weixin.qq.com](https://mp.weixin.qq.com/))左侧菜单 “开发” --> “开发设置” 中的 appid - 点击你的小程序开发工具 右上角 的“详情” --> “基本信息” 中的 appid - 登录你的 api工厂 后台([https://admin.it120.cc](https://admin.it120.cc/)),左侧菜单微信设置中的 appid ## code 重复使用 code 只能使用一次,不要在登录和注册逻辑中使用同一个code,code使用一次后即失效,如果是同一个code使用多次,就会出现问题: [《临时登录凭证 code 只能使用一次》](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html) ## 重新编译小程序 ![](https://dcdn.it120.cc/yuque/0/2019/png/572726/1572847528068-a10d9c26-a377-4ce6-9821-79b51135a791.png)