附加应用的类型
1. 插件型
开发者根据三方平台提供的交互接口/函数/方法,完成一款插件,将代码提交至三方平台审核,审核通过后三方平台将插件代码安装至平台项目中运行,供微信运营者使用。
-
远程接口型
插件只需要接收微信粉丝发来的消息,将消息包装为接口要求的格式,向接口发起请求,得到接口返回数据并解析组装为微信要求格式发送给用户。 -
本地代码型
插件自身实现相关功能并返回结果给用户。
2. 独立系统型(CRM/ERP等)
-
自主运维
公众号运营者自己运维的系统,如个人站长的WordPress博客,1号店,京东商城。 -
第三方平台运维
第三方平台运维系统,如有赞商城。 -
服务商运维
由其他服务商依托第三方平台提供的数据或者直接获取微信用户数据进行运维,如有赞平台的ERP进存销系统。
根据系统用户信息授权来源不同,可以分为如下几种:
-
无需授权
不需要粉丝或者运营者通过微信对该应用进行授权。 -
代授权
公众号运营者先将公众号授权给第三方平台。应用系统使用第三方平台的Appid和Secret,再通过相关接口向粉丝发起授权请求,粉丝信息微信将直接推送至应用系统。 -
模拟授权
通过让粉丝在微信内提交“绑定”信息。 -
三方平台再授权
三方平台再实现OAuth2.0等协议,三方平台的用户(一般是公众号运营者)访问应用系统,应用系统请求授权,应用将得到用户在三方平台上的数据。
插件型实现方案
1. 远程接口型
-
举例
天气/手机号归属/电影票/交通等查询, 在线点歌, 基于小黄鸡等机器人实现的智能问答/聊天机器人等 -
使用场景
用户需要的功能与数据已由其他平台实现与产生,并留有交互接口(没直接接口抓取网页解析也可)。 -
通信流程
查成都天气预报为例
2. 本地代码型
-
举例
一战到底,刮刮乐,大转盘,微调研,微官网。微擎的大型附加应用如“人人商城分销版”也是这种形式,有赞商城本质也是这种。 -
使用场景
用户需要与应用互动,互动产生的数据需要存储在本地;或简单的纯信息展示型应用。 -
通信流程
玩大转盘游戏为例
独立系统型实现方案
1. 无需授权型
-
举例
侯斯特WordPress伴侣,成都交警,四川汽车票务网 -
使用场景
- 粉丝无需与系统交互,只浏览内容。运营者直接从应用入口管理内容,无需经过第三方平台。微信仅作为一个浏览器,例如成都交警公众号,其交管动态菜单直接指向官方网站。
- 粉丝与系统交互,但不在系统中产生内容。运营者直接从应用入口管理内容。如侯斯特WordPress伴侣,让粉丝可以通过公众号根据关键字搜索博客内容。
- 粉丝与系统交互,在系统中产生内容,但应用系统不在乎内容产生着与微信粉丝的身份关系。运营者直接从应用入口管理内容。如四川汽车票务网公众号在线购票。
-
通信流程
- 微信只做浏览器的情况(略)
- 不在乎粉丝身份的情况(略)
-
粉丝与系统交互但不产生内容的情况
侯斯特WP伴侣为例
2. 模拟授权型
-
举例
招商银行信息查询,工行信息查询 -
使用场景
系统根据微信粉丝身份信息产生结果并返回。例如要通过微信公众号查询“我的余额”,要确定这个微信粉丝的实名信息与欲查询的银行卡信息。在使用功能前,公众号都会要求粉丝提供识别身份的信息,进行绑定。 -
通信流程
查询银行卡余额为例
3. 代发起授权型
- 举例
京东商城,QQ充值 -
使用场景
针对已成熟在运营的大型、相对独立的应用系统。应用使用公众号appid、平台方的component_appid换取授权令牌,获得微信粉丝基本信息。获得以后,仍需要应用自己处理微信粉丝与系统内会员用户的关联关系。 -
通信流程
略,参考open.weixin.qq.com 代公众号发起网页授权文档
4. 三方平台再授权型
-
举例
有赞ERP、进存销等管理系统 -
使用场景
第三方平台运营一个垂直行业,平台本身就是用户针对该行业产生的基础数据,而平台方将针对该行业的增值服务等应用系统,再交由第三方服务商开发运营。平台方通过OAuth2.0等方式,让公众号在服务商处再次授权,允许第三方服务商从平台方获取公众号及公众号粉丝产生的数据,再去服务商处使用服务。
这需要服务商有完备的开发、运营、维护能力。不仅是对技术能力的要求。
如:公众号托管至有赞,运营微商城,而有赞平台本身不提供完整的ERP/CRM等应用系统,公众号再登录有赞合作服务商应用系统ERP,ERP向公众号运营者发起授权请求,请求公众号允许从有赞获取它的相关数据,公众号运营者允许以后,ERP获得数据,公众号运营者再进入ERP使用相关服务。 -
通信流程
略,参考三方平台从微信获取授权流程。
公众号应用安装与卸载
不论是哪种应用形式,第三方平台上要使微信运营者能够进行安装和卸载,都需要在第三方平台上添加一段代码来进行插件的管理。简单的形式只有安装、卸载。较为复杂的大型插件还需要有单独的页面,使运营者能对插件进行各种配置或定制。
-
安装
- 一个数据集/表存储公众号appid和被安装的模块名称,当点击“安装”以后,在此表中存储已安装插件和相关状态。
- 除了标记状态之外,还需要公众号内能够进行触发,无需运营者自己再配置。一般以关键词触发,所以需要插件安装的过程就为该公众号增加一条关键词匹配规则。
- 安装完成以后,公众号粉丝即可通过关键词回复使用插件功能。
参考如下的形式记录应用的安装状态和插件相关的设置:
1
2
3
4
5
6
7
8
9
10
11
12{
"appid": "gh_uLVlasdufl", //公众号appid
"installed": { //已安装的
"guaguale": { //应用名称
"enable": true, //是否启用
"other_setting": "value" //插件相关设置
},
"dazhuanpan": { //大转盘应用
//......
},
}
} -
卸载
安装的逆过程。
- 向微信服务器发起请求取消该公众号对应的关键词匹配规则
- 移除插件安装记录中的相关字段,如上例,卸载”大转盘”应用后,删除对应公众号应用记录中的”dazhuanpan”字段。