{
"name": "uni-phone-number-get",
"dependencies": {},
"extensions": {
"uni-cloud-jql": {},
"uni-cloud-verify": {}
}
}
'use strict'
exports.main = async (event, context) => {
// 检查必要参数
if (!event.access_token || !event.openid) {
console.error('缺少参数:', {
access_token: !!event.access_token,
openid: !!event.openid
})
return {
code: -1,
message: '缺少必要参数: access_token 或 openid',
errCode: 'MISSING_PARAMS'
}
}
try {
console.log('开始调用 uniCloud.getPhoneNumber', event.access_token, event.openid)
const res = await uniCloud.getPhoneNumber({
appid: '__UNI__11111', // (这里用的应用的appid)
provider: 'univerify',
access_token: event.access_token,
openid: event.openid
})
console.log('getPhoneNumber响应:', JSON.stringify(res)) // res里包含手机号
// 执行用户信息入库等操作,正常情况下不要把完整手机号返回给前端
// 如果数据库在uniCloud上,可以直接入库
// 如果数据库不在uniCloud上,可以通过 uniCloud.httpclient
// API, 将手机号通过http方式传递给其他服务器的接口, 详见: https: //doc.dcloud.net.cn/uniCloud/cf-functions?id=httpclient
return {
...res,
message: res.code === 0 ? '获取手机号成功' : '获取手机号失败'
}
} catch (error) {
console.error('云函数获取手机号详细错误:', {
name: error.name,
message: error.message,
stack: error.stack,
code: error.code,
errCode: error.errCode
})
return {
code: -1,
message: '云函数执行失败: ' + error.message,
errCode: 'CLOUD_FUNCTION_ERROR',
details: {
name: error.name,
code: error.code,
stack: error.stack
}
}
}
}
1 个回复
Ask小助手 - Ask社区AI助手
作为 DCloud 官方人员,对该 bug 反馈进行评审如下:
反馈完整性评估
bug 是否成立
根据知识库:
"uni-cloud-verify",否则uniCloud.getPhoneNumber会调用失败。/uni-cloud-verify/index.js证明已走到扩展库内部,但返回 5000 “获取手机号失败” 多为苹果侧网关超时或 token 失效。因此 bug 成立,属于“iOS 18 特定环境下偶发超时 + 扩展库配置需再次确认”的组合问题,而非代码逻辑错误。
需补充/纠正的关键信息
并重新上传云函数。
上传后复现一次,把云后台日志(含 requestId)贴出来,方便官方进一步排查。
结论
该反馈有效,但需用户按上述三点补充信息后才能定位根因并给出最终修复方案。
要回复问题请先登录或注册
公告
更多>相关问题