zoukankan      html  css  js  c++  java
  • 微信小程序无法获取到unionId(专业踩坑20年)

    UnionID机制说明
    如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。

    我们系统都做了移动应用、网站应用、和公众帐号的微信登入,我们后端这边是有微信绑定账号功能的。所以需要在微信的给出的用户唯一的unionID判断该用户是否已绑定微信号。

    微信小程序API详情的官方链接: https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html#wxloginobject

    微信官方的流程图:

    前端调用wx.login获取code,然后将code返回给后台拿着code与appid,secret访问微信接口获取session_key、openid和 unionId

    看一下拿code请求成功后,微信官方给出的返回结果:

    我当时返回的结果就是不满足UnionID情况下的、此处我黑人问号三连???

    再看看微信官方给出的解释、怎么才能满足UnionID的情况呢?

    所以我就让前端同事改逻辑,前端需要调用完wx.login函数后获得code、紧接着前端再调用wx.authorize函数让用户授权同意再将刚刚调用完wx.login获取到的code请求后端接口(前端的这里调用函数貌似是有顺序的 wx.login ----> wx.authorize)

    然后............................

    还是只返回了session_key、openid  还是没有UnionID !!!!!麻蛋!

    划重点、检查微信开放平台的管理中心的小程序是否添加绑定:
    开发资质未认证的话,需要申请开发者资质认证(需要交资料and费用)

    认证通过后、去管理中心、小程序、绑定小程序(小程序登入账号就是微信公众号的账号and密码)

    绑定好后、再次访问小程序接口、就可以获取到UnionID了

    ------------------------------------------------------------------------性感分割线-------------------------------------------------------------------------------

    ----------------------------------------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    maven超级pom内容
    elasticsearch日志删除命令
    maven 设置跳过测试
    centos7.4 开启ftp服务
    部分Linux时区改为东八区的方法
    docker overlay存储驱动介绍(传送门)
    HotSpot学习(一)——如何下载openjdk源码
    nginx 代理静态资源报 403
    【转载】C#通过遍历DataTable的列获取所有列名
    【转载】C#通过Remove方法移除DataTable中的某一列数据
  • 原文地址:https://www.cnblogs.com/yehuisir/p/10959165.html
Copyright © 2011-2022 走看看