获取用户手机号码,一般都是用户注册,有意向下单,对这种偶发性解密失败是零容忍。
获取微信手机号, 解密手机号码偶尔失败?使用方法: 1.小程序调用wx.login,后台会把sessionkey存入数据库没有设置过期时间 2.用户点击"我的"页面会检查session是否过期。当需要解密用户信息需要用到sessionkey时,小程序端checksession看是否登录过期,如果过期,进行重新登录,更新数据库的sessionkey,解密用更新后的sesskonkey;如果没有过期,直接调用后台解密,用的是数据库当前的sessionkey 1.用的小程序组件 <button class="phone cu-btn line round" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"> 获取手机号 </button> 以上这种使用,会出现偶尔解密失败,如下报文: 开始解析请求报文:{"openId":"otdJ85WS4_-smz-Bk3Vbb7Z6TpO0","encryptedData":"jHpilc+/JnVFmO+nesdjGYMwfP/9T18ejgDgqeiPJJkFSn6KAC3iUfGgxpy47XClyWnsw8IcyCKeY859wEpxnYyOKCVN24HNPNJOawjKD5kuNkp6qWbd7fO86MtnIL6n1xMoB07eRMLLvk7CsGfUe2wyoNZZtAPuc0Ndogq6VqNbh3LH+JyWTeNvxpfnSDgvbzfvBE2FAr8+kM6bFM+lmw==","iv":"N+gnWn9zbkkJp+awnfVi0w=="} 解密微信用户数据异常 解密后用户信息:null 因为是偶发性,不太好定位,很多帖子也没有看到好的解决方案,求会用的大神赐教。 刚想出来一个方案,应该可以很优雅的处理,能成功解密,给用户比较好的体验,待验证: 1.使用sessionkey前先进行wx.login,更新数据库的sessionkey(解决99%的解密问题) 2.使用<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>组件,用户点击获取手机号码并授权 3.在获取手机号码回调函数中,先checksession(如果用户在获取手机号码界面停留时间过长,刚更新的sessionkey可能过期) 4.checksession检查没有过期,说明数据库和微信手机号码加密的sessionkey一致,一定会解密成功(checksession时间在微信加密时间后都没过期,解密过程中sessionkey过期也不会影响解密成功),正常解密调用后台,如果后台返回失败,调用wx.login,刷新数据库的sessionkey,跳转到6 5.checksession检查过期,调用wx.login,刷新数据库的sessionkey(解决1%解密问题) 6.让用户重试获取手机号码,提示用户:没有获取到手机号码,请重试(检查过期页面要在用户点击获取手机号码的按钮页面)
2020-06-11非常感谢各位,问题已经找到了,是我的请求发送有问题。 错误发送: [代码]https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN[代码] access_token的值需要放在url后面,其他的参数放到post表单中。自己坑自己了。
微信发送模板消息access_token无效- 当前 Bug 的表现(可附上截图) [图片] 通过access_token在线获取的token,立即调用微信模板消息发送(其他地方没有调用),微信端报错:errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [bTqVOa0296szc5!]",非常费解不理解。 请求报文: 请求报文:{"access_token":"21_LGjvQ_u36j0Bnk7tBbj92i29T6NXNa9B3CimhljzIeBWKoIRKYYLbJsfkQ2_PC26Ra8nyBNoUDNYz2N63XowFYCPNOs3MVNixQZ62yNSySL1laD2wCWbj6QakTgMv4CAOcV7lwxr0z9tvd2wNFEaAAARJI","data":{"keyword3":{"value":"审核通过"},"keyword4":{"value":"请尽快发货并在售后单填写发货单号!"},"keyword1":{"value":"BACK201905291511506773"},"keyword2":{"value":"退货审核"}},"form_id":"the formId is a mock one","template_id":"xCiLItlc9iIBWOINr8uqVtKnLRaXDPu8sweZHMrVyrg","touser":"oSlx45K6DWKkB3sv3EL4BFBJqbao"} - 预期表现 - 复现路径 - 提供一个最简复现 Demo
2019-05-29