- (2022年5月)wx.login 接口偶尔会进入 fail 分支?
具体报错信息: `{"errMsg":"login:fail rejected due to no permission currently"}` 场景解释: 用户进入小程序后,我们会直接调用 wx.login 来获取 code,然后 code 发给我们自己的后端,在后端换取 open_id 和 session_keyopen_id 会用于唯一识别,创建一条用户记录(User model)等同于注册了一个用户账号。然后返回 JSON Web Token(JWT) 给微信小程序,小程序会存起来,并且之后的请求中都会带上 JWT。总结:发出去 code,收到 JWT。 简化版总结: 由于 wx.login 获取 code 这一步遇到问题,导致后续业务流程失败。 代码大概长这样: wx.login({ success: (res) => {}, fail: (e) => { log.error(e); log.setFilterMsg("app.js_wx_login"); } }) 补充说明:我们用了微信提供的实时日志功能,具体请参考:https://developers.weixin.qq.com/miniprogram/dev/framework/realtimelog/ 使用方法如下(表达个大概意思,引入+使用,请参照官方文档里给的那个 log.js 就明白了): var log = require("./utils/log.js"); log.error(e); # 在实时日志中看到上报了如下截图的信息。 [图片] 总结: 当 wx.login 失败,我们用微信官方提供的"实时日志"功能,把错误上报。所以在网页后台(如上图)中看到了上述报错。 提问: 为什么 wx.login 会 fail?这里提示 no permission,那么要怎样让用户授权呢?
2022-06-01 - macOS 微信开发者工具-无法显示登录二维码(已解决:用手机热点)
- 当前 Bug 的表现(可附上截图) macOS 微信开发者工具无法正常显示二维码。导致无法登陆。无法登陆也就无法开发。 [图片] - 预期表现 正常显示二维码并且扫码后成功登录 - 复现路径 直接打开开发者工具 - 提供一个最简复现 Demo 无 - 尝试过什么解决方式 重启没有解决问题 - 是否开了全局代理 没有 - 每次都会这样? 不是,也有过了1-2分钟后失败 [图片] 或者只显示一半二维码就停住,然后过了2分钟又恢复空的状态 [图片] [图片]
2019-01-31 - sendTemplateMessage 文档中,代码示例 page 参数错误
[图片] https://developers.weixin.qq.com/miniprogram/dev/api/sendTemplateMessage.html 实测发现,按文档所说的传 index 会出错。 而传 pages/index/index(我们小程序中存在的页面)才成功。 请微信官方修复文档。至少把格式写对
2018-12-28 - wx.chooseImage, compressed 压缩具体做了什么?
在选择图片的接口 wx.chooseImage(Object object) https://developers.weixin.qq.com/miniprogram/dev/api/wx.chooseImage.html 大小有2种选择 sizeType ['original', 'compressed'] 请问 compressed 具体对图片做了什么操作? 图片宽高改为原来的 80%?如果图片超过一定大小就压缩,否则就不压缩? 具体怎么实现的? 希望有官方人员来描述一下 Android 和 iOS 上 compressed 具体做了什么,让我们开发者有个大致概念。 目前文档中只说了选项,但没说这两者之间的区别。所以不知道该选哪个。 我们在做一个以图片为主的小程序(可以大致类比成 Instagram)对小程序中对图片的处理需要有更深入的了解。 文档翻了,社区搜了,没有找到类似的问题和解答,所以发个新问题来问
2018-12-27 - (已解决)大家怎么保存登录态的?实测 setStorageSync 似乎不可靠
提了问题一天后,问题解决了: 不是 setStorageSync 的问题。 是我们自己后端的问题。 原因是我们用 union_id 进行用户的查找 Ruby on Rails 代码如下(片段): User.where(wechat_unionid: unionid) 在用户没有关注公众号的情况下,unionid 是拿不到的,出错了。 换成 open_id 后一切恢复正常。没有关注公众号的新用户在使用小程序的时候也可以正常访问了。 非常感谢各位的热心帮助 ------------------以下是原问题的描述-------------------- 登录态的定义: 自己业务后端给出的 JWT token,比如:eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiZ1hXTSIsImNyZWF0ZWRfYXQiOiIyMDE4LTExLTE0VDE2OjM4OjQ5KzA4OjAwIn0.MmxhdbUOp3U5LA4azLeIj8nXikSWAa0gyD13NF3AXpQ 重点 这个问题的重点不是 JWT,重点是用户登录态的存储方法 (setData/globalData/setStorageSync) 最早时我是用 setStorageSync 存储 token,然后马上从"登录页"跳转到"首页" (备注:我们小程序里只用了微信登录,完全没用手机号+密码登录或者邮箱+密码登录等方法) 另外,因为业务需求,我在"首页"加了登录检测,如果没登录就自动跳到"登录页" 造成了什么问题 在小部分情况下会造成无限跳转,永远困在登录页 具体情况:登录页->首页->登录页->首页->登录页 在我的开发者工具+真机上测不出来这样的问题。但是每次审核的时候就通过不了,每次都是不同的机型报错: 审核拒绝信息: [图片] [图片] [图片] 问题排查 在网上搜了一圈,看到了这篇文章: https://blog.csdn.net/qq_41813695/article/details/80812794 试了一下,把 getStorageSync 从 onLoad 移动到 onShow 里,并没有解决问题。 最新这一次的审核还是失败了(提示 iPhone 5S 用不了) 是否有代码可以重现? 我在本地和真机都无法复现,都是审核的时候说过不了。所以我觉得提供代码应该没啥帮助。 就是很简单的 setStorageSync 然后 getStorageSync 我的 APPID wx3e98618e26700e1b 我想问的问题是 大家都是怎么存储登录态的?(setData/globalData/setStorageSync/其他方法)? 我的计划 (换成 globalData,因为 setStorageSync 实在不可靠,连续2次都无法过审)
2018-11-15 - 微信小程序内保存数据一共只有3种方法对吧?没有更多了(问这个是为了确认下)
方法1:setData 这个方法只是给当前页面设置 方法2:globalData 全局变量 方法3:setStorage/setStorageSyn 是数据缓存,哪怕关掉再打开也是有的(按理来说是这样,个别情况会被清理掉) 之所以问这个问题是想确认下是不是只有这3种,是不是我看文档不够仔细不知道第4,5,6种。 谢谢
2018-11-15 - wx.uploadFile 无法直接上传到 内容安全 接口?
(内容看起来有点长,但实际上只会花费你2-3分钟左右) 你好,我在文档:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/sec-check/imgSecCheck.html 进行内容安全开发。 业务需求是:1. 用户上传头像 2. 用户选择文章题图 3. 用户在文章内上传图 这3个场景中用户可以上传图片。 所以我们想使用 imgSecCheck 进行安全检查,如果是违法违规的图片。就拒绝提交。 我的代码实现是 1- 上传图片到七牛 2- 通过参数拼接,把图片的尺寸降低到 750x1344 大小以下(文档中说了图片宽高限制) 例子:'https://img.example.com/' + res.qiniu_url + '?imageView2/2/w/740/h/1324'; 3. 用 wx.downloadFile 把这个图片下载下来 4. wx.uploadFile 把上一步的图片 + access_token 传给微信内容安全接口 var url = `https://api.weixin.qq.com/wxa/img_sec_check?access_token=${access_token}` wx.uploadFile({ url: url, .... 5. 内容安全接口会返回是否合规。 到上文说的部分目前为止,一切正常。 后来发现在开发者工具里是 OK 的,但是在真机上是不行的。 因为开发者工具里勾选了 "不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书" 于是我把开发者工具取消勾选了 "不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书" 看到报错信息如下: [图片] [图片] 问题: 正确的做法是否是通过自己的后端来上传图片到 imgSecCheck 接口? 而不是直接在微信小程序里通过 wx.uploadFile 做(因为会导致 "不在 uploadFile 合法域名列表" 中) 如果是这样,麻烦在文档里补充提醒一下。避免其他人犯和我一样的错。浪费时间。 谢谢阅读
2018-11-04