|
@@ -313,58 +313,100 @@ const _sfc_main = {
|
|
|
* 获取用户手机号
|
|
|
* @param {Object} e - 事件对象
|
|
|
*/
|
|
|
- async getPhoneNumber(e) {
|
|
|
- console.log("获取手机号事件:", e);
|
|
|
- if (e.detail.errMsg !== "getPhoneNumber:ok") {
|
|
|
- console.error("用户拒绝授权手机号");
|
|
|
- common_vendor.index.showToast({
|
|
|
- title: "获取手机号失败",
|
|
|
- icon: "none"
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
- try {
|
|
|
- common_vendor.index.showLoading({ title: "获取手机号中..." });
|
|
|
- const loginResult = await new Promise((resolve, reject) => {
|
|
|
- common_vendor.index.login({
|
|
|
- provider: "weixin",
|
|
|
- success: resolve,
|
|
|
- fail: reject
|
|
|
- });
|
|
|
- });
|
|
|
- const params = {
|
|
|
- code: loginResult.code,
|
|
|
- encryptedData: e.detail.encryptedData,
|
|
|
- iv: e.detail.iv,
|
|
|
- openid: JSON.parse(common_vendor.index.getStorageSync("userInfo")).openid
|
|
|
- };
|
|
|
- console.log("获取手机号请求参数:", JSON.parse(common_vendor.index.getStorageSync("userInfo")).openid);
|
|
|
- const phoneData = await api_user.getUserPhoneNumber(params);
|
|
|
- console.log("获取手机号成功:", phoneData);
|
|
|
- if (phoneData && phoneData.phoneNumber) {
|
|
|
- const updatedUserInfo = {
|
|
|
- ...this.userInfo,
|
|
|
- phone: phoneData.phoneNumber
|
|
|
- };
|
|
|
- this.userInfo = updatedUserInfo;
|
|
|
- common_vendor.index.setStorageSync("userInfo", JSON.stringify(updatedUserInfo));
|
|
|
- common_vendor.index.showToast({
|
|
|
- title: "手机号绑定成功",
|
|
|
- icon: "success"
|
|
|
- });
|
|
|
- } else {
|
|
|
- throw new Error("未能获取到手机号");
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- console.error("获取手机号失败:", error);
|
|
|
- common_vendor.index.showToast({
|
|
|
- title: error.message || "获取手机号失败",
|
|
|
- icon: "none"
|
|
|
+ getPhoneNumber(e) {
|
|
|
+ if (e.detail.code) {
|
|
|
+ common_vendor.wx$1.request({
|
|
|
+ url: "http:192.168.66.187:8083/wechat/getUserPhoneNumber",
|
|
|
+ method: "POST",
|
|
|
+ data: {
|
|
|
+ code: e.detail.code,
|
|
|
+ // 刚获取的新code
|
|
|
+ openid: this.data.openid
|
|
|
+ }
|
|
|
});
|
|
|
- } finally {
|
|
|
- common_vendor.index.hideLoading();
|
|
|
}
|
|
|
},
|
|
|
+ /* async getPhoneNumber(e) {
|
|
|
+ console.log('获取手机号事件:', e);
|
|
|
+
|
|
|
+ // 检查是否成功获取
|
|
|
+ if (e.detail.errMsg !== 'getPhoneNumber:ok') {
|
|
|
+ console.error('用户拒绝授权手机号');
|
|
|
+ uni.showToast({
|
|
|
+ title: '获取手机号失败',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ uni.showLoading({ title: '获取手机号中...' });
|
|
|
+
|
|
|
+ // 每次都重新获取最新的登录code
|
|
|
+ const loginResult = await new Promise((resolve, reject) => {
|
|
|
+ uni.login({
|
|
|
+ provider: 'weixin',
|
|
|
+ success: (res) => resolve(res),
|
|
|
+ fail: (err) => reject(err)
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ if (!loginResult || !loginResult.code) {
|
|
|
+ throw new Error('获取微信登录凭证失败');
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log('成功获取新的登录code:', loginResult.code);
|
|
|
+
|
|
|
+ // 获取存储的用户信息
|
|
|
+ const userInfoStr = uni.getStorageSync('userInfo');
|
|
|
+ if (!userInfoStr) {
|
|
|
+ throw new Error('用户信息不存在,请重新登录');
|
|
|
+ }
|
|
|
+
|
|
|
+ const userInfo = JSON.parse(userInfoStr);
|
|
|
+
|
|
|
+ // 准备请求参数
|
|
|
+ const params = {
|
|
|
+ code: loginResult.code,
|
|
|
+ encryptedData: e.detail.encryptedData,
|
|
|
+ iv: e.detail.iv,
|
|
|
+ openid: userInfo.openid
|
|
|
+ };
|
|
|
+
|
|
|
+ console.log('获取手机号请求参数:', params);
|
|
|
+
|
|
|
+ // 调用获取手机号API
|
|
|
+ const phoneData = await getUserPhoneNumber(params);
|
|
|
+ console.log('获取手机号成功:', phoneData);
|
|
|
+
|
|
|
+ // 更新用户信息
|
|
|
+ if (phoneData && phoneData.phoneNumber) {
|
|
|
+ const updatedUserInfo = {
|
|
|
+ ...this.userInfo,
|
|
|
+ phone: phoneData.phoneNumber
|
|
|
+ };
|
|
|
+
|
|
|
+ // 更新状态和存储
|
|
|
+ this.userInfo = updatedUserInfo;
|
|
|
+ uni.setStorageSync('userInfo', JSON.stringify(updatedUserInfo));
|
|
|
+
|
|
|
+ uni.showToast({
|
|
|
+ title: '手机号绑定成功',
|
|
|
+ icon: 'success'
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ throw new Error('未能获取到手机号');
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取手机号失败:', error);
|
|
|
+ uni.showToast({
|
|
|
+ title: error.message || '获取手机号失败',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ } finally {
|
|
|
+ uni.hideLoading();
|
|
|
+ }
|
|
|
+ }, */
|
|
|
// 添加刷新 CSRF token 的方法
|
|
|
refreshCSRFToken() {
|
|
|
common_vendor.index.request({
|
|
@@ -510,10 +552,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
}, $data.showAuthModal ? {
|
|
|
l: common_vendor.o((...args) => $options.getUserProfile && $options.getUserProfile(...args)),
|
|
|
m: common_vendor.o((...args) => $options.cancelAuth && $options.cancelAuth(...args))
|
|
|
- } : {}, {
|
|
|
- n: $data.isLogin && !$data.userInfo.phone
|
|
|
- }, $data.isLogin && !$data.userInfo.phone ? {
|
|
|
- o: common_vendor.o((...args) => $options.getPhoneNumber && $options.getPhoneNumber(...args))
|
|
|
} : {});
|
|
|
}
|
|
|
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
|