微信授權
阿新 • • 發佈:2022-04-15
<button class="cc" open-type="getUserInfo" @getuserinfo="getUserInfo" v-if="!canIUseGetUserProfile"> <u-icon name="weixin-fill" color="#fff" size="38"></u-icon> <text style="padding-left:8px">微信一鍵授權</text> </button>
getUserInfo(res) {if (res.detail && res.detail["iv"] && res.detail["encryptedData"]) { const data = { iv: res.detail.iv, phone: uni.getStorageSync("phone"), encryptedData: res.detail.encryptedData }; weixinCheck(data, this.num); } else { uni.showToast({ title:"微信授權失敗", icon: "none", duration: 2000 }); } },
uni.login({ provider: "weixin", success: loginRes => { console.log("loginRes", loginRes); console.log("siteId", uni.getStorageSync("siteId")); params = params || {}; loginByWechat({ terminalType:"C", principalType: uni.getStorageSync("sourceType"), // store.state.user.sourceType, principalId: uni.getStorageSync("sourceId"), // store.state.user.sourceId, siteId: uni.getStorageSync("siteId"), // store.state.user.siteId, jsCode: loginRes.code, ...params }) .then(res => { handleLoginInfo(res, num); }) .catch(err => { console.log("debug log --> ", err); uni.showToast({ title: err, icon: "none", duration: 2000 }); const timer = setTimeout(() => { // uni.redirectTo({ // url: "/authorize/index" // }); clearTimeout(timer); }, 2000); }); }, fail: loginErr => { uni.showToast({ title: loginErr, icon: "none", duration: 2000 }); const timer = setTimeout(() => { uni.redirectTo({ url: "/authorize/login" }); clearTimeout(timer); }, 2000); } });
手機號授權
<button style=" margin-bottom: 15px;" class="cc" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber"> <u-icon style=" vertical-align: middle;" name="weixin-fill" color="#fff" size="38"></u-icon> <text style="padding-left:8px">微信手機號一鍵繫結</text> </button>
getPhoneNumber: function(e) { console.log("debug log --> ", e); this.show = false; if (e.detail.errMsg === "getPhoneNumber:fail user deny") { wx.showToast({ icon: "none", title: "請允許獲取手機號,否則功能不可用!" }); return; } if (this.loginSuccess) { var ency = e.detail.encryptedData; var iv = e.detail.iv; const data = { iv: iv, jsCode: this.code, encryptedData: ency // nickName: uni.getStorageSync("name") }; weixinCheckPhone(data); } },