收藏
回答

getWXContext为空值

框架类型 问题类型 终端类型 AppID 基础库版本
小游戏 Bug 客户端 wxf725b2125c28ed41 2.4.0

- 当前 Bug 的表现(可附上截图)

服务端,A函数调用B函数,A函数能通过getWXContext获取openid,B函数无法通过调用getWXContext获取openid(A函数的请求来源于客户端)

- 预期表现

B函数可以通过调用getWXContext获取openid

- 复现路径


- 提供一个最简复现 Demo


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

3 个回答

  • 2019-06-26

    本地测试遇到相同问题,A调用B时,如果B内的 getWXContext返回 undefined, 改为云调用,还是一样,cloud.getWXContext() OPENID为undefined,但是

    appid, env, 可以获得,

    当然,如果直接调用 B getWXContext 工作正常



    2019-06-26
    有用
    回复 3
    • 2019-06-26

      仔细回想,发现好像前几天 我也用 云函数C调用过 B,也是没问题的,好像自从升级了最近两个版本开发工具就问题不断,还一直有一个错误 501011, tem screats expire

      2019-06-26
      回复
    • 2019-06-26

      再次测试 C调用B, 还是在 B 内 openid undefined

      2019-06-26
      回复
    • 2019-06-26

      最近每次更新上传云函数,都会有权限更新提示,查看文档,没发现与这种调用相关的内容,是不是云函数的调用要设置权限,如何设置?

      2019-06-26
      回复
  • 2018-11-17

    这就是我的A函数,接受客户端的请求,通过cloud.getWXContext()是能取到OPENID的,里面调用了setAnswser这个云函数

    // 云函数入口文件
    const cloud = require('wx-server-sdk')
     
    cloud.init()
     
    const db = cloud.database();
     
    // 云函数入口函数
    exports.main = async (event, context) => {
        const {
            OPENID,
            APPID,
            UNIONID,
        } = cloud.getWXContext();
     
        await cloud.callFunction({
            name: "setAnswer",
            data: {
                openid: OPENID,
                grade: grade,
                requesterId: requesterId
            }
        });
    }

    这是我的setAnswer函数,这里通过cloud.getWXContent()取出来的OPENID就是个undefined

    // 云函数入口文件
    const cloud = require('wx-server-sdk')
     
    cloud.init()
     
    const db = cloud.database();
     
    // 云函数入口函数
    exports.main = async (event, context) => {
        const {
             OPENID,
             APPID,
             UNIONID,
        } = cloud.getWXContext();
    }


    2018-11-17
    有用
    回复
  • 郑家乐
    郑家乐
    2018-11-16

    请提供详细错误


    2018-11-16
    有用
    回复
登录 后发表内容