微信小程序无法获取到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了

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

原文地址:https://www.cnblogs.com/yehuisir/p/10959165.html

时间: 2024-07-31 01:41:12

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

微信小程序如何获取openid

微信小程序如何获取openid wx.login({ success: res => { // 发送 res.code 到后台换取 openId, sessionKey, unionId // console.log(res) var appid = 'wxbe08efce713a44bf'; //填写微信小程序appid var secret = 'd65ad3d9ee159c568200c30a3bb49baf'; //填写微信小程序secret //调用request请求api转换登录凭证

微信小程序实现获取用户信息并存入数据库操作示例

微信小程序获取用户信息简单,但是在存入自己服务器数据库的过程中研究了一天多的时间,并且网上搜索不到该资源,故发出来供大家参考. index.js ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 Page({  data: {   nickNam

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

微信小程序官方文档 https://mp.weixin.qq.com/debug/wxadoc/dev/api/location.html JS代码 //index.js //获取应用实例 var app = getApp() Page({ data: { motto: '示例小程序-获取当前地理位.速度', userInfo: {}, hasLocation:false, location:{} }, //事件处理函数 bindViewTap: function() { wx.navigate

微信小程序之获取验证码js

在微信小程序中怎样实现获取验证码的倒计时功能捏,倒计时的原理是一样一样的,就是某些地方需要注意. 第一步:结构 <view class='get-code' wx:if="{{!isShow}}" bindtap='getCode'>获取验证码</view> <view class='get-code' wx:if="{{isShow}}">{{sec}}秒后重新发送</view> 注意:微信小程序中要用到两个按钮,不

微信小程序【获取验证码】倒计时效果

最近开始接触微信小程序,会记录一些相关的小功能--例如这次是点击[获取验证码]按钮出现的倒计时效果. 原文: http://blog.csdn.net/Wu_shuxuan/article/details/78539075  感谢 .wxml <button class="buttonget" disabled='{{disabled}}' data-id="2" bindtap="getVerificationCode"> {{ti

微信小程序中获取高度及设备的方法

由于js中可以采用操纵dom的方法来获取页面元素的高度,可是在微信小程序中不能操纵dom,经过查找之后发现仅仅只有以下几个方法可以获取到高度 wx.getSystemInfoSync().windowWidth // 获取当前窗口的宽度 wx.getSystemInfoSync().windowHeight // 获取当前窗口的高度 wx.getSystemInfoSync().model // 获取当前采用的设备 wx.getSystemInfoSync().pixelRatio wx.get

微信小程序:获取地理定位和显示相应的城市名称。

最近在看微信小程序,遇到地理定位显示城市名称的问题.本文就是记录这一过程. 解决方案                                                                                                                                               小程序的wx.getLocation()获得是经纬度并不包含地名,所以要通过经纬度用相应的地图转换出地名(本文使用的是百度地图).

微信小程序 定位 获取国家省市区

从文档可知该方法只是返回的位置坐标等信息,并未返回地理位置名称.好在腾讯地图准们为小程序提供了接口SDK来获取位置信息. 文档地址如下:http://lbs.qq.com/qqmap_wx_jssdk/index.html SDK使用方法请参照该文档. 在小程序中获取地理位置信息的流程就是: 根据wx.getLocation方法获取当前位置坐标. 根据reverseGeocoder方法获取当前坐标地理位置信息. 注意:会提示https://apis.map.qq.com不是request 合法域

微信小程序开发需要注意的30个坑

1.小程序名称可以由中文.数字.英文.长度在3-20个字符之间,一个中文字等于2个字符. 2.小程序名称不得与公众平台已有的订阅号.服务号重复.如提示重名,请更换名称进行设置. 3.小程序名称在帐号信息设置时完成,请谨慎设置,一旦设置暂不支持修改. 4.更换名称进行设置.如果企业商标,组织名称等名称被侵权,可通过公众平台侵权投诉流程发起投诉,取回名称使用权. 5.个人开发者无法申请微信小程序:目前微信仅支持企业.政府.媒体.其他组织申请. 6.一个主体可以注册30个,一个绑定身份的开发者只能创建