请问我完全按照官网写的代码,返回数据为啥不对,
云端:
// index.js
const cloud = require('wx-server-sdk')
exports.main = (event, context) => {
// 这里获取到的 openId、 appId 和 unionId 是可信的,注意 unionId 仅在满足 unionId 获取条件时返回
const { OPENID, APPID, UNIONID } = cloud.getWXContext()
return {
OPENID,
APPID,
UNIONID,
}
}
手机端:
wx.cloud.init({
env: '********'
})
wx.cloud.callFunction({
name: 'test',
complete: res => {
console.log('callFunction test result: ', res)
}
})
返回的内容:总是按照测试模板这种格式返回:
{
"key1": "test value 1",
"key2": "test value 2",
"userInfo": {
"appId": "******",
"openId": "**********************************"
}
}
并不是按照我期望的
return {
OPENID,
APPID,
UNIONID,
}返回3个数据,而是这种格式的:这是日志中看到的{"event":{"userInfo":{"appId":"******","openId":"*****"}},"openid":"*****","appid":"****"}
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html
UnionID 机制说明
如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。
还不是这个原因,因为我又上传了一个官网例子:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => ({
sum: event.a + event.b
})
app端:
wx.cloud.callFunction({
// 云函数名称
name: 'add',
// 传给云函数的参数
data: {
a: 1,
b: 2,
},
})
.then(res => {
console.log("*****************************")
console.log(res.result) // 3
console.log("*****************************")
})
.catch(console.error)
从云端的日志看到:
返回结果:
{"event":{"a":1,"b":2,"userInfo":{"appId":"wxcf*********5","openId":"oAd9Z5********egAw"}},"openid":"oAd9Z5*********klZNlf8egAw","appid":"wxcff********05"} 没有看到和为5这个结果,并且返回格式和前面那个例子一模一样。
刚才说错了一点,是没有看到和为3这个结果,刚才错写为5了