水泥钉
水泥钉
  • 发布:2025-05-29 17:25
  • 更新:2025-05-29 17:25
  • 阅读:425

app 微信登录 报错-100

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows11

HBuilderX类型: 正式

HBuilderX版本号: 4.66

手机系统: Android

手机系统版本号: Android 14

手机厂商: 华为

手机机型: x40

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

// #ifdef MP-WEIXIN
// 小程序端仍使用uni.login
uni.login({
provider: "weixin",
onlyAuthorize: true,
success: (res) => {
console.log(res.code, "小程序登录成功");
if (showLoading) {
uni.showLoading({
mask: true,
title: "登录中",
});
}
resolve(res.code);
},
fail: (error) => {
console.log(error, "小程序登录失败");
uni.showToast({
title: "登录失败,请重试",
icon: "none",
});
reject(error);
},
});
// #endif

// #ifdef APP-PLUS  
// APP端使用5+原生方式  
if (showLoading) {  
  uni.showLoading({  
    mask: true,  
    title: "登录中",  
  });  
}  

// 获取登录服务  
plus.oauth.getServices(  
  function (services) {  
    var weixinOauth = null;  
    for (var i in services) {  
      var service = services[i];  
      // 获取微信登录对象  
      if (service.id == "weixin") {  
        weixinOauth = service;  
        break;  
      }  
    }  

    if (!weixinOauth) {  
      if (showLoading) {  
        uni.hideLoading();  
      }  
      uni.showToast({  
        title: "未找到微信登录服务",  
        icon: "none",  
      });  
      reject(new Error("未找到微信登录服务"));  
      return;  
    }  

    // 使用authorize方法获取code(仅授权不获取用户信息)  
    weixinOauth.authorize(  
      function (event) {  
        if (showLoading) {  
          uni.hideLoading();  
        }  
        console.log("微信授权成功", event);  

        // 返回code给调用方  
        if (event.code) {  
          resolve(event.code);  
        } else {  
          // 如果没有code,返回整个event对象  
          resolve(event);  
        }  
      },  
      function (error) {  
        if (showLoading) {  
          uni.hideLoading();  
        }  
        console.log("微信授权失败", error);  

        let errorMsg = "登录失败,请重试";  

        // 处理5+App的错误码  
        if (error.code) {  
          switch (error.code) {  
            case -2:  
              errorMsg = "用户取消登录";  
              break;  
            case -3:  
              errorMsg = "发送失败";  
              break;  
            case -4:  
              errorMsg = "授权拒绝";  
              break;  
            case -5:  
              errorMsg = "微信未安装";  
              break;  
            case -6:  
              errorMsg = "微信版本不支持,请更新微信";  
              break;  
            case -7:  
              errorMsg = "微信登录配置错误,请联系开发者";  
              break;  
            case -100:  
              // 特别处理-100错误  
              if (error.innerCode === -6) {  
                errorMsg = "微信版本过低,请更新微信到最新版本";  
              } else {  
                errorMsg = "网络发送失败,请检查网络连接";  
              }  
              break;  
            default:  
              errorMsg = `登录失败(${error.code})`;  
          }  
        }  

        uni.showToast({  
          title: errorMsg,  
          icon: "none",  
          duration: 3000,  
        });  
        reject(error);  
      }  
    );  
  },  
  function (error) {  
    if (showLoading) {  
      uni.hideLoading();  
    }  
    console.log("获取微信登录服务失败", error);  
    uni.showToast({  
      title: "获取登录服务失败",  
      icon: "none",  
    });  
    reject(error);  
  }  
);  
// #endif

bug描述:

app 做微信登录 使用login api调用一直报错 {"errMsg":"login:fail send","errCode":-100,"code":-100,"innerCode":-6} 但是使用5+app的方式是可以正常授权登录的 login接口文档说的app不是可以使用么用来获取code

2025-05-29 17:25 负责人:无 分享
已邀请:

要回复问题请先登录注册