知識
不管是網(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
相關(guān)案例查看更多
相關(guān)閱讀
- 報(bào)廢車回收
- 軟件定制公司
- 安家微信小程序
- 河南小程序制作
- 網(wǎng)站建設(shè)專業(yè)品牌
- 網(wǎng)站建設(shè)需要多少錢
- 小程序
- 云南網(wǎng)站建設(shè)方案 doc
- 軟件開發(fā)
- 云南建設(shè)廳網(wǎng)站
- python開發(fā)小程序
- 網(wǎng)站搭建
- 云南網(wǎng)站建設(shè)開發(fā)
- 汽車報(bào)廢管理系統(tǒng)
- 云南小程序商城
- 昆明軟件公司
- web教程
- 大理小程序開發(fā)
- 貴州小程序開發(fā)
- 日歷組件
- 百度快速排名
- 微分銷
- 小程序被攻擊
- 海南小程序制作公司
- 云南網(wǎng)站建設(shè)公司排名
- 保險網(wǎng)站建設(shè)公司
- 報(bào)廢車管理系統(tǒng)
- .net網(wǎng)站
- 汽車報(bào)廢管理
- 云南網(wǎng)站建設(shè)公司地址