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了

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

微信小程序无法获取到unionId(专业踩坑20年)的更多相关文章

  1. 微信小程序如何获取openid

    微信小程序如何获取openid wx.login({ success: res => { // 发送 res.code 到后台换取 openId, sessionKey, unionId // ...

  2. 微信小程序验证码获取倒计时

    wxml <button disabled='{{disabled}}' bindtap="goGetCode">{{code}}</button> js ...

  3. 微信小程序后台获取用户的opeid

    1.微信小程序后台获取登录用户的openid,首先微信小程序将code传给后台服务器 wx.login({ success: function (res) { var code = res.code ...

  4. 【微信小程序】获取用户地理位置权限,二次请求授权,逆解析获取地址

    摘要:微信小程序内获取用户地理位置信息授权,被拒绝后二次获取,获取权限后逆解析得到用户所在省市区等.. 场景:商城类小程序,在首页时需展示附近门店,即用户刚进入小程序时就需要获取到用户位置信息 ste ...

  5. 微信小程序,获取二维码

    微信小程序,获取二维码 找到一篇很实用的博客,他已经写得很详细了,自己也懒得写,亲测有效 参考网址

  6. nodejs+koa+uniapp实现微信小程序登陆获取用户手机号及openId

    nodejs+koa+uniapp实现微信小程序登陆获取用户手机号及openId 前言: 我准备用nodejs+koa+uniapp实现一款餐饮点单小程序,以及nodejs+koa+vue实现后端管理 ...

  7. 微信小程序全面实战,架构设计 && 躲坑攻略(小程序入门捷径教程)

    最近集中开发了两款微信小程序,分别是好奇心日历(每天一条辞典+一个小投票)和好奇心日报(轻量版),直接上图: Paste_Image.png 本文将结合具体的实战经验,主要介绍微信小程序的基础知识.开 ...

  8. 微信小程序无法获取UnionId的情况及处理

    问题背景:做了微信小程序,一切都还正常,但是最后体验版放出去时,却发现很多用户无法绑定用户,后台返回:参数非法.经过多方排查,发现是微信拿到的code请求返回的数据里没有UnionId,也就是接口返回 ...

  9. 微信小程序实例-获取当前的地理位置、速度

    微信小程序官方文档 https://mp.weixin.qq.com/debug/wxadoc/dev/api/location.html JS代码 //index.js //获取应用实例 var a ...

随机推荐

  1. Python(二)

    函数Python的函数支持递归.默认参数值.可变参数,但不支持函数重载.为了增强代码的可读性,可以在函数后书写“文档字符串”(Documentation Strings,或者简称docstrings) ...

  2. [CSP-S模拟测试53]题解

    A.u 只涉及到区间修改可以考虑差分,然而如果每一行都差分复杂度还是过高.我们发现差分标记也是连续的(一行横着的一行斜着的),所以可以维护两个 差分的差分,扫两遍统计即可. #include<c ...

  3. undefined null测试

    测试浏览器:chrome 当有父元素的子元素未定义时undefined和null均为true,类型为undefined 当元素赋给null后undefined和null均为true,类型为object ...

  4. python locust-事件顺序

    from locust import HttpLocust,TaskSet,task ''' 点击STOP,会停止测试,并调用所有当前执行的TaskSet的on_stop,但不会调用teardown函 ...

  5. mybatis原理与设计模式-日志模块- 适配器模式

    在讲设计模式之前,得先知道java程序设计中得六大原则,才能更好得理解我们得系统为什么需要设计模式 1 单一职责原则 一个类只负责一种职责,只有这种职责的改变会导致这个类的变更.绕口一点的正统说法:不 ...

  6. Celery 'Getting Started' not able to retrieve results; always pending

    参考 根据Celery的官方文档,当使用windows 10 64-bit, Python 2.7,Erlang 64-bit binary, RabbitMQ server and celery r ...

  7. C++——模板

    1.参数类型 template <typename T> void f1(T&);//实参必须是左值 f1(i);//对 f1(ci);//对,T的类型是const int f1( ...

  8. Angularjs可以查看scope的插件AngularJS Batarang

    AngularJS Batarang是一个显示AngularJS的scope 层次的Chrome插件,有效的快速查看一个page 中有多少Scope能够帮助我们快速方便调试AngularJS程序. 插 ...

  9. upc组队赛6 GlitchBot【枚举】

    GlitchBot 题目描述 One of our delivery robots is malfunctioning! The job of the robot is simple; it shou ...

  10. Cai_Sublime

    Cai_Sublime Package Control:插件包管理工具 The simplest method of installation is through the Sublime Text ...