如何在小程序中取得UnionID?
发布于 5 年前 作者 taoxu 10191 次浏览 来自 问答
  1. 已经在微信开放平台中同时绑定了一个微信公众号(服务号)和一个小程序,小程序和微信公众号都是同一个主体。
  1. 通过微信公众平台接口调试工具,可以通过微信公众号的appId取得用户的unionId:
  1. 在已经绑定的小程序(未正式上线,在开发工具中运行)

类似如下代码取得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,谁能告诉我是怎么回事么?

3 回复

我把另一个小程序同时绑定到了微信开放平台后,这个小程序终于能返回了unionid,这都是什么鬼条件啊,资料上也没写啊!

关注了绑定到同一个开放平台的正式公众号(测试公众号无效) 就可以直接获取到

不关注 就需要 button getuserinfo 后台解密

我现在的逻辑是 先去通过code获取 获取不到 就显示一个带button的页面 让用户点击(同时提示用户关注公众号)

要么是开放平台设置还没生效,要么是你绑定的小程序不是你当前的小程序。

检查下appid是否对应得上。

回到顶部