云裂变营销网

标题: 第三方代开发小程序实践 [打印本页]

作者: 匿名    时间: 2023-3-7 14:28
标题: 第三方代开发小程序实践
第三方平台文档指引:点击查看
微信开放平台 - 第三方平台(简称第三方平台),由微信团队面向所有通过开发者资质认证的第三方开发者提供提供的官方平台。

在得到公众号或小程序管理员授权后,基于该平台,第三方服务商可以通过调用官方接口能力,为商家提供公众号代运营、小程序代注册、代开发等服务以及提供公众号和小程序相关的行业方案、活动营销、插件能力等全方位服务。
得到小程序授权后,基于该平台可以为业务方提供代开发等服务。接下来,本文将为大家介绍下第三方平台以及如何基于第三方平台实现自定义发布方案。
平台型第三方平台核心优势
安全可靠的授权
可基于官方接口能力批量为商家提供服务
一、第三方代开发概念介绍

为了帮助读者更快理解第三方平台方案,打消授权到三方平台的疑虑,这里先介绍下基本概念。
1.1 、授权 vs 绑定

首先业务方为了将公众号和小程序的用户身份打通要将业务方的公众号、小程序绑定到业务方同一个开放平台帐号下,才能实现,这与第三方平台的授权行为是完全不冲突的。

第三方代开发小程序实践-1.jpg

绑定


第三方代开发小程序实践-2.jpg

授权

具体关系如下图所示:业务方只需要授权到第三方平台即可,不影响原有的绑定行为。

第三方代开发小程序实践-3.jpg

绑定vs授权

1.2、小程序权限集


第三方代开发小程序实践-4.jpg

小程序权限集部分截图

同一权限集无法细分拆开单独接口进行授权。

第三方代开发小程序实践-5.jpg

开发管理与数据分析权限

1.3、不同类型的token

.token名称说明
access_token- 是使用公众号、小程序、网站应用或者移动应用的 Appid 和 secretKey 生成的。- 使用 access_token 调用官方接口,指的是使用商家身份调用接口,常用于自研模式。- 公众号、小程序、网站应用、移动应用的接口均支持使用 access_token 调用。
component_access_token- 是使用第三方平台帐号的 Appid 和 secretKey 以及 component_verify_ticket 生成的。- 使用 component_access_token 调用官方接口,指的是使用服务商身份调用只开放给服务商的接口。- 第三方平台的部分接口支持使用 component_access_token 调用。
authorizer_access_token- 是在获得商家授权的情况下,使用 component_access_token 和授权帐号 authorizer_appid 生成的。- 使用 authorizer_access_token 调用官方接口,指的是服务商代商家(服务商以商家身份)调用接口,常用于第三方开发模式。- 公众号、小程序的接口以及第三方平台的部分接口支持使用 authorizer_access_token 调用。- 网站应用、移动应用的接口不支持使用 authorizer_access_token 调用。

引导商家完成授权后,服务商即可获得权限代业务方(商家)调用公众号或者小程序的接口,只是服务商调用的时候要使用authorizer_access_token,而不是access_token

第三方代开发小程序实践-6.jpg

第三方代开发小程序实践-7.jpg

第三方代开发小程序实践-8.jpg
二、第三方代开发实践

2.1、商家授权服务商


第三方代开发小程序实践-9.jpg
医疗云第三方平台
2.2、授权小程序与开发小程序

小程序名称说明
授权小程序(又名商家小程序)- 商家可以有小程序,服务商也可以有小程序,为了高效沟通,通常将商家主体的小程序称为商家小程序;- 当商家将其小程序授权给服务商之后,则称之为授权小程序。- 然而,商家可以将公众号和小程序都授权给服务商,统称为授权帐号,指的是已经授权给服务商的帐号(含公众号和小程序帐号)- 与授权帐号相对的是服务商帐号,通常是使用第三方平台帐号来代指服务商帐号。
开发小程序(又名模板小程序)- 商家小程序通常是最终会发布上线,成为一个可用的应用为 C 端用户提供服务的。- 而开发小程序只是服务商用于进行小程序代码的编写、用于小程序的调试等工作,通常不会发布上线。- 由于一份小程序的代码可以批量复制于无数个商家小程序,这份母版小程序代码又称小程序模板代码,用于开发该母版小程序代码的小程序帐号则是“开发小程序”帐号,也称之为“模板小程序”帐号。- “开发小程序”其实也是一个普通的小程序帐号,只需要将普通小程序绑定到第三方平台帐号中即为“开发小程序”。


第三方代开发小程序实践-10.jpg
第三方平台相关的小程序开发需要做一些特殊的处理:
2.3、代业务方开发小程序


第三方代开发小程序实践-11.jpg
官方给出的代开发小程序流程比较复杂,涵盖了代小程序开发、提交代码、提交代码审核、发布上线的全过程。
然而对我们场景来讲,不干涉业务方小程序的开发,只涉及开发完成后代业务小程序提交代码、提审、发布的场景。 也就是我们只关注下图场景:

第三方代开发小程序实践-12.jpg

图中介绍了两种代上传小程序代码的模式,在具体介绍这两种模式之前,我们先看下第三方模式下新增的ext.json配置文件。
前文介绍概念时提到过3rdMiniProgramAppid 和extAppid, 我们都知道小程序的project.config.json中声明了appid, 授权到三方平台后,代业务方小程序操作提交代码、提审发布时,这个appid需要被替换成3rdMiniProgramAppid,因此需要一个配置来管理业务方真实的appid即extAppid。 ext.json就是这样的一个配置文件,用来配置代开发后相关信息。
  1. {
  2.   "extEnable":true,
  3.   "extAppid":"wxbfdd416fcdf80be5",
  4.   "directCommit":true// 是否直接提交到审核列表
  5. }
复制代码
其中directCommit用来指定是否直接提交到审核列表,上传代码至草稿箱的模式,适用于通过代码模版,开发管理多个授权小程序的模式。再次重申,不干涉业务方小程序的开发,只涉及开发完成后代业务小程序提交代码、提审、发布的场景。因此不论是从目标还是方案的可行性考虑,通过directCommit方案直接提交小程序代码到审核列表都是更加合理的选择。


第三方代开发小程序实践-13.jpg
三、第三方代开发发布平台搭建

前文介绍了第三方平台相关的基本概念,如何基于第三方平台代开发小程序,下面将详细介绍下第三方代开发发布平台是如何基于第三方平台实现平台的自定义授权发布方案。
3.1、方案介绍

第三方代开发平台的授权发布方案整体流程如下图所示。 与未授权方案相比,业务小程序本地开发、特性分支push触发开发版二维码生成的流程没有任何变化。区别在于上传代码生成体验版 及后续的小程序提交审核、发布、上线的流程。后续流程不再基于mp平台进行,而是通过三方平台调用api实现。

第三方代开发小程序实践-14.jpg

为实现上图的效果平台需要实现下述几点能力:
下面也将从这几个方面介绍方案的具体实现。
3.2、api服务层封装

前文提及过,三方平台想调用api接口操作小程序,需要业务方授权,并且提供authorizer_access_token,而不是access_token。

第三方代开发小程序实践-15.jpg

第三方代开发小程序实践-16.jpg
3.3、小程序上传流水线改造

前文介绍ext.json中的 directCommit 是一个 Boolean 类型的字段,用于规定当前的上传操作是否是直接上传到 extAppid 的审核列表中。 当 directCommit 为 true 真时,开发者在工具中的上传操作,会直接上传到对应的 extAppid 的审核列表,第三方平台只需要调用 https://api.weixin.qq.com/wxa/submit_audit?access_token=TOKEN 即可以提交审核。
directCommit可以通过miniprogram-ci ci工具进行上传,ci工具使用说明如下:
miniprogram-ci 从 1.0.28 开始支持第三方平台开发的上传和预览,调用方式与普通开发模式无异。 使用第三方平台开发模式时,应注意:
请确保项目中存在正确的 ext.json
密钥文件是第三方平台绑定的开发小程序 appid 的密钥文件
ip白名单是第三方平台绑定的开发小程序 appid 的 ip 白名单
调用传入的 appid 是第三方平台绑定的开发小程序 appid 关于第三方平台开发模式
也就是说使用miniprogram-ci 配合directCommit配合小程序上传,需要项目具有正确配置的ext.json文件。
由于要让业务方无需关心上述转换流程,需要对小程序上传代码生成体验版的ci流程进行改造。
流程图如下所示:

第三方代开发小程序实践-17.jpg

3.4、 体验版二维码获取

由于前文介绍,对上传小程序代码进行了改造上传至第三方平台,也无法再使用原有miniprogram-ci的方式获取体验版二维码,获取到的会是开发版小程序的体验二维码而不是业务小程序。
因此需要单独提供业务小程序的体验版二维码的获取方式。 通过openAPI获取体验版二维码接口:https://api.weixin.qq.com/wxa/get_qrcode?access_token=ACCESS_TOKEN 获取体验版二维码并通过流水线推送至开发者。

3.5、 版本管理能力

业务小程序授权到三方平台后原mp平台的版本管理页面将无法再使用。

第三方代开发小程序实践-18.jpg
需要为业务方提供新的版本管理页面。

第三方代开发小程序实践-19.jpg

并通过下属openApi实现小程序版本的提审、发布、灰度、全量。

第三方代开发小程序实践-20.jpg
可扩展功能点:
1.连接生产服务器的体验版才容许提审。
2.发布前增加审批流。比如必须通过自动化测试/人工测试审批后才可以发布。
3.6、 域名管理

业务小程序授权第三方平台后,需要由第三方平台管理小程序的业务域名和服务器域名,为了避免业务方重复配置,实现无缝切换,前文的授权后流程中也介绍了授权后会小程序域名的同步设置,小程序的域名的设置方式如下图。

第三方代开发小程序实践-21.jpg

第三方代开发小程序实践-22.jpg
无论是业务域名还是服务器域名都支持下面两种方式设置。
方式一

方式二
3.7、 隐私协议设置

授权到第三方平台后,授权主体从小程序主体变为第三方平台的主体,因此mp上的隐私设置 配置无效,需要重新填写隐私设置配置
建议: 授权前先前往mp平台 》设置 》基本设置 》功能设置 》用户隐私保护指引设置 保存原有配置,便于授权后重新填写隐私设置配置。
注意: 需要在上传过一次体验版之后再去设置隐私协议
设置隐私协议接口:setPrivacySetting
获取隐私协议接口:getPrivacySetting





欢迎光临 云裂变营销网 (https://www.yunliebian.com/yingxiao/) Powered by Discuz! X3.4