网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

小程序微信登陸獲取openid和unionid

發布時間:2018-04-18 10:55 所屬欄目:小程序開發教程

基于微信生態的產品,微信登陸、模版消息、微信支付、微信分享已經成為標準配置,可以依賴微信強大的用戶基礎和龐大的社交網絡來實現業務目標。

使用微信登錄就是為了獲取openid和用戶的基本信息如昵稱、頭像、性別、所在城市這些內容。如果為了保持多個產品線的用戶統一的話,還需要unionid這個大神器,前提是把APP、小程序、公眾號、網站這些內容綁定到微信開放平臺,訪問 open.weixin.qq.com。否則是獲取不到unionid。

獲取openid有兩種方式 
方式一 
1、調用wx.login(),獲取code

 

				
  1. wx.login({
  2. success: function (res) {
  3. console.log(res.code)
  4. }
  5. })

2、調用wx.request() 根據code、appid、secret這三個參數獲取openid,建議appid、secret在后臺設置,不要網絡上傳輸,通過wx.request()只要把code傳后臺即可

方式二  1、調用wx.getUserInfo() 獲取encryptedData(加密數據),iv(加密算法的初始向量)

 

				
  1. wx.getUserInfo({
  2. withCredentials:true,
  3. success:function(res){
  4. var userInfo = res.userInfo
  5. var nickName = userInfo.nickName
  6. var avatarUrl = userInfo.avatarUrl
  7. var gender = userInfo.gender
  8. var province = userInfo.province
  9. var city = userInfo.city
  10. var country = userInfo.country
  11. var iv = userInfo.iv
  12. var encryptedData = userInfo.encryptedData
  13. }
  14. })

2、把返回的數據iv、encryptedData進行解密獲取openid,這種方式在能獲取openid的同時,也能獲取到unionid,獲取到的數據如下所示

 

				
  1. {
  2. "openId": "OPENID",
  3. "nickName": "NICKNAME",
  4. "gender": "GENDER",
  5. "city": "CITY",
  6. "province": "PROVINCE",
  7. "country": "COUNTRY",
  8. "avatarUrl": "AVATARURL",
  9. "unionId": "UNIONID",
  10. "watermark": {
  11. "appid": "APPID",
  12. "timestamp": "TIMESTAMP"
  13. }
  14. }

微信官方提供了AES解密的demo有PHP、C++、Node、Python,有一期會專門講,悟空來全棧營小程序組提供了一個JAVA版本,在獲取微信轉發群ID的時候也要用到。

注:wx.getUserInfo()默認是獲取不到iv和encryptedData的,需要請求的參數中設置withCredentials為true



易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/23678.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×