收藏
回答

共享环境,使用 button 组件获取手机号,云函数报 cloudID not belong to

框架类型 问题类型 终端类型 AppID 环境ID 基础库版本
小程序 Bug 微信iOS客户端 wxdbe90149dd66f4c6 qdpay-5gwpanamfebf8ba3 2.14.1

我是同一主体下的两个小程序,其中 A 开通了云开发,B 使用 A 共享的环境,现在在 B 中使用按钮获取手机号时,cloudID 传给云函数,报错如下图


云函数报错:


// index.wxml
    <t-button wx:if="{{authMobileBtnVisible }}" block="{{true}}" class="" open-type='getPhoneNumber' bindgetphonenumber="getPhoneNumber" theme="primary" size="">
      授权手机号码
    </t-button>


// index.js
/* 获取手机号 */
  getPhoneNumber: async function (params) {
    let that = this;
    let cloudID = params.detail.cloudID; // 开放数据ID
    if (!cloudID) {
      console.log('[my][getPhoneNumber] 获取 cloudID 为空', cloudID);
      return;
    }
    app.globalData.cloud.callFunction({
      name: 'getphone',
      data: {
        cloudID: cloudID
      }
    }).then(async res => {
      console.log(res);
    }).catch(error => {
      console.log('[my][getPhoneNumber] 请求云函数 getphone 失败', error)
    })
  },


// 云函数 getphone
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  const res = await cloud.getOpenData({
    list: [event.cloudID]
  })
  console.log(res);
  // 这里获取到的 openId、 appId 和 unionId 是可信的,注意 unionId 仅在满足 unionId 获取条件时返回
  let { OPENID, APPID, UNIONID } = cloud.getWXContext()
  let phone = res.list[0].data.purePhoneNumber
  console.log("OPENID : " + OPENID)


  return {
    phone,
    OPENID
  }
}




回答关注问题邀请回答
收藏

2 个回答

登录 后发表内容
问题标签