在调用微信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即上述乱码情况。
造成结果:小游戏签名验证不通过。
请问怎么解决?
显示乱码可能只是终端不支持,计算签名的时候是不需要把内容显示出来的。
你好,能否创建一个简单代码片段,这边复现看看(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
特别提示:我【不需要】encode后存入数据库这样的操作,【我只是要验证签名登陆。】