欢迎光临,了解微信小程序开发,就上易用通!

微信小程序用户信息解密 C#

发布:2018-01-26 09:41浏览: 来源:网络 作者:cola

背景有幸参加微信小程序的内测,由于公司之前已经有自己的服务大号,积累转化了大量的会员所以在做小程序时,要实现会员的互通,想到的是 unionid开发文档wx.login(OBJECT)调用接口获取登录凭证(code)进而换取用户 ...

 
 
 
  • 背景

有幸参加微信小程序的内测,由于公司之前已经有自己的服务大号,积累转化了大量的会员

所以在做小程序时,要实现会员的互通,想到的是 unionid

 

  • 开发文档

wx.login(OBJECT)

调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key)

参见:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html?t=1474887500719

wx.getUserInfo(OBJECT)

获取用户信息,需要先调用 wx.login 接口

其中需要的unionid在调用成功返回的

微信小程序用户信息解密 C#(图1)

参见:https://mp.weixin.qq.com/debug/wxadoc/dev/api/open.html?t=1474887500618

是个加密数据,解密算法

微信小程序用户信息解密 C#(图2)

参见:https://mp.weixin.qq.com/debug/wxadoc/dev/api/signature.html

 

  • 实现
  1. code 换取 session_key

前端先调 wx.login 得到code

后端换取session_key和openid, openid返回前端,session_key保存(缓存)解密用

微信小程序用户信息解密 C#(图3)

注意:一个code只能换取一次;

再次调用 wx.login, 会导致上一次的 session_key 失效,解密出来的都是乱码

  2. 解密

前端先调 wx.getUserInfo 得到encryptData

用login返回的openid,encryptData 调后端解密

刚开始按开发文档,用C# 系统自带AES解密失败

微信小程序用户信息解密 C#(图4)

报“填充无效,无法被移除”异常

在网上扒拉了一圈,也没找到有用的信息,最终在github上,找带了参考代码,自己再改改,才解密成功

微信小程序用户信息解密 C#(图5)

  • 结语

代码本身没啥牛逼的,希望贴出来能对后面的开发伙伴有所帮助 :)

 





免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。