getunionid

解释:获取unionid

unionid说明

  • 同一主体下的不同小程序,开发者可以通过unionid实现跨小程序的用户区分。从用户角度看,每个用户在同一主体下的小程序内unionid是唯一的。

  • unionid获取依赖用户登录授权,登录授权过程授权流程说明getunionid - 图1,请妥善处理用户未授权场景。

接口调用请求说明

  1. POST https://openapi.baidu.com/rest/2.0/smartapp/getunionid?access_token=ACCESS_TOKEN

方法参数

Header 参数

参数名类型是否必须描述
Content-Typeapplication/x-www-form-urlencodedHttp的实体首部字段,浏览器原生form表单。

query参数

参数名类型是否必须描述
access_tokenstring接口调用凭证getunionid - 图2

post参数

参数名类型是否必须描述
openidstring用户openid, 需要经过用户登录授权过程getunionid - 图3获取

返回值说明

参数名类型描述
errnoint错误码 0:正确返回,1:异常返回
errmsgstring错误信息
request_idstring请求ID,标识一次请求
dataobject详细数据,errno为0的情况下才有意义

data字段描述

参数名类型描述
unionidstring小程序用户 + 开发者主体维度 唯一的id

示例

在开发者工具中预览效果

图片示例

getunionid - 图4

getunionid - 图5

getunionid - 图6

代码示例

  • 在 js 文件中
  1. Page(
  2. getSessionKey() {
  3. swan.login({
  4. success: res => {
  5. swan.request({
  6. url: 'https://spapi.baidu.com/oauth/jscode2sessionkey',
  7. method: 'POST',
  8. header: {
  9. 'content-type': 'application/x-www-form-urlencoded'
  10. },
  11. data: {
  12. code: res.code,
  13. // appKey及appSecret需要替换一下
  14. client_id: 'WPGsbTTGEQ2VRnNcEIjyo5nT1wGxc3PZ',
  15. sk: 'zkDSFBfXvHtmtMAsNrQ8sFN9DNLFNZE4'
  16. },
  17. success: res => {
  18. console.log(res);
  19. if (+res.statusCode === 200) {
  20. this.getUnionid(res.data.openid);
  21. }
  22. }
  23. });
  24. }
  25. });
  26. },
  27. getUnionid(openid) {
  28. swan.request({
  29. url: 'https://openapi.baidu.com/rest/2.0/smartapp/getunionid?access_token=24.54f893d4a6f0873c7cba04f371f4be92.2592000.1576984227.282335-11136662',
  30. method: 'POST',
  31. header: {
  32. 'content-type': 'application/x-www-form-urlencoded'
  33. },
  34. data: {
  35. openid: openid
  36. },
  37. success: res => {
  38. console.log(res);
  39. swan.showModal({
  40. title: 'unionid',
  41. content: JSON.stringify(res.data)
  42. });
  43. }
  44. });
  45. }
  46. });

返回值示例

  1. {
  2. "data": {
  3. "unionid": "St6PVMkgMDeh92Uq2EWfx6H"
  4. },
  5. "errmsg": "succ",
  6. "errno": 0,
  7. "request_id": "2321772211",
  8. "timestamp": 1563886782
  9. }