微信,大家都天天用,微信公众号,大家也都天天看,App的微信第三方登陆也都时常可以接触到。不得不说,微信是当之无愧的国民应用。从某些角度上来看,微信的重要性甚至高于支付宝,你想没了支付宝你还可以用微信支付,没了微信,难不成用支付宝聊天。。。我个人认为,这也是微信提现手续费可以那么强硬的理由之一,一点也不惯着用户,反而是支付宝,虽然紧跟微信也推出了提现限额和提现手续费,但还是有很多方法可以绕过这些规则。相反微信,目前我知道的绕过手续费的途径,就一个,走小嬴理财,这个手续费还是平台垫付的,当然了支付宝和微信都是伟大的产品之一。
我们常常会用到微信登陆App,登陆各种授权页面,今天就聊一下微信两个id——openID和unionID。
1 openID和unionID是什么?
openID:同一个微信号,对每个公众号/移动应用有一个唯一的openID,公众号/移动应用可以通过接口,根据openID获取用户基本信息,包括昵称、头像、性别、所在城市、语言等,对于不同公众号/移动应用,同一微信号的openID不同
unionID:同一个微信号,对多个移动应用、网站应用和公众账号,用户有一个唯一的unionID。不过前提是开发者需要前往微信开放平台,将多个移动应用、网站应用和公众账号进行绑定,才能利用unionID
现在应该还可以加上一个小程序啦,微信公众平台技术文档真的是个好东西。
两个ID的区别其实已经可以从上面看出来了,两个ID都可以作为用户的唯一标示,但是如果考虑到多个移动应用,网页应用,公众号之间的账号互通,就需要使用到unionID,所以在产品初期就要考虑到使用哪个id来对应用户体系中的用户id,不然中间想要修改,怕是要翻皮水啦
这里有个疑问?那我们直接都用unionID不就行了?我现在的理解是,只有单一一个应用或公众号需要用到微信登陆,采用unionID有点浪费,为什么这么说呢,unionID相当于一个工程,而openID相当于一个项目。而单一的应用或公众号当然相对应就是一个项目,项目一一对应,而全部项目又对应一个工程。用一个工程来对应一个项目,有点浪费啊,不符合我们的传统美德啊。
没别的工具,用QQ截图画的,自己都觉得丑哭。。。
而且unionID会比较麻烦
2openID和unionID的具体应用
openID 的应用就不用多说了,很多App的第三方登陆都会用到,unionID的应用一般有以下几种:
第一,也是在登陆上的,就是移动应用,网页应用,公众号之间的互通
举个例子,通过手机微信登陆和网页登陆,是同一个账号,应该就是用unionID 去对应用户ID ,手机号等字段
第二,可以收到模板消息(我是这么叫它的,一般有刷卡提醒,服务预约成功通知等),就我自己的行业来讲,会有投标成功,积分消息,红包消息。本来玖富旗下的随手攒,这个发的最勤快了,不过之前把微信消息都清理了,贴个贝米的吧。随手攒是真的比较多的,比如提醒你及时完成已参加的挑战,比如攒工资计划,52周挑战。52周还蛮有意思的;提醒你收到红包,可以及时投资;到期项目的回款提醒
这种通过微信公众号消息来反馈,提醒用户在App的行为,我个人认为体验还是很好的,不过每天的消息数量是有限制的,所以适用的范围还是有限制的。
两个id就是这回事啦,有段时间没写东西啦,今天发现还是工作和写东西总结,让我快乐哟。
登录微信公众平台后台获取公众号的AppId,设置回调地址。回调地址设置页面向导:开发>接口权限>网页服务>网页授权>修改。开发的项目需要放到已经解析好服务器域名的服务器下,同时把Mptext文件放到服务器根目录下,此时你的服务器必须能联通外网也就是有公网IP,并且80端口是打开的,可以使用阿里云等服务器,默认配置就可以了。
openId是用户在当前公众号下的唯一标识(‘身份z’),就是说通过这个openId,就能区分在这个公众号下具体是哪个用户。
openId有什么用:假如用户A在当前公众号下购买了一件商品,用户的下单信息肯定要存储到后台数据库,那根据什么进行存储呢?openId是用户在当前公众号下的唯一标识,通过openId和用户的下单购买信息进行键值对的数据绑定。那么我要查询该用户购买过什么商品,就能够通过openId去查询,并且数据是唯一的,不会和另外的用户数据有冲突。
拓展:UnionID:一个商家或公司可能会有多个公众号,假如用户A同时都关注了这个公司下面的三个公众号,那么这个用户就会有三个openId(一个公众号就对应一个openID)。如果作为开发者的我们,要对这个用户在这三个公众号下消费的数据进行汇总,我怎么获取到这三份数据(同一用户的)?答案是UnionId,微信开发者文档:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。就是说如果要获取用户在同一公司不同公众号下的数据,后台表结构不但要关联openId,还要关联UnionId。
首先公司开发了小程序, 公众号网页和app等, 之前都是用的openid来区分用户, 但openid只能标识用户在当前小程序或公众号里唯一, 我们希望用户可以在公司各个产品(比如公众号, 小程序, app里的微信登录)之间, 可以保持用户的唯一性, 还好微信给出了unionid
下面分两步介绍一下 微信小程序 获取unionid的过程
1 首先 在微信公众平台注册小程序 , 然后在小程序上模拟登录流程
注 : 这里只是简单登录流程, 实际中需要维护登录态, wxcheckSession() 可以检查此时的登录态是否过期 若过期, 要再次调用 wxlogin() , 否则调用 wxgetUserInfo() 会拿不到用户数据
注 : 此时后台服务器接收到你发的 code, 再用appid和appSecret等请求微信可以拿到openid和session_key encrypted_data, iv 等数据, 通过appId, appSecret解密可以获得openid和其他信息 (此时解出来并没有unionid, 接下来看第二步)
2 接下来到 微信开发平台去 绑定开发账号
一开始我也是对开放平台, 公众平台什么的有点懵, 后来看到开发平台的管理中心才明白, 这些移动应用, 网站应用 或者公众号/小程序 能绑定同一个微信开发平台账号下, 则同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。
大抵就是上图这样设置吧 , 立刻生效(有时也会过几分钟吧
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
以上就是关于聊聊微信那点事1-两个id全部的内容,包括:聊聊微信那点事1-两个id、微信授权获取openid限制、微信小程序 怎么获取unionid等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)