前期小程序开发只进行到根据微信用户登录获取的code 去微信的API去获取到该用户的openId和session_key,到了第二阶段,老大让我重写OAuthManager的代码来实现微信小程序和微信公众号平台获取用户信息的优化,即将OAuthManager重写成父类抽象类,微信小程序(WechatAppManager)和微信公众号(PublicAccountMananger)来继承并开发,具体方法不赘述。。。 在开发微信小程序的时候,由于对于需求的不理解,导致半天都发在获取用户信息的方法上,由于微信小程序没有access_token,所以,用户信息只能从前台发出,后台负责接收并封装JSON格式的用户信息。。。 在这里,我要重点阐述我在发送JSON信息时候所遇到的低级错误!!! 1.发送JSON格式信息,需要Headers添加
后台始终接收不到,就因为少了一个这个headers,接着因为JSON的格式是
请注意好JSON格式,格式错了也是发不过去的,可以上网在线监测自己的JSON格式,后台接收的时候,我出于方便的目的,用dto的形式接收将json数据封装成一个dto,直接接收
WechatAppUser里只有两个属性(code , wechatAppUserInfo(wechatAppUserInfo)是一个封装类) 我将rawData和encryptData也进行了封装。。。 经过一系列的封装,反序列化之后,我们需要将encryptData数据进行解密,这个解密的过程让我心焦。。。 整了两天才发现原来是自己的数据出问题。。。 加密数据解密算法 接口如果涉及敏感数据(如wx.getUserInfo当中的 openid ),接口的明文内容将不包含敏感数据。开发者如需要获取敏感数据,需要对接口返回的加密数据( encryptData )进行对称解密。 解密算法如下:
上网各种百度该解密算法,让我在千万条链接中找到了它
解密的代码
灰常好,这里我们就可以得到微信用户的基本信息以及最重要的unionId UnionID机制说明: 如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。 简而言之就是根据这个字段,用户在数据库中只会存在一条数据!!! encryptData 解密后为以下 json 结构
|
nyoj_lvy实战开发系列《一》:发送JSON信息,加密数据解密算法,UnionID机制说明
发布:2018-01-29 09:45浏览: 次来源:网络 作者:cola
免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。
相关文章
- 微信小程序开发工具 常用快捷键2018-06-09
- 微信小程序架构分析《一》调试技巧,模块构成,理念分析2018-02-07
- 微信小程序架构分析《二》:view 模块和 service 模块的构成2018-02-07
- 微信小程序架构分析《三》:实现过程以及实时更新2018-02-07
- 梁兴臣:微信小程序开发三宗罪和解决方案2018-02-07
- 微信小程序使用Promise实践2018-02-07
- 微信小程序开发系列分析《一》视图层2018-02-07
- 微信小程序开发系列分析《二》数据层2018-02-07
- 微信小程序官方文档个人分析心得2018-02-07
- 微信小程序的原型设计尝鲜2018-02-07