# 创建与配置第三方平台准备工作

创建与配置第三方平台的整体步骤如下:

  1. 创建账号时,需填写基本信息。
  2. 完成账号创建后需进行开发配置:主要包含权限集配置和开发资料配置。
  3. 开发配置完成后,即可进行调试。
  4. 调试完成后,即可提交审核(也可以在提交基本信息后即提交审核,然后再编辑开发资料)。
  5. 最后进行全网发布(开发资料需要全网发布才会对现网生效)。

在基本信息和开发资料填写环节,需要准备的信息较多,本文将描述创建第三方平台的准备事项,便于开发者提前做好准备。

# 基本信息填写准备

1)需要准备可访问的官方网站,创建第三方平台时需要填写官方网站地址。

2)需要准备 108 x 108 像素、大小不超过 300 KB、格式为 PNG 的图片,用于作为平台的图标。创建账号时,如果尚未准备好图标,可先采用默认图标。

# 开发资料填写准备

1)需要准备「授权发起页域名」,用于从该域名跳转至授权页面(如果启用云开发,则会默认支持从云托管域名内网页跳转到登录授权页)。

2)需要准备「授权事件接收 URL」,用于接收取消授权通知、授权成功通知、授权更新通知,也用于接收 ticket 等。简单理解为,只推送给服务商的消息就会推送到该 URL(如果启用云服务模式,则只需要填写对应的云环境等信息即可)。

3)需要准备「消息与事件接收 URL」,用于接收公众号或小程序消息和事件推送。简单理解为,同时推送给服务商和授权公众号或者小程序的消息就会推送到该 URL(如果启用云服务模式,则只需要填写对应的云环境等信息即可)。

4)如果是公众号开发,还需要准备「公众号开发域名」,作为调用 JS SDK 等网页开发工作时所用的域名。

5)如果是小程序开发,还需要准备「小程序服务器域名」和「小程序业务域名」。

此外,为帮助开发者更高效地完成第三方平台后端服务搭建和配置,可选择「第三方平台云服务模式」,详情可查看如何搭建第三方平台后端服务

# 调试准备

1)需准备公众号或者小程序账号,将其加入「开发配置 - 开发资料 - 授权测试公众号/小程序列表」。

2)需将调试 API 的 client IP 加入「开发配置 - 开发资料 - 白名单 IP 地址列表」。

# 开发资料详细说明

1)开发资料有测试版和现网版两份资料,测试版的配置只对「授权测试公众号/小程序列表」里的账号生效。

2)全网发布通过的资料才会对所有的授权账号生效。

# 1. 授权发起页域名

授权发起页域名指公众号/小程序在登录授权给第三方平台时的授权回调域名,在公众号/小程序进行登录授权流程中,必须从本域名内网页跳转到登录授权页,才可完成登录授权。

授权成功后会回调授权时提供的 URI,平台会检查 URI,必须保证 URI 所属域名与服务申请时提供的授权域名保持一致。否则授权页面会出现「确认授权入口页所在域名,与授权后回调页所在域名相同,并且,此两者都必须与申请第三方平台时填写的授权发起页域名相同」的报错提示。

注意:域名不需带有 http:// 等协议内容,也不能在域名末尾附加详细的 URI 地址,严格按照类似 www.qq.com 的写法。

# 2. 授权测试公众号/小程序列表

在全网发布之前,仅该列表内公众号/小程序才可进行授权,以便测试。请填写公众号/小程序的原始 ID(可在公众平台网站的公众号设置页或小程序设置页找到),最多 10 个,以英文 ; 隔开。

注意:需填写原始 ID,不是 AppID,否则会报错。

# 3. 授权事件接收配置

用于接收取消授权通知、授权成功通知、授权更新通知等一切平台只推送给第三方平台账号的消息与事件;接收到的信息是加密的,需要按照文档进行解密。

也用于接收验证票据(component_verify_ticketcomponent_verify_ticket 是验证平台方的重要凭据,请妥善保存。服务方在获取 component_access_token 时需要提供最新推送的 component_verify_ticket 以供验证身份合法性。

注意:如果启用云开发模式,则只需要填写对应的云环境等信息即可。

# 4. 消息校验 Token

开发者在代替公众号/小程序接收到消息时,用此 Token 来校验消息。用法与普通公众号/小程序接 token 一致。

注意:如果启用云开发模式,则该项不需要填写。

# 5. 消息加解密 Key

在代替公众号/小程序接收发消息过程中使用。必须是长度为 43 位的字符串,只能是字母和数字。用法与普通公众号/小程序接 symmetric_key 一致。

注意:如果启用云服务模式,则该项不需要填写。

# 6. 消息与事件接收配置

该 URL 用于接收已授权公众号/小程序的消息和事件,消息内容、消息格式、签名方式、加密方式与普通公众号/小程序接收的一致,唯一区别在于签名 token 和加密 symmetric_key 使用的是服务方申请时所填写的信息。由于消息具体内容不会变更,服务方可根据消息内容里的 ToUserName 区分出具体消息所属的公众号/小程序。

考虑到服务需要接收大量的授权公众号/小程序的消息,为便于做业务分流和业务隔离,必须提供如下形式的 URL:www.abc.com/aaa/$APPID$/bbb/cgi,其中 $APPID$ 在实际推送时会替换成所属的已授权公众号/小程序的 AppID。

第三方平台只需获得某个业务模块的授权(而不需要获得客服与菜单权限的授权),然后在收到该业务模块事件推送后,如果该事件是允许在 5 秒内被动回复消息给粉丝的,那么第三方就可以被动回复(业务模块的哪些事件推送允许被动回复用户,哪些不允许,需咨询具体业务模块)。

如果第三方希望实现实时获知公众号有新粉丝关注,只需收到关注事件后回复 success 即可,不必另行回复,以免公众号出现多个第三方同时进行粉丝关注后的自动回复。

注意:如果启用云服务模式,则只需要填写对应的云环境等信息即可。

# 7. 公众号开发域名

公众号开发域名最多可以填写 3 个,每个以英文 ; 符号隔开。每个公众号开发域名会产生 2 个效果(注意:不需带有 http:// 等协议内容,也不能在域名末尾附加详细目录):

  • 在该域名和符合要求的下级域名内,可以代替旗下授权后公众号发起网页授权。下级域名必须是 $APPID$.wx.abc.com 的形式($APPID$ 为公众号的 AppID 的替换符,建议第三方用这种方式,若需可做域名映射)。如果不按这种形式来做,旗下公众号违规将可能导致整个网站被封。
  • 在该域名(一级域名)内,可以代替旗下授权后公众号调用 JS SDK(需要配合公众号的 AppID)。

# 8. 小程序服务器域名

授权给第三方的小程序,其服务器域名只可以为第三方平台的服务器。当小程序通过第三方平台发布代码上线后,小程序原先自己配置的服务器域名将被删除,只保留第三方平台的域名,所以第三方平台在代替小程序发布代码之前,需要调用接口为小程序添加第三方平台自身的域名。

注意:需要先将域名登记到第三方平台的小程序服务器域名中,才可以调用接口进行配置。

限制说明

1)最多可以添加 1000 个合法服务器域名;其中,Request 域名、Socket 域名、Uploadfile 域名、Download 域名、UDP 域名、TCP 域名的设置数量均最大支持 200 个。

2)每月可提交修改申请 50 次。

# 9. 小程序业务域名

授权给第三方的小程序,其业务域名只可以为第三方平台的服务器。当小程序通过第三方发布代码上线后,小程序原先自己配置的业务域名将被删除,只保留第三方平台的域名,所以第三方平台在代替小程序发布代码之前,需要调用接口为小程序添加业务域名。

注意:需要先将业务域名登记到第三方平台的小程序业务域名中,才可以调用接口进行配置。

为授权的小程序配置域名时支持配置子域名,例如第三方登记的业务域名如为 qq.com,则可以直接将 qq.com 及其子域名(如 xxx.qq.com)也配置到授权的小程序中。

最多可以添加 200 个业务域名。

# 10. 白名单 IP 地址列表

仅当开发者 IP 地址在该列表中时,才被允许调用相关接口。最多填写 100 个 IP 地址,以英文 ; 隔开。后续有出口 IP 变更时,一定要先在申请资料里填写并覆盖现网,否则会被拦截。

# 11. 其他补充

注意:对于申请资料中填写的所有完整有效 URL,都需要做一次 echo 校验,以确定该 URL 是有效可连通的,这个与普通公众号开发模式下 URL 校验方式一致,只是使用的 token 为服务方的 token。具体校验规则请点击查看