const https = require('https');
const WXBizDataCrypt = require('./WXBizDataCrypt.js');
const getSessionKey = (jsCode,iv,encryptedData) => {
const Appid = 'your appId';
const AppSecret = 'your appSecret';
let url = 'https://api.weixin.qq.com/sns/jscode2session?appid='+Appid+'&secret='+AppSecret+'&js_code='+jsCode+'&grant_type=authorization_code';
https.get( url , (response) => {
let body = [];
// console.log(response.statusCode);
// console.log(response.headers);
response.on('data', (chunk) => {
body.push(chunk);
});
response.on('end', () => {
// body = Buffer.concat(body);
let data = Buffer.concat(body).toString();
let getData = JSON.parse(data);
// console.log(data);
// console.log({
// session_key: getData.session_key
// });
let sessionKey = getData.session_key;
// console.log(sessionKey);
let pc = new WXBizDataCrypt(Appid, sessionKey)
let getPhone = pc.decryptData(encryptedData , iv)
let phone = getPhone.phoneNumber;
console.log('解密后 phone: ', phone)
return phone;
});
});
}
let jsCode = 'your jsCode';
let iv = 'your iv';
let encryptedData = 'your encryptedData';
getSessionKey(jsCode,iv,encryptedData);
return phone这个值怎么拿到
肯定是不能用return的,异步的特性。
es6不熟悉
用常规的思路大概写一下