三方:
第一方,用户;
第二方,微信;
第三方,其他运用(你开发的一个APP或者一个网站,或者一个公众号,或者一个小程序)
微信本质上也只是一个软件,或者平台,因为我们天天使用它,对它有一定的依赖,所以我们希望我们手机上的其他APP或者网站,或者公众号发的一些提醒消息也能统一发到微信上,这样我就不用每次都要打开N多个软件了(登录或者支付类似,或者其他目的)。但是这些第三方应用和微信他们作为独立的软件,肯定是不能直接互通信息,共享数据的,所以微信作为强势方,就开放出来一些接口(微信开放平台),这些接口本质上就是用来互通信息的,而第三方作为弱势方,也希望傍上微信这颗大树,就需要运用这些接口。为了管理的需要,第三方开发者需要注册一个开放平台账号(从内在逻辑来说,其实不注册账号,只要微信公开一个接口,就能实现数据互通的目的,这个账号是为了管理,风险等需要),因为同一个开发者可能同时开发多个运用,都需要和微信互通信息,所以开放平台有了APP的概念。而union_id是针对开放平台的账号来说的,open_id是针对开放平台账号下的某一个APP来说的,这就解释了为什么同一开放平台下,union_id唯一,open_id不唯一的原因了。
另外,还有个公众平台的概念,公众平台可以理解为微信下的一个功能,或者一个“二级运用”,它在我们上诉的这套系统中是一个第三方的角色,和你自己开发的软件一样,只不过他和微信有着密切的关系而已。