解释以下代码 getPhoneNumber(e) { var that = this wx.login({ success(res) { if (res.code) { api.get(weixinopenphonenumber, { code: res.code, encryptedData: e.detail.encryptedData, iv: e.detail.iv }).then(res => { if (res.Code == 200) { wx.setStorageSync('phone', res.Data.phone) that.setData({ islogin: false, phone: wx.getStorageSync('phone') }) wx.showToast({ title: '获取手机号成功', })}}) } else { console.log('登录失败!' + res.errMsg) }}, fail(err) { wx.showToast({ title: '登录超时', icon: 'none' })}})},
时间: 2024-02-10 08:07:35 浏览: 138
ab * bc * ca / (4 * S);
double A[3][4] = {
{a.x, a.y, ab*ab/2-r*r, a.x*a.x+a.y*a.y-ab*ab/4-r*r/2},
{b这段代码实现了获取用户手机号的功能。首先,调用wx.login()方法获取用户登录凭证(code),然.x, b.y, bc*bc/2-r*r, b.x*b.x+b.y*b.y-bc*bc/4-r*r后将其与加密的用户手机号信息(e.detail.encryptedData)和加密算法的初始向量(e.detail.iv)一起发送到后台接口(api.get())中进行解密处理。如果解密成功,将手机号存储到本地/2},
{c.x, c.y, ca*ca/2-r*r, c.x*c.x+c.y*c.y-ca*缓存中(wx.setStorageSync()),并在页面中展示出来(that.setData()),同时弹出一个提示框(wx.showToast())ca/4-r*r/2}
};
solve_equation(A, 3);
Point center = {A[0][3显示获取手机号成功的信息。如果登录失败,或者获取用户手机号的过程中出现错误,也会有相应的提示信息。
相关问题
getOpenid: function () { var app = this; var openidStor = wx.getStorageSync('openid'); if (openidStor) { console.log('本地获取openid:' + openidStor); app.globalData.openid = openidStor; app._getMyUserInfo(); } else { wx.login({ success(res) { console.log('获取的code', res) if (res.code) { //发起网络请求获取openid wx.request({ url: app.globalData.baseUrl + '/user/getOpenid', data: { code: res.code }, success: function (res2) { let openid=res2.data console.log("Java后台返回的openid", openid) wx.setStorageSync('openid', openid) app.globalData.openid = openid; app._getMyUserInfo();
这段代码是使用微信登录时获取用户的 openid。具体流程如下:
1. 首先从本地缓存中获取 openid,如果本地缓存中已经存储了 openid,则直接使用本地缓存中的 openid,并调用 `_getMyUserInfo()` 函数获取用户信息。
2. 如果本地缓存中没有 openid,则调用 `wx.login()` 函数获取用户的 code,然后将 code 发送给后台服务器,后台服务器使用 code 和 appid、appsecret 交换获取 openid。
3. 获取到 openid 后,将其存储到本地缓存中,并调用 `_getMyUserInfo()` 函数获取用户信息。
需要注意的是,这里的 `_getMyUserInfo()` 函数是自定义函数,用于获取用户信息。
怎么让以下代码避免回调地狱 wxqyLogin: function () { var _this = this; wx.qy.login ({ suiteId: '', // 非必填,第三方应用的 suiteid,自建应用不填。若第三方小程序绑定多个第三方应用时,建议填上该字段 success: function (res) { if (res.code) { // 发起网络请求 wx.request ({ url: https://localhost:44342/api/wechat-work-js/code2-session/${res.code}, data: null, method: 'POST', header: {'content-type': 'application/json' // 默认值}, // 请求成功时的处理 success: function (res) { // 一般在这一打印下看看是否拿到数据 console.log ("登录 wx.qy.login", res.data.data); if (res.data.data.errmsg == 'ok') { _this.globalData.corpid = res.data.data.corpid; _this.globalData.userid = res.data.data.userid; _this.globalData.session_key = res.data.data.session_key; //console.log (_this.globalData) } else { wx.showToast ({ title: ' 登陆失败 ', icon: 'none', mask: true }); } } }) } else { console.log (' 登录失败!' + res.errMsg) } } }); },
以下是使用 Promise 的改写方法:
```
wxqyLogin: function () {
var _this = this;
wx.qy.login({
suiteId: '', // 非必填,第三方应用的 suiteid,自建应用不填。若第三方小程序绑定多个第三方应用时,建议填上该字段
})
.then(res => {
if (res.code) {
return wx.request({
url: `https://localhost:44342/api/wechat-work-js/code2-session/${res.code}`,
data: null,
method: 'POST',
header: {'content-type': 'application/json'},
});
} else {
throw new Error(`登录失败!${res.errMsg}`);
}
})
.then(res => {
console.log("登录 wx.qy.login", res.data.data);
if (res.data.data.errmsg == 'ok') {
_this.globalData.corpid = res.data.data.corpid;
_this.globalData.userid = res.data.data.userid;
_this.globalData.session_key = res.data.data.session_key;
} else {
throw new Error('登陆失败');
}
})
.catch(error => {
console.error(error);
wx.showToast({
title: '登陆失败',
icon: 'none',
mask: true
});
});
},
```
使用 async/await 的改写方法:
```
wxqyLogin: async function () {
try {
const res1 = await wx.qy.login({suiteId: ''});
if (res1.code) {
const res2 = await wx.request({
url: `https://localhost:44342/api/wechat-work-js/code2-session/${res1.code}`,
data: null,
method: 'POST',
header: {'content-type': 'application/json'},
});
console.log("登录 wx.qy.login", res2.data.data);
if (res2.data.data.errmsg == 'ok') {
this.globalData.corpid = res2.data.data.corpid;
this.globalData.userid = res2.data.data.userid;
this.globalData.session_key = res2.data.data.session_key;
} else {
throw new Error('登陆失败');
}
} else {
throw new Error(`登录失败!${res1.errMsg}`);
}
} catch (error) {
console.error(error);
wx.showToast({
title: '登陆失败',
icon: 'none',
mask: true
});
}
},
```
这样做可以让代码更加清晰易读,避免回调地狱的嵌套。
阅读全文