- 需求的场景描述(希望解决的问题)
能实现下面的能力,谢谢啦!!!
能实现下面的能力,谢谢啦!!!
能实现下面的能力,谢谢啦!!!
- 希望提供的能力
1、绑定过开放者平台的小程序wx.login()接口可以直接返回unionid。
原因:大部分开发者调用wx.getUserinfo()接口是为了获取unionid来实现多应用打通,如果wx.login()接口可以直接返回unionid的话,可以减少很大一部分直接弹窗授权的小程序,从而提高用户体验,大家都能互惠互利。
2、绑定过开放者平台的应用openid转unionid的接口能力
原因:开发者一开始没有绑定开发者平台,后来规模做大了,需要扩展应用了,这时候历史数据就比较麻烦了,因为没有保存unionid。
最直接的场景就是微信公众号和小程序数据打通,没有小程序的时候用户基本上都是在公众号的维护的,有了小程序就需要扩展打通,但问题来了,取关了公众号的用户数据就没有办法和小程序打通了,只能等用户再次关注才有机会获取unionid。既然这个unionid是用来打通应用之间数据用的为什么这么不人性化,或者还是设计的时候没有考虑到,希望能体谅一下开发者和新媒体运营商,减少他们的工作量,让他们有更多的时间了服务用户,而不是把时间浪费在和这些接口打架上。
小程序如果绑定了 开放者平台 就能获取到unionid 所以小程序 上线之前 就应该绑定 数据库留出unionid字段。
对于之前没绑定开发平台 后面才绑定的 只能等待用户再次使用小程序 即 再次调用wx.login() 才能获取到unionid
所以 最佳实践就是 一开始 就绑定开放平台。
还有 目前我测试的结果是 如果绑定了 开发平台 wx.login() => code 能获取到unionid,通过 wx.getUserinfo() 解密也可以得到unionid,
没绑定的 wx.login() 和 wx.getUserinfo() 均不能给获取到unionid.
结论,目前微信接口 没有问题 检查自己的代码和逻辑。
说句公道话,个人觉得这还真不是微信故意要坑开发者,否则不是搬石头砸自己的脚么?这两个场景楼主之所以这么想是因为只站在了开发者个人的立场想问题,而忽略了其他的方面(比如安全、用户心理、产品逻辑)。比如第一个问题,官方一直不推荐开发者把 openid 或 unionid 这种统一用户标识字段在小程序端传递,即使要传递也必须加密传递,这样可以最大限度的避免用户身份安全等问题,其次用户授权也不是洪水猛兽,根据场景结合使用的好反而会增加用户体验(至少比以前用户名密码登录强多了对吧),从用户的角度来讲用户希望自己决定是否把他的个人信息提供给小程序,否则就成了用户隐私泄露事件。至于第二个问题我觉得用户既然取关了就代表已经不是你的用户了,就没什么好再维护的,毕竟强扭的瓜不甜,至于用户的历史数据可以先保存,等什么时候用户因为你的某篇内容又路转粉了再关联起来就OK了。
个人观点,欢迎讨论拍砖