我们是一个小程序、公众号、企业微信代开发的服务商,以此做了一个SAAS产品,所以涉及到微信第三方平台方面的接口功能,特别是通过第三方平台下的公众号/小程序和企微客户体系的打通,来发展我们的功能。经过一些实践,来分享一些整理的知识,希望能帮助到大家,如有错误的地方,也欢迎留言指正,谢谢!
1、微信开放平台、第三方平台是什么?他和微信开放平台是什么关系?
定义:
①微信开放平台:(未找到官方定义)我的理解是用来打通相同主体或不同主体的小程序/公众号/移动应用/网站应用的用户体系(unionid)的,只需要将他们绑定在一个开放平台上即可,但绑定个数有限制。
②-第三方平台:开放给所有通过开发者资质认证的开发者使用。在得到公众号或小程序运营者(简称运营者)授权后,第三方平台开发者可以通过调用微信开放平台的接口能力,为公众号或小程序的运营者提供账号申请、小程序创建、技术开发、行业方案、活动营销、插件能力等全方位服务。简单来说第三方平台就是用来代注册/开发/运营小程序或公众号的。
关系:第三方平台是开放平台下的一种能力,从用户体系的角度来说,两者没有从属关系,也就是说绑定在开放平台下的公众号/小程序/移动应用/网站应用内的用户unionid 和第三方平台下的小程序/公众号的用户unionid不是一致的。
2、unionid机制说明
如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。
3、第三方平台下的不同小程序/公众号用户unionid是否相同?
答案是不同,第三方平台无法实现不同小程序/公众号之间用户unionid的打通,就是说同一个用户在第三方平台下的每个小程序/公众号内的unionid都是不同的。
4、第三方如何获取其代开发的小程序/公众号的用户unionid?
开发者通过创建开放平台帐号并绑定公众号/小程序API,可以创建一个开放平台帐号,并将一个尚未绑定开放平台帐号的公众号/小程序绑定至该开放平台帐号上。新创建的开放平台帐号的主体信息将设置为与之绑定的公众号或小程序的主体。
(第三方平台在获得微信开放平台帐号管理权限后,可以代替已授权的公众号/小程序创建开放平台帐号并进行绑定/解绑操作。)
①对于小程序,开发者可调用小程序接口 获取用户基本信息(wx.getUserInfo) 获得用户 UnionID
②对于公众号,开发者可调用 获取用户基本信息接口 获得用户 UnionID
注意:
①一个公众号/小程序帐号只可以绑定在一个开放平台帐号下。
②授权第三方平台注册的开放平台帐号只可用于获取用户 unionid 实现用户身份打通,支持绑定同主体的公众号及小程序,不可独立登录。
③第三方平台不可操作(包括绑定/解绑) 通过 open.weixin.qq.com 线上流程注册的开放平台帐号。
④小程序只可将此权限集授权给一个第三方平台,即授权互斥。
5、如何将小程序/公众号绑定到开放平台上?
可以通过将公众号/小程序绑定到开放平台帐号下API将一个尚未绑定开放平台帐号的公众号或小程序绑定至指定开放平台帐号上。
注意:①该方法仅适用于开放平台账号是通过接口创建的;②只适用于绑定同主体的账号,且最多只能绑定5个
6、如何获取企业微信外部联系人unionid?
登录企业的管理后台-客户联系-客户-api,点击绑定去到微信公众平台进行授权,支持绑定公众号和小程序(需要同时绑定微信开放平台);绑定的公众号或小程序主体需与企业微信主体一致,暂且支持绑定一个
通过此方法,可以实现在同一主体下的公众号、小程序、企业微信用户打通。
注意:第三方服务商若需要unionid,则只需要在服务商自身企业管理后台的客户联系-客户-api中关联微信开发者ID;第三方调用接口返回的unionid是该服务商所关联的微信开发者帐号的unionid。也就是说,同一个企业客户,企业自己调用,与第三方服务商调用,所返回的unionid不同;不同的服务商调用,所返回的unionid也不同
不关注就获取不到unionID,有什么意义,不可能让客户关注所有的公众号吧
针对第四点“同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的”,这句话中的同一用户,是指同一微信用户,而非同一实名用户。举例:我用2个手机号,申请了2个微信进行实名,这两个微信的unionid是不一样的。
是这样的吗?谢谢大佬
怎么联系您?
企微的逻辑比较清晰,unionID就是服务商关联的开发者账号;
代开发小程序这块有点迷,是只能通过创建开放平台帐号并绑定公众号/小程序这个方法来获取unionID吗?我之前的理解是:代开发小程序获取的unionID、也是服务商关联的开发者账号
请教下大佬~