西湾乡如何获取小程序的unionid

阅读 21360  ·  发布日期 2020-08-24 17:26  ·  温州优光网络科技有限公司|建站|APP小程序制作|做网站SEO推广优化
【摘要】 如何获取小程序的unionid?问题背景:做了微信小程序,一切都还正常,但是最后体验版放出去时,却发现很多用户无法绑定用户,后台返回:参数非法。经过多方排查,发现是微信拿到的code请求返回的数据里没有UnionId,也就是接口返回的参数中不包含UnionId参数。1、UnionID机制说明  简而言之,微信针对不同的... 【温州小程序开发,温州微信公众号,平阳做网站,平阳网站建设公司,平阳小程序商城制作,昆阳万全做网站,鳌江水头小程序,萧江腾蛟微信公众号,山门顺溪南雁海西南麂凤卧麻步怀溪网络网店服务,政采云网店管理服务】...

如何获取小程序的unionid

如何获取小程序的unionid?问题背景:
做了微信小程序,一切都还正常,但是最后体验版放出去时,却发现很多用户无法绑定用户,后台返回:
参数非法。
经过多方排查,发现是微信拿到的code请求返回的数据里没有UnionId,也就是接口返回的参数中不包含UnionId参数。
1、UnionID机制说明  简而言之,微信针对不同的用户在不同的应用下都有唯一的一个 openId,但是要想确定用户是不是同一个用户,就需要靠 unionid 来区分。
通常自己的后台都会有自己的一个用户表,每个用户有不同的 userid。
也就是说同一个用户在同一个微信开放平台下的相同主体的应用对应着相同的 userid, unionid 以及不同的 openid。
所以在用户登录进来的时候,我们只能靠微信返回给我们的 unionid 去判断是不是同一个用户,再去关联我们的用户表,拿到对应的 user_id。
  注意:
后边这句话的描述:
用户关注过公众号,或者曾经登录过App或公众号,则用户打开小程序时,开发者可以直接通过wx.login获取到该用户UnionID。
即:
如果用户没有关注过公众号,或者没有登陆过App,通过wx.login是无法获取到该用户UnionID,只能通过wx.getUserInfo来获取UnionId。
经验证,系统不存在UnionId的小程序用户都是没有关注公众号或未在App中使用微信授权的用户2、问题背景  一般情况下(即在登录小程序之前,已经关注过公众号或已经登录过公众号或已经使用微信登录的方式登录过app),用户通过以下两步就正常成功登录网站:
(1)wx.login获取code;(2)通过code请求后台,后台转发微信api用来换取openid及session_key等信息,此可以得到Unionid  另一种情况(即在登录小程序之前,既没有关注过公众号,也没有登录过公众号,更没有使用微信登录的方式登录过app),通过 wx.login 的到的 code 换不回 unionid 及 openid 等信息。
3、解决方案:
  获取小程序UnionId应该以wx.getUserInfo的UnionId为主。
wx.getUserInfo需要用户授权,产品方面,需要考虑用户拒绝授权的处理流程。
  wx.getUserInfo获取数据之后解密的方法,可以看官方文档。
  解决思路:
通过带登录态的 wx.getUserInfo 获取到用户的加密数据 encryptedData 和加密算法的初始向量iv,然后将 encryptdata、iv 以及 code传给后端,后端再去通过接收到的encryptedData、iv以、code 以及之前的 session_key 解密出用户的 openid、unionid 等。
加密数据解密算法相关推荐:
小程序教程以上就是如何获取小程序的unionid的详细内容,更多请关注php中文网其它相关文章!
微信
分享相关标签:
小程序本文原创发布php中文网,转载请注明出处,感谢您的尊重!
上一篇:
如何实现小程序发送服务通知
下一篇:
如何爬取小程序源码相关文章相关视频微信小程序必须买域名吗微信小程序中为什么不使用骨架屏,来提升用户体验?小程序如何设置类目微信小程序中图片处理(居中、铺满屏幕)微信小程序502是什么意思如何实现小程序发送服务通知如何获取小程序的unionid小程序API接口(一)小程序API接口(二)第三方平台开发小程序(一)第三方平台开发小程序(二)小程序项目介绍预览 [温州做小程序]