服務項目
品牌網站建設

數字營銷

係統平台開發

數字產品

安全運維

Menu
官网开云
官网开云
微信小程序用戶信息解密 C#
時間:2016-10-13 18:24:00
  • 背景

有幸參加微信小程序的內(nei) 測,由於(yu) 公司之前已經有自己的服務大號,積累轉化了大量的會(hui) 員

所以在做小程序時,要實現會(hui) 員的互通,想到的是 unionid

 

  • 開發文檔

wx.login(OBJECT)

調用接口獲取登錄憑證(code)進而換取用戶登錄態信息,包括用戶的唯一標識(openid) 及本次登錄的 會(hui) 話密鑰(session_key)

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

wx.getUserInfo(OBJECT)

獲取用戶信息,需要先調用 wx.login 接口

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

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

是個(ge) 加密數據,解密算法

參見:https://mp.weixin.qq.com/debug/wxadoc/dev/api/signature.html

 

  • 實現
  1. code 換取 session_key

前端先調 wx.login 得到code

後端換取session_key和openid, openid返回前端,session_key保存(緩存)解密用

注意:一個(ge) code隻能換取一次;

再次調用 wx.login, 會(hui) 導致上一次的 session_key 失效,解密出來的都是亂(luan) 碼

  2. 解密

前端先調 wx.getUserInfo 得到encryptData

用login返回的openid,encryptData 調後端解密

剛開始按開發文檔,用C# 係統自帶AES解密失敗

報“填充無效,無法被移除”異常

在網上扒拉了一圈,也沒找到有用的信息,最終在github上,找帶了參考代碼,自己再改改,才解密成功

  • 結語

代碼本身沒啥牛逼的,希望貼出來能對後麵的開發夥(huo) 伴有所幫助 :)

Kaiyun体育官方全站入口服務SERVICE
谘詢
微信掃碼谘詢
電話谘詢
400-888-9358