w***@163.com
w***@163.com
  • 发布:2022-07-27 10:45
  • 更新:2023-09-16 15:40
  • 阅读:943

【报Bug】Error: [getPhoneNumber]: 5000:errCode: 5000 | errMsg: 获取手机号码失败:gyuid不合法

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: Alpha

HBuilderX版本号: 3.5.2

手机系统: 全部

手机厂商: 华为

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

ios14.3,ios15.6,安卓

示例代码:

// 云函数
'use strict';

const db = uniCloud.database()
exports.main = async (event) => {
const res = await uniCloud.getPhoneNumber({
appid: 'UNI', // 替换成自己开通一键登录的应用的DCloud appid
provider: 'univerify',
apiKey: 'xxxxxxx', // 在开发者中心开通服务并获取apiKey
apiSecret: 'xxxxxxx', // 在开发者中心开通服务并获取apiSecret
access_token: event.access_token,
openid: event.openid
})
// 执行入库等操作,正常情况下不要把完整手机号返回给前端
await db.collection('regUser').add({
openid: event.openid, //前端提交过来的数据
PhoneNumber: res.phoneNumber,
createTime: Date.now()
})

return res  

}

操作步骤:

同一代码,同时在ios和安卓手机运行,安卓正常使用一键登录,ios会报错gyuid不合法

预期结果:

ios、安卓都正常使用

实际结果:

ios报错,安卓正常

bug描述:

报错信息:Error: [getPhoneNumber]: 5000:errCode: 5000 | errMsg: 获取手机号码失败:gyuid不合法
同一代码,苹果手机一键登录会报错,在安卓系统下正常

2022-07-27 10:45 负责人:无 分享
已邀请:
DCloud_UNI_Anne

DCloud_UNI_Anne

gyuid不合法: 排查一下 客户端获取token使用的appid 与 调用云函数获取手机号时使用的appid是否不一致

  • w***@163.com (作者)

    你好排查了,appid手机是一致的,安卓正常,ios报错gyuid不合法,hbuildx版本回退到3.5.1.20220707-alpha 版本ios和安卓都正常,升级到新版本3.5.2.20220719-alpha版本报错,3.5.3也报错

    2022-07-28 11:01

  • 3***@qq.com

    回复 w***@163.com: 请问有解决么,我也遇到同样的问题

    2023-09-26 20:47

w***@163.com

w***@163.com (作者)

3.5.2.20220719-alpha版本报错,一键登录不上,报errMsg: 获取手机号码失败:gyuid不合法

3.5.1.20220707-alpha 版本ios和安卓都正常

金丝猴

金丝猴 - 牛逼的自动剪辑APP,99%过原创

一般出现gyuid不合法是因为两个app共用了一个云函数

两个APP可以共用一个云空间,但是必须多建一个云函数,下面是修改步骤:

1、修改云函数名称:getPhoneNumber改为getPhoneNumberLeopard

2、修改index.js第26行代码:uniCloud.getPhoneNumber改为uniCloud.getPhoneNumberLeopard

3、修改第27行appid:UNIEE86C0E

4、修改package.json:"path": "/http/get_phone_leopard"

5、修改服务器上API路径:http/get_phone_leopard 跟第4步路径一致即可

要回复问题请先登录注册