微信小程序公众号开发中用户关联
2018年8月10日
微信小程序通过1年多了发展,又一次席卷了互联网,大家都在争先恐后的加入小程序的行列。同时百度,支付宝也在大力发展自己的小程序,又是一次百家争鸣的景象!小程序是否能真正突出重围传统软件的开发,我们拭目以待!
微信公众号的火爆,也让很多人认为小程序也一定火爆!在加入到小程序的时候,很多公司,本来还有公众号服务,怎么实现公众号和小程序的用户的打通呢!微信的圈子越来越大,以前的openid这个东东已经不能满足各个公众号和小程序的打通,所以微信有搞出了一个UnionID,这个东西就成为微信全平台打通用户的一个基础!原来openid只代表一种(公众号,小程序)的用户id,现在UnionID 代表整个平台用户唯一!开发者只要在同一个账户下,可以把名下的所有公众号,小程序关联到一起,这样,所有的小程序,公众号,就会获得统一的UnionID,从而打通!要想获得这个功能,就必须到微信公众开放平台把各个应用都绑定到这个平台!
同时微信支付也都统一到统一的平台啦,只要统一平台开通啦,各个平台只要在统一平台绑定就可以啦,自行百度!
在开发中,我们原来的设计可能就需要改动,原来是用户id直接与openid绑定,现在需要用户id和UnionID进行绑定(如果是新设计可以直接这样绑定),如果是有以前的openid和用户id直接绑定,这个地方就要做过渡方案!
这里先说新的开发方式中表的建立,具有很高的扩展性:
用户与unionid绑定表:字段uid和unionid,两个是唯一键
1 2 3 4 5 6 7 8 9 10 |
CREATE TABLE `user_bind` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID,无特殊用途', `uid` bigint(20) unsigned NOT NULL COMMENT '用户id,全局唯一', `unionid` varchar(64) DEFAULT '', `ctime` timestamp NULL DEFAULT NULL COMMENT '创建时间', `mtime` timestamp NULL DEFAULT NULL COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE KEY `uid` (`uid`), UNIQUE KEY `unionid` (`unionid`) ) ENGINE=InnoDB AUTO_INCREMENT=2071 DEFAULT CHARSET=utf8 |
下边还需要unionid 和openid的绑定表,这里需要加入appid,用来区分是那个应用过来的,方便扩展,这个是重点!
1 2 3 4 5 6 7 8 9 10 |
CREATE TABLE `user_unionid` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID,无特殊用途', `unionid` varchar(64) DEFAULT '', `appid` varchar(32) DEFAULT '', `openid` varchar(32) DEFAULT '', `ctime` timestamp NULL DEFAULT NULL COMMENT '创建时间', `mtime` timestamp NULL DEFAULT NULL COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE KEY `unionid_unique` (`unionid`,`appid`,`openid`) ) ENGINE=InnoDB AUTO_INCREMENT=2071 DEFAULT CHARSET=utf8 |
三个值为唯一键,需要那个平台的话,需要用appid去查,这样,你可以绑定n多个应用(小程序,公账号)。
因为openid在支付的需要,而且支付现在需要每个应用支付自己的appid,需要这样绑定扩展最好!
后期我猜微信支付这个地方应该也会改,统一支付用unionid就可以,不用非得openid!