公众号第三方平台是为了让公众号运营者,在面向垂直行业需求时,可以一键授权给公众号第三方平台(并且可以同时授权给多家第三方),通过第三方平台来完成业务,开放给所有通过开发者资质认证后的开发者使用。第三方平台申请通过后的界面如图22-7所示。
图22-7 第三方平台
开发者在申请创建公众号第三方平台时,需要填写很多开发参数。下面针对这些开发参数进行如下说明。
授权流程相关的参数说明如下。
授权发起页域名:指公众号在登录授权给第三方平台时的授权回调域名,在公众号进行登录授权流程中,必须从本域名内网页跳转到登录授权页,才可完成登录授权。授权成功后会回调授权时提供的URI,公众平台会检查URI,必须保证URI所属域名与服务申请时提供的授权域名一致。请注意,域名不需要带有“http://”等协议内容,也不能在域名末尾附加详细目录,应严格按照类似www.qq.com的写法。
发起授权页的体验URL:用于审核人员前往授权页体验,确认流程可用性。在提交全网发布时,务必保证该URL可直接体验。全网发布之前,该项可先填为发起页域名。
授权测试公众号列表:在全网发布之前,仅该列表内的公众号才可进行授权,以便测试。需要填写公众号的原始ID,个数最多为10个,以英文“;”隔开。
授权事件接收URL:用于接收取消授权通知、授权成功通知、授权更新通知,也用于接收ticket。ticket是验证平台方的重要凭据,服务方在获取component_access_token时需要提供最新推送的ticket,以供验证身份合法性。此ticket作为验证服务方的重要凭据,请妥善保存。
授权后代替公众号实现业务的说明如下。
公众号消息校验Token:开发者在代替公众号接收到消息时,用此Token来校验消息。其用法与普通公众号的token一致。
公众号消息加解密key:在代替公众号收发消息的过程中使用。它必须是长度为43位的字符串,只能是字母和数字。其用法与普通公众号的symmetric_key一致。
公众号消息与事件接收URL:该URL用于接收已授权公众号的消息和事件,消息内容、消息格式、签名方式、加密方式与普通公众号接收的一致,唯一区别在于签名Token和加密symmetric_key使用的是服务方申请时所填写的信息。由于消息的具体内容不会变更,因此根据消息内容中的ToUserName,服务方可以区分出具体消息所属的公众号。需要注意的是:
1)考虑到服务需要接收大量的授权公众号的消息,为了便于做业务分流和业务隔离,必须提供如下形式的URL。www.abc.com/aaa/$APPID$/bbb/cgi。
其中,$APPID$在实际推送时会替换成所属的已授权公众号的AppID。
2)第三方平台只需获得某个业务模块的授权(而不需要获得客服与菜单权限的授权),然后在收到该业务模块事件推送后,如果该事件是允许进行5s内被动回复消息给粉丝的,那么第三方就可以被动回复(业务模块的哪些事件推送允许被动回复用户,哪些不允许,需咨询具体业务模块)。
3)如果第三方希望实现实时获知公众号有新粉丝关注,只需要收到关注事件后回复success即可,不必另行回复,以免公众号出现多个第三方同时进行粉丝关注后的自动回复。
网页开发域名:最多可以填写3个,每个都以英文“;”符号隔开。每个网页开发域名会产生两个效果(请注意,域名无须带有“http://”等协议内容,也不能在域名末尾附加详细目录)。需要注意的是:
1)在该域名和符合要求的下级域名内,可以代替旗下授权后的公众号发起网页授权。下级域名必须是$APPID$.wx.abc.com的形式($APPID$为公众号的AppID的替换符,建议第三方用这种方式,若需做域名映射),如果不按这种形式来做,旗下公众号违规将可能导致整个网站被封。
2)在该域名(一级域名)内可以代替旗下授权后公众号调用JS SDK(需要配合公众号的AppID)
其他参数的说明如下。
白名单IP地址列表:仅当开发者IP地址在该列表中时,才被允许调用相关接口。它最多填写20个IP地址,以英文“;”隔开。后续有出口IP变更时,一定要先在申请资料中填写并覆盖现网,否则会被拦截。
注:对于申请资料中填写的所有完整有效的URL,都需要做一次echo校验,以确定该URL是有效可连通的。这个与普通公众号开发模式下的URL校验方式一致,只是使用的Token为服务方的Token。
第三方平台开发参数配置如图22-8所示。
图22-8 第三方平台开发参数