特别提示:我【不需要】encode后存入数据库这样的操作,【我只是要验证签名登陆。】
微信昵称有一面小红旗,导致获取微信信息时乱码,无法通过验证。在调用微信wx.getUserInfo()接口时,微信返回的信息有乱码。 乱码如下。造成乱码的原因是用户的微信昵称有一面小红旗。(应该叫emoji表情?) rawData:{\\nickName\\:\\明������������\\,\\gender\\:1,\\language\\:\\zh_CN\\,\\city\\:\\Guilin\\,\\province\\:\\Guangxi\\,\\country\\:\\China\\,\\avatarUrl\\:\\https://wx.qlogo.cn/mmopen/vi_32/xxvmGLk4H8eZ68RZv0Cb2qvjTGria5rnxswJsmcC8kT6Y57M9haLfaRwBJ3JbAsLRm5MUYnXGWJZtH614IOxwNQ/132\\},userInfo:{nickName:明������������,gender:1,language:zh_CN,city:Guilin,province:Guangxi,country:China,avatarUrl:https://wx.qlogo.cn/mmopen/vi_32/xxvmGLk4H8eZ68RZv0Cb2qvjTGria5rnxswJsmcC8kT6Y57M9haLfaRwBJ3JbAsLRm5MUYnXGWJZtH614IOxwNQ/132}, 客户端获取微信信息的重要代码片段。 wx.getUserInfo({ success(res) { resolve(res) }, fail(res) { resolve() } }) url: `${app.networkController.getGateHost()}/gate/auth`, message: { ...userInfo, code, protocol: authProtocol, token: 'MISS ME?' }, 直接从接口获取后传递给服务器。 if (this.client.rawData && this.client.signature) { if (!this.checkSign(this.client.rawData, this.client.signature, accessInfo.session_key)) { console.log('zpmp:签名校验不通过!'); return; }服务器接收到的rawData即上述乱码情况。 造成结果:小游戏签名验证不通过。 请问怎么解决?
2019-11-06