wx.login接口优化建议
发布于 6 年前 作者 jie31 8468 次浏览 来自 问答
  • 需求的场景描述(希望解决的问题)

能实现下面的能力,谢谢啦!!!

能实现下面的能力,谢谢啦!!!

能实现下面的能力,谢谢啦!!!

  • 希望提供的能力

1、绑定过开放者平台的小程序wx.login()接口可以直接返回unionid。

原因:大部分开发者调用wx.getUserinfo()接口是为了获取unionid来实现多应用打通,如果wx.login()接口可以直接返回unionid的话,可以减少很大一部分直接弹窗授权的小程序,从而提高用户体验,大家都能互惠互利。

2、绑定过开放者平台的应用openid转unionid的接口能力

原因:开发者一开始没有绑定开发者平台,后来规模做大了,需要扩展应用了,这时候历史数据就比较麻烦了,因为没有保存unionid。

最直接的场景就是微信公众号和小程序数据打通,没有小程序的时候用户基本上都是在公众号的维护的,有了小程序就需要扩展打通,但问题来了,取关了公众号的用户数据就没有办法和小程序打通了,只能等用户再次关注才有机会获取unionid。既然这个unionid是用来打通应用之间数据用的为什么这么不人性化,或者还是设计的时候没有考虑到,希望能体谅一下开发者和新媒体运营商,减少他们的工作量,让他们有更多的时间了服务用户,而不是把时间浪费在和这些接口打架上。

8 回复

《论一位优秀的架构师对产品的重要性》

以我这么长时间经验来看,方便开发者从来都不是官方最优先的考虑。

openid、unionid这个机制从根子上来说就是在坑开发者。当然官方有作为大厂的自尊,绝对不会承认自己做错的

有这方面需求的伙伴帮忙顶一下,谢谢啦

小程序如果绑定了 开放者平台 就能获取到unionid  所以小程序 上线之前 就应该绑定  数据库留出unionid字段。

对于之前没绑定开发平台  后面才绑定的  只能等待用户再次使用小程序 即 再次调用wx.login() 才能获取到unionid

所以 最佳实践就是  一开始 就绑定开放平台。

还有 目前我测试的结果是 如果绑定了 开发平台 wx.login() => code 能获取到unionid,通过 wx.getUserinfo() 解密也可以得到unionid,

没绑定的 wx.login() 和 wx.getUserinfo() 均不能给获取到unionid.

结论,目前微信接口 没有问题 检查自己的代码和逻辑。

糟心啊,赶紧顶起来。官方至少给个方案指导下,对于第三方开发者来说把公众号用户和小程序用户打通也是为了在微信生态里面提供更好的用户体验。

说句公道话,个人觉得这还真不是微信故意要坑开发者,否则不是搬石头砸自己的脚么?这两个场景楼主之所以这么想是因为只站在了开发者个人的立场想问题,而忽略了其他的方面(比如安全、用户心理、产品逻辑)。比如第一个问题,官方一直不推荐开发者把 openid 或 unionid 这种统一用户标识字段在小程序端传递,即使要传递也必须加密传递,这样可以最大限度的避免用户身份安全等问题,其次用户授权也不是洪水猛兽,根据场景结合使用的好反而会增加用户体验(至少比以前用户名密码登录强多了对吧),从用户的角度来讲用户希望自己决定是否把他的个人信息提供给小程序,否则就成了用户隐私泄露事件。至于第二个问题我觉得用户既然取关了就代表已经不是你的用户了,就没什么好再维护的,毕竟强扭的瓜不甜,至于用户的历史数据可以先保存,等什么时候用户因为你的某篇内容又路转粉了再关联起来就OK了。

个人观点,欢迎讨论拍砖

公众号关注者可以通过openid获取unionid。但是小程序没有类似的机制,只能在用户访问的时候获取。希望官方可以提供解决方案。

发帖时间、阅读量还有在热门区的时间有一定时间。很难顶起来,最多再热门区留几天一样会消失。

回到顶部