1. 已经在微信开放平台中同时绑定了一个微信公众号(服务号)和一个小程序,小程序和微信公众号都是同一个主体。
2. 通过微信公众平台接口调试工具,可以通过微信公众号的appId取得用户的unionId:
3. 在已经绑定的小程序(未正式上线,在开发工具中运行)
类似如下代码取得code,然后传给服务器:
wx.login({
success (res) { if (res.code) { //发起网络请求
wx.request({ url: 'https://test.com/onLogin', data: { code: res.code
}
})
} else { console.log('登录失败!' + res.errMsg)
}
}
})
服务器使用code,并通过code2session接口完成登录流程
GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
根据文档:
应该会返回unionID,但是实际的返回却没有unionid:
[2018-11-09 06:43:14] local.DEBUG: code2Session {"session":{"session_key":"2RM9EqVl7glXQeOg9SnCPg==","openid":"oyjCu4lepGsDzKmu__pCU723OqkI"}}
我也看了这个文档:
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html
用户已经关注了公众号,但是还是无法拿到unionid,谁能告诉我是怎么回事么?
关注了绑定到同一个开放平台的正式公众号(测试公众号无效) 就可以直接获取到
不关注 就需要 button getuserinfo 后台解密
我现在的逻辑是 先去通过code获取 获取不到 就显示一个带button的页面 让用户点击(同时提示用户关注公众号)
我把另一个小程序同时绑定到了微信开放平台后,这个小程序终于能返回了unionid,这都是什么鬼条件啊,资料上也没写啊!
要么是开放平台设置还没生效,要么是你绑定的小程序不是你当前的小程序。
检查下appid是否对应得上。
1 重新检查了一下小程序的appid
和小程序是一致的:
2 从小程序页面上来看已经绑定生效了
等明天再看??
公众号和小程序绑定到开放平台我是昨天做的。不知道是不是因为小程序没上线?有关系吗?