# Cloud.getWXContext(): Object
支持端:云函数
在云函数中获取微信调用上下文
# 返回值
# Object
wxContext
| 属性 | 类型 | 说明 |
|---|---|---|
| OPENID | string | 小程序用户 openid,小程序端调用云函数时有 |
| APPID | string | 小程序 AppID,小程序端调用云函数时有 |
| UNIONID | string | 小程序用户 unionid,小程序端调用云函数,并且满足 unionid 获取条件时有 |
| FROM_OPENID | string | 调用来源方小程序/公众号用户 openid,跨账号调用时有 |
| FROM_APPID | string | 调用来源方小程序/公众号 AppID,跨账号调用时有 |
| FROM_UNIONID | string | 调用来源方用户 unionid,跨账号调用时有,并且满足 unionid 获取条件时有 |
| ENV | string | 云函数所在环境的 ID |
| SOURCE | string | 调用来源(云函数本次运行是被什么触发) |
| CLIENTIP | string | 小程序客户端 IPv4 地址 |
| CLIENTIPV6 | string | 小程序客户端 IPv6 地址 |
| OPEN_DATA_INFO | string | 通过云函数获取开放数据时,可用此校验入参中的开放数据是否来自微信后台 |
# 使用说明
SOURCE 值跟随调用链条传递,会表示调用链路情况(用英文逗号分隔),比如小程序调用云函数 A,再在云函数 A 内调用云函数 B,则 A 获得的 SOURCE 为 wx_client, B 内获得的 SOURCE 为 wx_client,scf(微信小程序调用,然后云函数调用)。
SOURCE 的枚举类型:
| SOURCE 值 | 含义 |
|---|---|
| wx_devtools | 微信 IDE 调用 |
| wx_client | 微信小程序调用 |
| wx_http | 微信 HTTP API 调用 |
| wx_trigger | 云函数定时触发器调用 |
| wx_paycallback | 微信支付回调 |
| wx_crawler | 微信小程序爬虫调用 |
| wx_localdebug | 微信 IDE 本地调试调用 |
| wx_unknown | 微信未知来源调用 |
| scf | 云函数调用云函数 |
| 其他 | 非微信端触发 |
如果在云函数本地调试中,ENV 会为 local,SOURCE 会为 wx_client。
OPEN_DATA_INFO:
通过云函数获取开放数据时,可用此校验入参中的开放数据是否来自微信后台。
此值类型为 string,有可能为空,JSON 字符串。解开之后的格式:
{
keys: ['包含微信后台给的开放数据字段 1', '包含微信后台给的开放数据字段 2']
}
# 注意事项
请不要在 exports.main 外使用 getWXContext,此时尚没有调用上下文,无法获取得到信息。
# 示例代码
const cloud = require('wx-server-sdk')
exports.main = async (event, context) => {
const {
OPENID,
APPID,
UNIONID,
ENV,
} = cloud.getWXContext()
return {
OPENID,
APPID,
UNIONID,
ENV,
}
}