const util = require('./utils/util.js');
const api = require('./utils/api.js');
App({
// onLaunch: function () {
// let that = this;
// util.checkSettingStatu(); //鉴定授权
// that.checkLogin().then(flag => {
// //判定登录状态,如果登录了,则处理
// console.log(flag)
// }).catch((error) => {
// console.log(error);
// that.loginByWeixin().then(res => {
// console.log(res);
// }).catch((err) => {
// console.log(err);
// });
// });
// },
onLaunch: function () {
let that = this;
// 展示本地存储能力
var logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
if (res.code) {
wx.getUserInfo({
success: resInfo => {
that.globalData.userInfo = resInfo.userInfo
//发起网络请求
wx.request({
url: util.host + api.AuthLoginByWeixin,
method: "POST",
header: {
'content-type': 'application/x-www-form-urlencoded'
},
data: {
EncryptedDataStr: resInfo.encryptedData,
Code: res.code,
Iv: resInfo.iv,
Sn: " "
},
success: function (resInfo_openid) {
var data = JSON.parse(resInfo_openid.data);
console.log(data);
if (data.code == 200){
var UserId = data.map.F_Id; //应该会返回unionid
var SellerID = data.map.UserId; //应该会返回unionid
var dataInfo= JSON.parse(data.data);
wx.setStorageSync('UserId', UserId);
wx.setStorageSync('SellerId', SellerID);
wx.setStorageSync('AvatarUrl', data.map.AvatarUrl);
wx.setStorageSync('JoinDate', data.map.JoinDate);
wx.setStorageSync('Phone ', data.map.Phone);
wx.setStorageSync('Country', data.map.Country);
wx.setStorageSync('Province', data.map.Province);
wx.setStorageSync('City', data.map.City);
wx.setStorageSync('Gender', data.map.Gender);
wx.setStorageSync('NickName', dataInfo.NickName);
wx.setStorageSync('Token', data.map.Token);
wx.setStorageSync('OpenId', data.map.OpenId);
console.log("Token==============" + data.map.Token);
console.log("OpenId==============" + data.map.OpenId);
}
else{
console.log("返回代码:" + data.code + "返回信息:" + data);
}
},
fail: function (error) {
var varError = error;
}
})
},
fail: function (resInfo) {
console.log("getUserInfo失败")
}
})
}
else {
console.log('获取用户登录态失败!' + res.errMsg)
}
}
})
// 获取用户信息
wx.getSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
wx.getUserInfo({
success: res => {
// 可以将 res 发送给后台解码出 unionId
this.globalData.userInfo = res.userInfo
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
if (that.userInfoReadyCallback) {
that.userInfoReadyCallback(res)
}
}
})
}
else{
// 未授权,跳转到授权页面
wx.reLaunch({
url: '/pages/auth/auth',
})
console.log("没有授权")
}
}
})
},
// 登录
loginByWeixin: function () {
let that = this;
let code = null;
return new Promise(function (resolve, reject) {
return that.login().then((res) => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
code = res.code;
return that.getUserInfo();
}).then((userInfo) => {
wx.setStorageSync('weixin', userInfo.userInfo);
that.globalData.weixin = userInfo.userInfo;
util.request(api.AuthLoginByWeixin, {
code: code
}).then(res => {
wx.setStorageSync('wxuserID', data.map.F_Id);
resolve(res);
}).catch((err) => {
reject(err);
});
}).catch((err) => {
reject(err);
})
});
},
//鉴权登录状态
checkLogin: function () {
let that = this;
return new Promise(function (resolve, reject) {
if (wx.getStorageSync('weixin')) {
that.checkSession().then((res) => {
resolve(res);
}).catch((err) => {
reject(err);
});
} else {
reject(false);
}
});
},
//wx.checkSession
checkSession: function () {
return new Promise(function (resolve, reject) {
wx.checkSession({
success: function (res) {
resolve(res);
},
fail: function (err) {
reject(err);
}
})
});
},
//wx.getUserInfo
getUserInfo: function () {
return new Promise(function (resolve, reject) {
wx.getUserInfo({
withCredentials: true,
success: function (res) {
resolve(res);
},
fail: function (err) {
reject(err);
}
})
});
},
//wx.login
login: function () {
return new Promise(function (resolve, reject) {
wx.login({
success: function (res) {
if (res.code) {
resolve(res);
} else {
reject(res);
}
},
fail: function (err) {
reject(err);
}
});
});
},
globalData: {
weixin: null,
userInfo: null,
ApiUrl:"https:/api.baidu.com/",
},
})