云函数调用成功,但是信息没返回,报错-601005
发布于 7 年前 作者 junye 6799 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)
<button class="login-btn" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">登 录</button>

在客户端上使用,获取到的phoneNumber信息里面,咩有cloudId信息,然后导致,调用云函数的时候报错了。在开发工具调试的时候,是没有问题的。

  • 预期表现

希望能在客户端正常获取到手机号

代码

wxml

<button class="login-btn" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">登 录</button>

js

getPhoneNumber (e) {
    var that = this;
    console.log(e)
    if (!e.detail.errMsg || e.detail.errMsg != "getPhoneNumber:ok") {
      wx.showModal({
        content: '不能获取手机号码',
        showCancel: false
      })
      return;
    }
    wx.showLoading({
      title: '获取手机号中...',
    })
    wx.cloud.callFunction({
      name: 'getUserCode',
      data: {
        phoneNumber: wx.cloud.CloudID(e.detail.cloudID), // 这个 CloudID 值到云函数端会被替换
        obj: {
          shareInfo: wx.cloud.CloudID(e.detail.cloudID), // 非顶层字段的 CloudID 不会被替换,会原样字符串展示
        }
      },
      success: (res) => {
        console.log(res)
        if (res.errMsg === 'cloud.callFunction:ok') {
          wx.hideLoading()
          console.log('success')
          that.searchMember(res.result.event.phoneNumber.data.phoneNumber)
          // that.searchMember('18672726661')
        }
      }
    })
  },

云函数里面

const cloud = require('wx-server-sdk')
exports.main = (event, context) => {
  // 这里获取到的 openId、 appId 和 unionId 是可信的,注意 unionId 仅在满足 unionId 获取条件时返回
  let { OPENID, APPID, UNIONID } = cloud.getWXContext()
 
  return {
    OPENID,
    APPID,
    UNIONID,
    event
  }
}

开发工具上截图

3 回复

好吧,在本文编辑的时候,官方还没有发2.8.0。这个是2.8.0的功能,只是文档先行了。QAQ

整成代码段

获取手机号相关的代码贴一下

回到顶部