收藏
回答

wx.login

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 需求 wx.login 客户端 6.6.6 1.9.90

我想问一种场景。

  1. 用户重来没有关注过我的小程序关联的任何app和公众号.

  2. 用户打开我的小程序。并且点击了登录按钮。登录按钮是 button opentype是 getuserinfo.

  3. 用户同意了授权.在button 的bindgetuserinfo方法中,调用wx.login方法,得到code再用code去请求微信服务器,是否能得到unionid?

    希望官方给出解答,官方文档说的不是太明白.




回答关注问题邀请回答
收藏

9 个回答

  • Deron
    Deron
    2018-08-17

    getPhoneNumber之前调用login是在一app.js的onLaunch里面就调用然后把code保存起来,等getPhoneNumber回调的时候一同传给后端吗?


    2018-08-17
    有用
    回复
  • Bei
    Bei
    2018-05-03

    unionid 只有第三方平台关联了小程序才会有!

    2018-05-03
    有用
    回复
  • Jason Z.
    Jason Z.
    2018-04-28

    谢谢哈!

    2018-04-28
    有用
    回复
  • Jason Z.
    Jason Z.
    2018-04-28

    好的

    2018-04-28
    有用
    回复
  • 十
    2018-04-28

    不是,code传一次就好了,session_key好像登录态不过期就不会过期,不要重复登录

    2018-04-28
    有用
    回复
  • Jason Z.
    Jason Z.
    2018-04-28

    @小朱


    session_key如果保存在后台,在后台解密, 那对我前台开发者来说是不是就只需传code给他, 而为了防止code过期, 所以在bindgetuserinfo方法中要再次调用wx.login拿到最新的code传给后台?

    2018-04-28
    有用
    回复
  • 十
    2018-04-28

    本来用code获取UID不用授权是很完美的方法,可是用户不先关注公众号拿不到就很尴尬了,总不能拿不到UID就提示请关注公众号吧,这样就成了诱导分享了要被严打。只好用getuserinfo接口获取encryptedData 解密取UID了,解密又要用sessionKey所以又要login,唉!

    sessionKey最好还是在后台保存,在后台解密,然后把结果返给你。

    2018-04-28
    有用
    回复
  • 陈龙
    陈龙
    2018-04-28

    那就只能缓存sessionKey了吧.

    2018-04-28
    有用
    回复
  • 十
    2018-04-28

    这个我可以百分百告诉你,不会得到UID,用code获取必须必须必须满足两个条件:

    1.在微信开放平台下存在同主体的App、公众号、小程序。

    2.用户关注了某个相同主体公众号,或曾经在某个相同主体App、公众号上进行过微信登录授权。


    而用getuserinfo获取到encryptedData解密后的参数中,不需要关注公众号,只要你公众号和小程序同时在开放平台绑定了满足这一个条件,就能获得UID。不然为啥这么多人一听这个接口调整了都疯狂了

    2018-04-28
    有用
    回复
登录 后发表内容