先说一下微信公众平台-第三方平台(后面统称微信第三方平台
)是什么东西吧?简单理解:微信第三方平台就是「开发者作为服务商」通过调用微信开放平台的接口,为所有「授权到该第三方平台的公众号、小程序的运营者」提供技术开发、行业方案,活动营销等「通用化功能服务和解决方案」。更容易一点的理解:服务商(开发者)通过微信第三方平台开发一套公众号/小程序模板代码,授权方授权后即可通过服务商直接得到对应的行业解决方案。
举个小栗子:我们开发了一套行业通用解决方案的小程序,现在客户A
、客户B
、…客户Z
等都觉得这个小程序很不错,希望能够直接将小程序的功能部署到他们各自的小程序上,那么这时候通过微信第三方平台即可直接授权并快速部署上线(一套代码、N
个小程序/公众号)。更多介绍可以参考微信第三方平台概述
这一篇是基础知识篇,主要介绍微信第三方平台注册认证以及对应的一些基本概念。
开放平台注册认证
首先你得在微信开放平台上注册一个账号,并且完成开发者资质认证。开放平台的开发者资质认证一般情况只需要一次认证即可,没有年审(通常情况下也不需要重新认证),因此国内认证一般只需要缴纳第一次的300
元审核费用,届时会有第三方审核机构电话回访确认信息并且向贵司的对公账号打一笔小额转账,我们需要跟财务沟通确认具体金额并告知审核机构,然后耐心等待审核即可。
创建微信第三方平台
有了开放平台并且通过了开发者资质认证,这时候我们就可以创建我们的微信第三方平台了。一个开放平台账号能够最多创建5
个平台型服务商第三方平台和5
个定制化开发服务商第三方平台。两者的区别在于定制化开发服务商
一般用于满足用户的个性化需求开发,可以针对每个客户发布极具个性的小程序或插件,每次都需要重新开发,成本高,一般不具有平台或行业的通用性(没有微信关于实现业务的权限集概念)。平台型服务商
则更多是以SaaS
化产品为主,主要针对某些细分行业或者业务场景提供通用化的解决方案,需要客户授权对应的权限集,不需要针对每个客户做特定开发,成本较低。
这里我们以平台型服务商
为例,其基本创建流程如下所示:
一般来说,初次创建的第三方平台都会直接通过审核,耗时的审核更多是在后续的初次发布与覆盖全网发布。上图中的一些选项说明在平台型第三方平台申请资料说明中有些不是很详尽,下面我们统一介绍一下。
权限集
权限集是平台型服务商才有的概念,主要用于告知授权方该服务商需要哪些公众号/小程序的业务能力,授权方授权后服务商才有能力去调用对应的微信接口(如果授权方自定义了授予服务商的权限集,那么部分功能就很可能受限无法调用)。
参考公众号/小程序权限集列表,我们可以看到部分权限集是互斥的,那么什么是权限集互斥呢?原来呀,每个公众号或者小程序都可以授权关联到多个平台型服务商第三方平台,这时候互斥的权限就只能授权给其中的一个服务商(比如:开放平台账号管理权限、商品库权限、物流配送权限、小商店权限等等)。因此如果使用到了这些权限集,那么务必要跟客户沟通清楚,避免某些业务权限集没有授权导致最终业务无法正常使用。这部分可以在客户授权时进一步进行判断。
同时,我们在选择第三方平台的权限集时只能选择业务必须的权限集,否则可能无法通过微信的审核。当第三方平台全网发布后并且已经有客户授权了,那么这时候如果我们根据实际业务添加了新的权限集要求,那么需要再次提交审核,审核通过后进行覆盖现网全网发布(一般7
个工作日内完成),发布后需要「引导旧用户重新扫码授权新的权限」。
授权的发起页域名
客户想要授权关联服务商的第三方平台时,需要我们提供对应的授权发起地址,访问该地址会直接重定向访问微信生成授权二维码,客户使用授权公众号/小程序的管理员微信扫码即可进行授权。授权的发起页域名
指的就是我们提供的授权发起地址对应的域名。
授权测试公众号列表
在第三方平台全网发布之前,只有在授权测试列表里的公众号或小程序能够进行授权与测试(注意别看名称是公众号,实际上小程序也可以的)。最多10
个,以半角分号;
分隔。注意这里能填写的公众号/小程序的原始ID
。这里主要是为了方便我们验证第三方平台代公众号/小程序实现的业务功能是否正常。
授权事件接收URL
当第三方平台创建并且审核通过后,微信会每隔10
分钟POST
请求将验证票据推送到授权事件接收URL
,我们通过实现该回调接口来完成与授权事件相关的功能,除了接收验证票据(验证票据component_verify_ticket
用于获取第三方平台的访问令牌component_access_token
),还可以接收取消授权通知、授权成功通知、授权更新通知、复用公众号资质快速注册小程序通知、法人身份认证方式创建小程序通知。
消息校验Token
第三方平台授权事件推送消息,公众号/小程序审核事件推送消息,公众号/小程序客服消息推送消息时需要使用该token
进行消息校验以确保消息不是伪造的(在token
未泄露的情况下)。32
位,通常可以使用UUID
代替。
消息加解密key
第三方平台授权事件推送消息,公众号/小程序审核事件推送消息,公众号/小程序客服消息推送消息的消息内容使用了AES
算法进行加密,因此在验证消息非伪造后,通过解密消息可以得到原始数据。43
位,只能是字母和数字。
消息与事件接收URL
用于接收已授权公众号和小程序的消息和事件,包括客服消息,小程序名称修改审核事件,代码审核通过、被拒绝、被延后事件,发送模板消息任务完成事件、新粉丝关注事件等等。这一块的消息种类非常多,需要根据权限集来确定都有哪些消息回调需要处理。可以直接在URL
上通过$APPID$
占位符来获取事件推送时对应的授权公众号/小程序的appId
。
比如配置了URL
为:https://xxx.com/wxopen3rd/callback/msg/event/$APPID$
,那么当小程序wxa1234db12349527
的代码发布通过后,即可推送对应的weapp_audit_success
消息到https://xxx.com/wxopen3rd/callback/msg/event/wxa1234db12349527
。
公众号开发域名
该配置用于配置H5
网页发起微信授权,最多可以配置3
个域名,通过半角分号;
分隔。每个域名有如下效果:
1、已备案的子级域名(格式为${appId}.top.domain
,其中${appId}
表示授权公众号的appId
)可以代替授权公众号发起网页授权。
微信官方建议第三方平台使用该种方式进行网页授权,否则当某个公众号违规时将可能导致整个网站都被微信封禁。
2、在该域名下,可以代替授权公众号调用JS SDK
,比如发起支付请求。
这里实际上是分了两种用途,我们以abc.com
为例,如果是纯粹的网页授权,这时候我们可以使用${appId}.abc.com
进行网页授权,也可以直接在abc.com
下进行授权;但如果是需要用到支付等JS SDK
功能,那么这时候就只能从abc.com
域名发起,不能在子域名下发起(注意支付服务商要配置对应的支付授权目录,否则H5
将无法发起支付)。
小程序服务器域名
小程序服务器域名用于配置第三方授权小程序的服务器域名列表(request
域名、socket
域名、uploadFile
域名、downloadFile
域名以及udp
域名)。必须先在第三方平台添加这些服务器域名,然后才能通过接口为小程序添加这些服务器域名。(当小程序通过第三方平台发布代码上线后,小程序原先的服务器域名配置将被清空)。
经过上上一次(大约在2020年7月
份)的微信第三方平台更新,服务器域名数量从20
个扩充到1000
个,每月修改次数从3
次扩充到50
次。大大缓解了大型平台服务商的小程序服务器域名数量不够用的难题。
小程序业务域名
小程序业务域名用于配置小程序webview
域名,与小程序服务器域名一样,必须先在第三方平台添加这些业务域名,然后才能通过接口为小程序添加这些业务域名。(当小程序通过第三方平台发布代码上线后,小程序原先的业务域名配置将被清空)。
经过上上一次(大约在2020年7月
份)的微信第三方平台更新,第三方平台能够设置的业务域名从20
个扩充到100
个,每月修改次数从3
次扩充到50
次。同时支持配置子域名,比如第三方登记的业务域名如为abc.com
,则可以直接将abc.com
及其子域名(如720.abc.com
)也配置到授权的小程序中。并且不需要每个子域名都配置校验文件,同时大大减少了业务域名的数量。缺点就是必须将校验文件配置在顶级域名上。
白名单IP地址列表
当且仅当开发者IP地址在该列表中时,才能够代替公众号/小程序调用相关接口。最多填写100
个IP
地址,以半角分号;
分隔。特别注意:后续如果IP
有变更,必须先覆盖现网全网发布,否则请求都将被微信拦截。
结束语
以上就是关于注册认证开放平台和创建第三方平台的一些资料介绍与说明,通过本篇的介绍,希望能够给你在创建第三方平台时提供一定的辅助便利作用,同时为后续的第三方平台开发与代公众号/小程序实现业务打下一定的基础,下一篇我们将会介绍如何实现第三方平台授权与复用公众号资质快速注册小程序。敬请期待!
原文始发于微信公众号(三维家技术实践):如何开发一个微信第三方平台?(创建篇)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/30640.html