1.导读:浅谈微信开放平台之第三方平台

1.导读:浅谈微信开放平台之第三方平台

对宏观经济感兴趣的IT从业者,同名公众号LeeYond

# 导读:浅谈微信开放平台之第三方平台

标签(空格分隔): 第三方平台开发

导读

如果你针对微信公众号进行过开发,那么你肯定曾在微信公众号后台配置过自己的域名服务器以及密钥等信息。基于这个配置之后针对改公众进行定制化的开发,例如自动登录、个人中心、自定义二维码等。当你需要针对第二个微信公众号进行开发时,你可能仍然需要进行重复的步骤,并且配置不同的域名以及密钥等,于此同时每一次开发你需要保存公众号的账号密码,并需要获取公众号所有者的授权,不安全且繁琐。

随着需要运维公众号的数量逐步增加,需要投入的资源以及成本同步增加(不同公众号需要不同的域名以及服务器资源)。此时你可能需要一个平台,能够同时管理这么多公众号。因为无论具体的业务是什么场景,基于微信的开发必然是基于微信底层提供的各种接口进行不同业务形态的展开。为此我们可以通过抽象出功能层以及业务层来解构每个微信公众号的开发,其中功能层即微信提供的基础功能(回复消息/微信菜单管理/分组管理等),业务层即不同的业务场景。那么功能层就变成了第三方平台,一次开发供N个公众号使用,提供标准化的接口服务来满足业务的基础需求,业务层基于第三方平台进行其他更深的业务拓展,例如搭建CRM系统。

那么如何使用第三方平台呢?对于第三方平台来来说,可以通过扫描二维码授权给平台,帮助N多个公众号代实现业务,不再需要理解繁琐参数设置,并且密码不提供给开发者,保证安全。根据微信官方介绍:第三方平台的开放,让公众号或小程序运营者在面向垂直行业需求时,可以通过一键登录授权给第三方开发者,来完成相关能力。

第三方平台其本质是对于微信公众号开发底层功能层的抽象,不同公众号通过其授权将自身业务嵌入平台当中。

第三方平台

业务特点

从业务特征上来说,第三方平台特点必须如图所示:

从具体的业务场景上说,第三方平台包括以下场景: 1、提供行业解决方案,如针对电商行业的解决方案,或针对旅游行业的解决方案等 2、对公众平台功能的优化,如专门优化图文消息视觉样式和排版的工具,或专门定制的CRM用户管理功能,或功能强大的客服系统

数据安全

在技术上,第三方平台是通过获得公众号或小程序的接口的授权,然后代公众平台帐号调用各业务接口来实现业务的,例如其可以代代公众号调用接口、代公众号处理消息和事件、代公众号发起网页授权等(其实部分功能与公众号开发重合)。所以第三方平台本质是针对单个公众号开发的升级。因此,第三方平台在调用各接口时,同样必须遵循公众平台运营规范。

理论上当用户将公众号授权给第三方平台之后,第三方平台从某种程度上已经接手公众号,可以利用公众号的Token进行各种操作,例如修改菜单、自定义回复、创建分组等等。

由于公众号授权给第三方平台,用户与公众号进行交互的信息将会传送到第三方平台的服务器上。微信为了保证数据的安全性,进行了较为复杂的授权流程,如下图所示:

后面的课程会针对改流程进行详细讲解以及分析,并如何代码实现完整的授权

其次要求用户与公众号交互的信息加密传输(单独的公众号开发的时候是可以选择明文传输),并且有一套相对较为负责加解密流程进行数据传输。官方描述如下:首先请注意,开发者在接收消息和事件时,都需要进行消息加解密(某些事件可能需要回复,回复时也需要先进行加密)。但是,通过API主动调用接口(包括调用客服消息接口发消息)时,不需要进行加密。

权限集合

微信为第三方公众平台提供的服务包括公众号以及小程序,其中前者提供了20多种、后者近10种不同的权限类型。由于不同行业具有不同的特征,所以这些权限集合是可以根据自己需求进行个性化选择的,例如客户系统,CRM系统所需要的权限集合是不一样的。

并且当第三方平台进行全网发布时,根据选择不同的权限集合会进行相关的测试,只有当平台通过测试之后,其他公众号才能授权给该平台,利用该平台代实现业务。

所以综合来看第三方平台开发是一个相对复杂的工程,对于一个刚接触第三方平台开发的同学来说,想要快速上手是一个相对来说比较困难的事情。同时由于现阶段网络上关于第三方平台介绍的文章残次不齐,进行信息筛选花费了较多的时间成本。

专栏目标

第三方平台开发流程及问题

第三方平台从申请到全网发布主要经历如下几个步骤1.授权流程 2.公众号相关接口开发 3.小程序相关接口开发(不在此次课程范围) 4.测试以及发布。

  • 对于步骤1来说,微信每10分钟会向服务器推送一个Verfiy Ticket,平台需要利用该Ticket获取Component Access Token,利用该Token结合用户授权码才可能完成整个授权过程。这里涉及到Token保存问题、Token失效刷新问题、用户授权信息保存问题、用户授权的公众号Token刷新问题等。功能性的实现相对比较简单,但是作为系统来说,必须总体的设计才能稳定提供的服务。
  • 对于步骤2来说,微信针对公众号提供大约20+权限集合,每一种权限集合可能对应不同的应用场景,并且每种权限集合需要的参数以及接口都不相同。如何合理的设计我们的类,使我们相对优雅的进行开发,这都是我们需要考虑的问题
  • 对于步骤4来说,微信为了保障平台的稳定性,发布时需要进行测试,然而这时基于步骤1、2较好的完成的基础上,如果快速的通过测试,以及不同的测试报错如何快速定位,都是摆在我们面前的问题。

专栏特点

笔者当初开发时,进行相关信息检索发现文章质量较差,无法提供合理的指导,所以比较了解刚接触平台开发时可能遇到的具体问题。

为此本专栏将从第三方平台申请开始到发布结束,将会系统的介绍每个步骤可能遇到的问题,以及提供相对合理的解决方案。同时针对关键的一些功能进行单独的讲解,例如:个性二维码、自定义分组以及自定义回复等。

同时本专栏并不是单纯的将接口的功能实现,而是结合具体的业务场景规划我们的数据库、相应类的设计以及具体的功能设计。并且会在课程中放上具体的步骤或者代码,有兴趣的同学可以按照具体的步骤进行开发,逐步搭建属于自己的平台

结束语

本次开发主要使用语言为Java,采用SSM(Spring+SpringMVC+Mybaits)框架,同时数据库表结构设计部分可能采用维度建模的思想。如果有什么问题或者在课程中想要着重了解的地方,可以在我的读者圈或者关注我同名公众号与我联系。

备注:为了更好的学习本专栏,读者可能需要对于Java有一定的了解,并对操作系统有一定的了解,熟悉JDK安装/Tomcat安装以及相关环境变量配置等。为了更好的学习本课程,可能需要对Maven有一定的了解。

其次由于后面可能会涉及到数据库表结构的设计,所以需要对于数据库有一定的了解。由于第三方平台开发相对比较复杂,读者最好首先熟悉一下官方文档以及相关流程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值