应用程序开发公司
软件开发

针对您的项目需求及预算规划量身制定方案

个体/中小企业/集团/政府机构/行业组织 了解详情 了解详情

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

发布时间:2024-01-17 16:55 浏览次数:43


背景


老朋友出席微信小程序的公测,由于公司之前已经存有自己的服务大号,累积转变了大量的会员


所以在搞小程序时,必须同时实现会员的互通,想起的就是 unionid


研发文档


wx.login(OBJECT)


调用USB以获取登入凭证(code)进而赚取用户登入态信息,包含用户的唯一标识(openid) 及本次登入的 可以话密钥(session_key)


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


wx.getUserInfo(OBJECT)


以获取用户信息,须要先调用 wx.login USB


其中须要的unionid在调用顺利回到的


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


就是个加密数据,解密算法


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


同时实现


code 赚取 session_key


前端先调 wx.login 获得code


后端的赚取session_key和openid, openid回到前端,session_key留存(内存)解密用


特别注意:一个code就可以赚取一次;


再次调用 wx.login, 可以引致上一次的 session_key 失灵,解密出的都就是乱码


2. 解密


前端先调 wx.getUserInfo 获得encryptData


用login回到的openid,encryptData 阳入后端解密


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


报“充填违宪,无法被去除”异常


在网上搓了一圈,也没有找出有价值的信息,最终在github上,打听拎了参照代码,自己再干嘛,才解密顺利


结语


代码本身没啥牛逼的,期望贴出来能够对后面的研发伙伴有所协助 :)

TAG标签:
阅读推荐