appid: wx2e46348cf0fded74 时间点: 2019-07-04 16点20分 微信号: wxid_x4yfwws0jqen22 日志已经上报....这个用户一直打不开. 如果是服务器问题, 那我们应该也打不开, 用户一直在loading, 直到6秒超时, 这期间我们是可以打开的. 反复测试过多次,
request:fail socket time out timeout- 当前 Bug 的表现(可附上截图) - 预期表现 - 复现路径 - 提供一个最简复现 Demo 大量的请求 超时 错误信息: request:fail socket time out timeout:60000 我们每次请求都有requestId, 这个请求ID, 在网关系统找不到, 也就是说这个请求根本就没有到达网关. 我看帖子里面也有很多相关问题, 目前没有一个统一官方回复. 希望官方能给个明确的回复. 相关帖子, 里面的错误信息, 我基本都有 https://developers.weixin.qq.com/community/develop/doc/0000a63354c9e803eac71271851800?highLine=request%253Afail%2520socket%2520time%2520out%2520timeout%253A60000 大家好, 才是真的好. 谢谢
2019-07-04我们一直有这个问题, invalid form id hint: [JW5jLA08933113], 41028, touser: oTuMe0X6e4l_hycJkiAXWyJCi1RA formId: wx2016523094342878aaee8deb1655155600 template_id: i450ZIvobcMnewvGOgIWQIOyiT6UsoDZub6T09afxc0 表单ID, 是预支付ID, 一直都有这问题出现, 很多用户收不到模版消息, 希望官方重视一下这个问题.
小程序发送模板消息,invalid form id hint,41028【请求参数】:{"touser":"xxxxx","template_id":"xxxxxx","page":"/pages/detail/detail?infoId=9","form_id":"wx1918415460291372d09d0a101415601000","data":{"keyword1":{"value":"2019年06月19日"},"keyword2":{"value":"19061979014689"},"keyword3":{"value":"2019-06-19 18:41:54"},"keyword4":{"value":"0.01"},"keyword5":{"value":"前端开发"}}} 【错误信息】:{"errcode":41028,"errmsg":"invalid form id hint: [ePJQla09203938]"} 为什么安卓和iOS 的真机,用同样的小程序体验版本,安卓可以发送成功,iOS报上面的错误?
2019-06-20又出现了, 请问这是什么问题啊, 能尽快回复吗?
授权登录, code为空- 当前 Bug 的表现(可附上截图) [图片] 昨晚0点之后突然大量出现, 之前线上运行一直都好好的. 截至到11点03分, 错误又没有抛出! 如果这是微信的问题? 否告知原因? 谢谢!!!!! - 预期表现 传过来的code不应该没有值啊. - 复现路径
2018-11-19我也出现这个问题了,部分手机会出现,页面打不开,空白的. [图片]
调试时只显示app.json中配置的前几个页面手机上只显示app.json中的"pages"数组中注册的前几个页面,其他页面会报 May be caused by:1.Forgot to add page route in app.json.2.Invoking Page() in async task. Page is not constructed because it is not found. 但是虽然页面不显示,可这些页面的js还是能运行,数据也都能请求到。我确定我这些页面都在"pages"数组中注册过了,而且如果把某个页面的路由写在"pages"数组中靠前的位置就能正常加载,后面的就加载不到了。
2018-10-29现在也有这个问题, 你是怎么解决的?
login api去刷新sessionkey 是不是异步发生的现在我先授权获取了iv 、encryptedData ,然后调取login 获取jscode (相当于刷新了session_key)。 然后把上述三个参数传到后台,后台根据jscode获取session_key,然后去解密encryptedData,一定几率也能解密成功,所以我怀疑login 去刷新session_key的时候是异步执行的,有一定的时间差。请问对不对
2018-09-20解决了吗? 我也出现这个问题, 偶尔解密失败了
sessionKey 和 signature 解密encryptedData报错开发者通过小程序 wx.login 接口获取jscode ,传给服务器 服务器用jscde 获取sessionKey ..然后根据 小程序 wx.getUserInfo 接口获得用户基本信息的 加密数据encryptedData... 在解密过程中 . 由于 sessionKey 和 signature 不匹配... 解密失败 然后这个过程 并不是每次都失败..是偶尔失败... 我推测..是不是 手机wx.getUserInfo 接口获取的 signature 与服务器通过jscode 获取的 sessionKey不匹配...是因为某种缓存的原因 ? 2018年07月31日14:30:26 MEOS
2018-09-20然后呢, 你是怎么解决的? 我现在解密异常, 偶尔会出现, 我不知道是不是这个问题造成的?
使用按钮getUserInfo会导致session_key错位先调用wx.login还是先用按钮调用getUserInfo。 我现在的这个流程,encryptedData始终无法解密。 getUserInfo > wx.login > 根据code获取session_key > 解密encryptedData > GG思密达 始终无法解密。。。php和node和python我都试过了,都不能解密。 看网上有帖子说可能是session_key错位了。 我保留了这次的session_key,和下次的iv和encryptedData进行解密。没想到居然成功了。 讲真,用按钮getUserInfo是真的为难人。程序猿何必为难程序员。 [图片] [图片]
2018-09-20encryptedData 解密失败啊, 你们是怎么解决的啊?
小游戏解密分享群的openGid报错pad block corrupted[代码]public[代码] [代码]static[代码] [代码]byte[代码][代码][] decryptOfDiyIV([代码][代码]byte[代码][代码][] encryptedData, [代码][代码]byte[代码][代码][] keyBytes,[代码][代码]byte[代码][代码][] ivs) {[代码][代码] [代码][代码]byte[代码][代码][] encryptedText = [代码][代码]null[代码][代码];[代码][代码] [代码][代码]init(keyBytes);[代码][代码] [代码][代码]try[代码] [代码]{[代码][代码] [代码][代码]Cipher cipher = Cipher.getInstance(algorithmStr, [代码][代码]"BC"[代码][代码]);[代码][代码] [代码][代码]cipher.init(Cipher.DECRYPT_MODE, key, [代码][代码]new[代码] [代码]IvParameterSpec(ivs));[代码][代码] [代码][代码]encryptedText = cipher.doFinal(encryptedData);[代码][代码] [代码][代码]} [代码][代码]catch[代码] [代码](Exception e) {[代码][代码] [代码][代码]// TODO Auto-generated catch block[代码][代码] [代码][代码]e.printStackTrace();[代码][代码] [代码][代码]}[代码][代码] [代码][代码]return[代码] [代码]encryptedText;[代码][代码] [代码][代码]}[代码]登录获取userinfo,解密是没有问题的。分享群获取openGid的时候,有些人是正常的,有些就会报错 javax.crypto.BadPaddingException: pad block corrupted at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher$BufferedGenericBlockCipher.doFinal(Unknown Source) at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineDoFinal(Unknown Source) at javax.crypto.Cipher.doFinal(Cipher.java:2165)
2018-09-20请问你们是怎么解决的啊, 我现在遇到大概率的encryptedData 解密失败, 反复重新登录两次就好了, 是不是以为你 getuserInfo 和login 的顺序执行顺序的问题造成的啊?
button=bindgetuserinfo的点击与wx.login先后顺序之前通过 `wx.getUserInfo()` 获取用户信息时,它有个前提条件要求先 `wx.login()` 而且未过期。现在换成通过按钮触发的形式后,是在哪一个阶段获取授权code呢?是在点击按钮之前就要获取到code?还是在bindgetuserinfo的回调函数内部获取code? 在bindgetuserinfo的回调函数内部获取的code,会不会是无效的? 以为部分JS源码(mpvue): [代码] [代码][代码]export [代码][代码]default[代码] [代码]{[代码] [代码] [代码][代码]methods: {[代码] [代码] [代码][代码]async onGetUserInfo (res) { [代码][代码]// bindgetuserinfo的回调函数[代码] [代码] [代码][代码]const that = [代码][代码]this[代码] [代码] [代码][代码]const { userInfo, errMsg, encryptedData, iv } = res.target[代码] [代码] [代码][代码]if[代码] [代码](errMsg === [代码][代码]'getUserInfo:ok'[代码][代码]) {[代码] [代码] [代码][代码]wx.login({[代码] [代码] [代码][代码]success (loginRet) {[代码] [代码] [代码][代码]if[代码] [代码](loginRet[[代码][代码]'code'[代码][代码]]) {[代码] [代码] [代码][代码]that.loginAfter({[代码] [代码] [代码][代码]userInfo,[代码] [代码] [代码][代码]encryptedData,[代码] [代码] [代码][代码]iv,[代码] [代码] [代码][代码]code: loginRet[[代码][代码]'code'[代码][代码]][代码] [代码] [代码][代码]})[代码] [代码] [代码][代码]}[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]complete (loginRet) {[代码] [代码] [代码][代码]if[代码] [代码](!loginRet[[代码][代码]'code'[代码][代码]]) {[代码] [代码] [代码][代码]wx.showModal({ title: [代码][代码]'授权失败'[代码] [代码]})[代码] [代码] [代码][代码]}[代码] [代码] [代码][代码]}[代码] [代码] [代码][代码]})[代码] [代码] [代码][代码]}[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]loginAfter ({ userInfo, encryptedData, iv, code }) {[代码] [代码] [代码][代码]// 服务端通过 code 获取 session_key 再解密 decrypted 获取 openid unionid[代码] [代码] [代码][代码]}[代码] [代码] [代码][代码]}[代码] [代码] [代码][代码]}[代码] [代码]</script>[代码] ============================ 补充,问题已经解决了,下面是一些心得: 在做小程序授权登录时, 不同的人有不同的实现细节, 导致有各种不一致的描述, 与他人进行沟通讨论的时候, 思想很难保持同步。 ### 微信官网登录时序图示例 ![](https://images2018.cnblogs.com/blog/1303135/201809/1303135-20180906120150079-810857681.png) ### `wx.login()`会刷新 session_key 吗 ![](https://images2018.cnblogs.com/blog/1303135/201809/1303135-20180906211103650-366063863.png) 下面是我连续3次测试的结果, 可以看出三个不同的 code 得到相同 session_key: ``` | code | session_key | | - | - | | 061AlTTl1NN1Xk0ZmcUl1iZ0Ul1AlTTi | eTVWziFnhu2vG+iVrjDOqA== | 071Rl0SD0Dd7Sc2hkkOD0asORD0Rl0SW | eTVWziFnhu2vG+iVrjDOqA== | 071wl53j2qtQCH0SfKZi2SVN2j2wl53d | eTVWziFnhu2vG+iVrjDOqA== ``` 我决定等待10分钟之后再去尝试: ``` code_xxx LMiKHyNLaGHidXqSsg4Ung== ``` 果然 session_key 发生了变化,这和[官网文档说明](https://developers.weixin.qq.com/miniprogram/dev/api/signature.html#wxchecksessionobject)符合: > 原文:微信不会把session_key的有效期告知开发者。我们会根据用户使用小程序的行为对session_key进行续期。用户越频繁使用小程序,session_key有效期越长。 ### 数据签名校验? ![](https://images2018.cnblogs.com/blog/1303135/201809/1303135-20180906213036296-17637551.png) 签名算法 `signature = sha1( rawData + session_key )` ,意味着两个参数都相同,或者两个参数都不同,其签名才可能一致。所有我一个大胆的尝试,如果我更改我的性别或者昵称,那么前端得到的rawData 也会发生变更,session_key 也会发生变更,才能通过签名验证。可惜的是我更改了我的用户信息之后,通过调试发现 rawData 并没有立即发生变更。 ### 我个人当前的做法 每次涉及到解密用户信息时,前端都会重新回去授权 code ,服务端使用 code 获取 session_key,然后再解密。 虽然微信小程序官网有说明 code 的有效期为5分钟,经过测试发现不止5分钟(我发现10分钟也没过期)。但是为了避免 code 过期,还是要注意相关的逻辑。 ### 总结 希望上面的几个比较重要的点能够帮助你,同时希望你留言一起讨论大家的实现区别,谢谢您的阅读!
2018-09-20你好, 我也遇到这个问题了, 你解决了吗? 如果解决了,能和我说一下怎么解决的吗?
input focus失效(ios)[图片] [图片](别的页面父子传值type类型boolean可行) [图片] 使用wepy框架,同一页面渲染用户选择流程信息,默认focus为true,当下一步时失焦,在进行到第五步时需返回第二步,此时需重置focus,将其转换为false,在安卓系统下无问题,ios失效??? 官方求解答
2018-09-13