var Crypto = require('./cryptojs/cryptojs.js').Crypto;
var app = getApp();
function RdWXBizDataCrypt(appId, sessionKey) {
this.appId = appId
this.sessionKey = sessionKey
}
RdWXBizDataCrypt.prototype.decryptData = function (encryptedData, iv) {
encryptedData = encryptedData.replace(/%/g, '%25')
// base64 decode :使用 CryptoJS 中 Crypto.util.base64ToBytes()进行 base64解码
var encryptedData = Crypto.util.base64ToBytes(encryptedData)
var key = Crypto.util.base64ToBytes(this.sessionKey);
var iv = Crypto.util.base64ToBytes(iv);
var bytes='';
var decryptResult ={};
// 对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充
var mode = new Crypto.mode.CBC(Crypto.pad.pkcs7);
try {
console.log(mode);
// 解密
bytes = Crypto.AES.decrypt(encryptedData, key, {
asBpytes: true,
iv: iv,
mode: mode
});
console.log(bytes);
decryptResult = JSON.parse(bytes);
} catch (err) {
console.log(err);
}
if (decryptResult.watermark.appid !== this.appId) {
console.log(err);
}
return decryptResult;
}
module.exports = RdWXBizDataCrypt
开发版测试正常
真机测试
真机测试获取不到手机号了? 而电脑上开发工具是正常的 不是很理解,到底是哪里出问题了
网友回复
启年网络:
是不是禁止授权了?
右上角三个点,设置,点进去看看