欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

微信小程序獲取unionID思路整理 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏壧峁┍憬莸闹С郑?

您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >

微信小程序獲取unionID思路整理

發(fā)表時間:2020-9-24

發(fā)布人:葵宇科技

瀏覽次數(shù):71

小程序能夠獲取到unionid的前提

1.小程序必須綁定在微信開放平臺上,不綁定是沒有的(PS:綁定開放平臺需要開發(fā)者資質(zhì)認(rèn)證,認(rèn)證收費(fèi)的奧)
2.需要微信用戶授權(quán)小程序
具體的代碼實(shí)現(xiàn)(我在index.js的onLoad中實(shí)現(xiàn)的)
encryptedData的解密:模仿 官網(wǎng)給的例子中的 Node 的demo,使用 CryptoJS實(shí)現(xiàn)純 js 下解密用戶信(網(wǎng)上大部分都是用的java服務(wù)器解密的,但是我在調(diào)的時候,到了解密的那一句時,一直報(bào)錯。我們現(xiàn)在用的是直接在微信代碼里解密)

1.加入解密需要的文件,將 CryptoJS 的包放入 小程序的 utils 中(GitHub點(diǎn)擊下載)(RdWXBizDataCrypt.js不在其中需要自己寫,下面有附的代碼,直接復(fù)制即可)

RdWXBizDataCrypt.js

// 引入CryptoJS
var Crypto = require('/cryptojs.js').Crypto;
var app = getApp();

function RdWXBizDataCrypt(appId, sessionKey) {
  this.appId = appId
  this.sessionKey = sessionKey
}

RdWXBizDataCrypt.prototype.decryptData = function (encryptedData, iv) {
  // base64 decode :使用 CryptoJS 中 Crypto.util.base64ToBytes()進(jìn)行 base64解碼
  var encryptedData = Crypto.util.base64ToBytes(encryptedData)
  var key = Crypto.util.base64ToBytes(this.sessionKey);
  var iv = Crypto.util.base64ToBytes(iv);

  // 對稱解密使用的算法為 AES-128-CBC,數(shù)據(jù)采用PKCS#7填充
  var mode = new Crypto.mode.CBC(Crypto.pad.pkcs7);

  try {
    // 解密
    var bytes = Crypto.AES.decrypt(encryptedData, key, {
      asBpytes: true,
      iv: iv,
      mode: mode
    });

    var decryptResult = JSON.parse(bytes);

  } catch (err) {
    console.log(err)
  }

  if (decryptResult.watermark.appid !== this.appId) {
    console.log(err)
  }

  return decryptResult
}

module.exports = RdWXBizDataCrypt

2.index.js頁面中調(diào)用解密演示

index.js

//獲取應(yīng)用實(shí)例
var app = getApp()
var util = require('../../utils/util.js');
var WXBizDataCrypt = require('../../utils/cryptojs/RdWXBizDataCrypt.js');
var appId = '你的微信appid';
var secret = '你的微信secret';
Page({

 
  height="274" src="https://img-blog.csdnimg.cn/20200924145910441.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phY2tpZURZSA==,size_16,color_FFFFFF,t_70" width="1200" />

再補(bǔ)充一下關(guān)于java服務(wù)器的事:
其實(shí)java做的事很簡單,微信小程序有些接口不能用,比如https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code,這個接口現(xiàn)在就不能在小程序用了,但是他又是必須的,微信官方就讓咱們用自己的服務(wù)器去用這個接口。

具體步驟 :
1.小程序請求自己的java服務(wù)器接口
2.java服務(wù)器收到請求,開始請求https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code 這個接口
3.java服務(wù)器將請求到的數(shù)據(jù)返回給微信小程序
4.完事
對就這么簡單,java就做了一個中間過度的作用,這樣就起到了安全作用,具體為什么安全我也不知道,官方說安全我也這樣說了

獲取unionid時注意

附錄

微信官方文檔

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html#%E5%8A%A0%E5%AF%86%E6%95%B0%E6%8D%AE%E8%A7%A3%E5%AF%86%E7%AE%97%E6%B3%95