uni-app uni-id个人中心的头像和手机号码在支付宝小程序中失效

发布于 1周前 作者 itying888 来自 Uni-App

uni-app uni-id个人中心的头像和手机号码在支付宝小程序中失效

示例代码:

uniid插件

操作步骤:

uniid插件,在支付宝小程序部分失效

预期结果:

应该正常使用

实际结果:

部分失效

bug描述:

uni-id个人中心的头像和手机号码在微信小程序可以正常上传头像和获取或者填写手机号码,但是在支付宝小程序中失效,头像上传了无反应,点击手机号也没反应,自然无法填写或者获取了

image

项目 信息
产品分类 uniapp/小程序/阿里
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win10
HBuilderX类型 正式
HBuilderX版本号 3.99
第三方开发者工具版本号 3.7.9
基础库版本号 2.8.2
项目创建方式 HBuilderX

1 回复

uni-app 中使用 uni-id 管理用户信息时,如果在支付宝小程序中遇到头像和手机号码失效的问题,可能是由于以下原因导致的:

1. 支付宝小程序的权限问题

  • 支付宝小程序对用户信息的获取有严格的权限控制,尤其是用户的头像和手机号码等敏感信息。
  • 确保在 manifest.json 中正确配置了支付宝小程序的权限,并且在代码中正确调用了相关 API 来获取用户授权。

解决方案:

  • manifest.json 中配置支付宝小程序的权限:
    "mp-alipay": {
      "appid": "your-appid",
      "permission": {
        "scope.userInfo": {
          "desc": "获取用户信息"
        },
        "scope.phoneNumber": {
          "desc": "获取用户手机号码"
        }
      }
    }
  • 在代码中调用 uni.getUserInfouni.getPhoneNumber 获取用户信息:
    uni.getUserInfo({
      success: (res) => {
        console.log('用户信息:', res.userInfo);
      },
      fail: (err) => {
        console.error('获取用户信息失败:', err);
      }
    });
    
    uni.getPhoneNumber({
      success: (res) => {
        console.log('用户手机号码:', res.phoneNumber);
      },
      fail: (err) => {
        console.error('获取手机号码失败:', err);
      }
    });

2. uni-id 的配置问题

  • uni-id 的配置可能没有正确适配支付宝小程序的用户信息获取方式。
  • 确保 uni-id 的配置文件中正确配置了支付宝小程序的 appidsecret

解决方案:

  • uni-id 的配置文件中检查支付宝小程序的配置:
    {
      "dcloudAppid": "your-dcloud-appid",
      "mp-alipay": {
        "appid": "your-alipay-appid",
        "secret": "your-alipay-secret"
      }
    }

3. 支付宝小程序的用户授权问题

  • 用户可能没有授权支付宝小程序获取其头像和手机号码。
  • 确保在用户首次使用时,弹出授权请求,并且用户同意授权。

解决方案:

  • 在用户首次进入小程序时,弹出授权请求:
    uni.authorize({
      scope: 'scope.userInfo',
      success: () => {
        console.log('用户信息授权成功');
      },
      fail: (err) => {
        console.error('用户信息授权失败:', err);
      }
    });
    
    uni.authorize({
      scope: 'scope.phoneNumber',
      success: () => {
        console.log('手机号码授权成功');
      },
      fail: (err) => {
        console.error('手机号码授权失败:', err);
      }
    });

4. 支付宝小程序的 API 更新

  • 支付宝小程序的 API 可能会更新,导致原有的获取用户信息的方式失效。
  • 确保使用的 uni-app 版本和支付宝小程序的 API 是最新的。

解决方案:

  • 更新 uni-app 到最新版本,并检查支付宝小程序的 API 文档,确保使用最新的 API。

5. uni-id 的版本问题

  • uni-id 的版本可能较旧,不支持支付宝小程序的最新特性。
  • 确保 uni-id 是最新版本。

解决方案:

  • 更新 uni-id 到最新版本:
    npm install uni-id -g
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!