uni-app 微信登陆首次无法获取到unionid

uni-app 微信登陆首次无法获取到unionid

操作步骤:

大概率下载APP后,首次微信登陆 一般都获取不到unionid, 再点一次就可以了, 我目前的做法是,第一次获取失败抛出异常提示,让用户再登陆一次,就可以了,

预期结果:

一次登陆获取到unionid

实际结果:

实际需要两次

bug描述:

app端配置微信登录后, 首次启动应用,点微信登陆 获取不到unionid值, 第二次就可以了,

这个问题我搜了下论坛还有别人也遇到,请问这到底咋解决啊 https://ask.dcloud.net.cn/question/82442

首次启动,获取不到unionid

{
    "openid": "oe3SxwiPXzM2FpA6gI2wSwqnV7uo",
    "access_token": "41_F8KHp7bnWtqmsla4EDsEh08bV_BCJZ1vBIkfrLk-mtbchqdK1FyQtpekafkjrj6e7MtPQpMmgqBaqXF12EmSas5lLZbw-cMAn3ud3LzWsMs",
    "expires_in": 7200,
    "refresh_token": "41_9u-6r_ZfMM52-_XgTTc-ZUWGrMQYgWjxKe2s_rNs4vuNYFBHYCZl-HiB1KKVkv13lZ384fuvmK_QZztYNytfi-9nnD9sT8ZGMDMMHJfgIOA",
    "scope": "snsapi_userinfo"
}

第二次就正常了

{
    "access_token": "41_vBGxJ0u7uonLCIf4Z9LqthAH-NkrvFR6xwWF-6LDGAo0iADt97J8zq2Z6MjbL72c8lP0RMQ6u37SEc0rY733cKtN19TiLndQB_u97jrzYe8",
    "expires_in": 7200,
    "refresh_token": "41_UZ5gkx2femf1t7P-2XOcgvNSvvwdI8jwkPbpG7Ks-XGctE1EjhudZzDti2BSuf3LC4zD3N3gKL-i25dILDzKR3SaDPxTPVKevQQRQ_LMDuU",
    "openid": "oe3SxwiPXzM2FpA6gI2wSwqnV7uo",
    "scope": "snsapi_userinfo",
    "unionid": "oIj-N1mpuze9u76aUv7a-3cUAdUE"
}
项目信息 详情
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win10
HBuilderX类型 正式
HBuilderX版本号 3.0.7
手机系统 Android
手机系统版本号 Android 10
手机厂商 小米
手机机型 小米9
页面类型 nvue
打包方式 云端
项目创建方式 HBuilderX

更多关于uni-app 微信登陆首次无法获取到unionid的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

相当坑,这么长时间没人处理

更多关于uni-app 微信登陆首次无法获取到unionid的实战教程也可以访问 https://www.itying.com/category-93-b0.html


官方人员抓紧解决一下这个问题吧

这是一个已知的微信登录问题,主要是由于微信授权机制导致的。首次登录时微信服务器可能没有及时返回unionid,需要二次授权才能获取。

解决方案:

  1. 检查微信开放平台配置是否正确,确保已绑定应用并开启了unionid功能
  2. 在manifest.json中确认微信SDK配置正确
  3. 可以尝试在首次登录失败后自动重试一次,而不是让用户手动操作

核心代码建议:

uni.login({
  provider: 'weixin',
  success: (res) => {
    if(!res.authResult.unionid) {
      // 首次失败自动重试
      uni.login({
        provider: 'weixin',
        success: (retryRes) => {
          // 处理带unionid的结果
        }
      });
    }
  }
});
回到顶部