搭建框架快速开发微信公众平台功能
2015-11-23梁广浩
梁广浩
(广西南宁一伙人网络科技有限公司,广西 南宁 530022)
搭建框架快速开发微信公众平台功能
梁广浩
(广西南宁一伙人网络科技有限公司,广西 南宁 530022)
伴随微信的普及,微信公众平台走入市场,越来越多企业、商户需要制作自己专属的微信公众平台,微信公众平台的第三方接入开发必不可少。如何高效开发、节省人力成本开发出自己需要的专属功能,是目前中小企业主最关心的问题。PHP是目前最流行的微信公众平台第三方接入程序开发语言之一。文章介绍了如何快速的实用PHP搭建框架开发部署接入微信公众账号,开发者只需要关注后续的特殊功能,可以为开发者省去很多重复研究、编写信息交互的时间。
微信公众平台;微信二次开发;微信快速开发
1 引言
目前,智能手机已经广泛的普及到了人们的生活当中。在国人智能手机中几乎属于必不可少的APP非微信莫属,据2015年腾讯统计的微信数据显示:百分之90以上的智能手机安装了微信,微信每月活跃用户高达5.49亿,遍及全世界200多个国家,使用语言超过20种,微信支付用户达到了4亿人。特别需要关注的是:各类品牌、企业、个体开通的微信公众账号总数已超过850万个,而对接公众账号的移动应用仅有8万5千个。由此可见:市场对微信公众品台功能的对接与开发存在了巨大的需求,微信平台应用会逐渐增加。
随着PHP语言的发展,越来越多的企业选择使用PHP来作为WEB项目开发语言,替换原有的ASP、JSP语言。当然并不是说另外两种WEB开发语言不好,选择PHP的主要原因有3点:①开发效率高,面向对象与面向过程的结合更适开发者们发挥;②网站成本低廉,不论哪种操作系统都能够搭建PHP的WEB服务器;③由C语言底层开发,开源迭代升级,拓展性好,更安全。同理,一般企业也更倾向于使用PHP开发微信公众平台的移动应用。
2 微信公众平台研究
2.1微信公众平台概述
微信公众平台是腾讯在微信大量用户的基础上为开发自身价值,添加更多优质内容,提升用户粘度而衍生成的平台媒介。用户通过微信公众平台,可自发地进行自媒体即一对多的媒体性行为活动。商家通过二次开发,接入公众平台,可自行设计研发自己需要的功能,由此发展自己的线上对线下的营销服务活动。
2013年8月5日,微信对公众平台进行了升级,把微信公众平台分成了服务号和订阅号两种类型:
服务号用于为用户提供服务,一个月内可以群发 4条信息给关注的用户;服务号发送的信息会直接出现在粉丝的聊天记录里,并且粉丝会收到信息提醒。
订阅号用于给用户提供资讯,订阅号每天可以群发 1条信息给关注的用户;订阅号发送的信息显示在粉丝订阅号文件夹中,发送信息时粉丝不会收到信息提醒。
不论是服务号还是订阅号,都可以进行开发接入。订阅号需要申请认证之后才能使用自定义菜单功能。
2.2微信公众平台对话数据的交互模式
微信公众平台与粉丝用户交互信息的数据格式目前共有7种:
①文本消息,消息类型text,用于包含传送文本消息内容;
②图片消息,消息类型image,传递图片链接及图片消息媒体ID,用于调用多媒体文件下载接口拉取数据;
③语音消息,消息类型voice,传递语音媒体ID,并传递语音媒体类型格式,如amr,speex等。
④视频消息,消息类型video,传递视频媒体ID,用于多媒体接口拉取数据,并传递缩略图ID用于多媒体文件下载接口拉取数据。
⑤小视频消息,消息类型shortvideo,传递视频消息媒体ID以及缩略图ID,用处与视频信息ID一致。
⑥地理位置消息,消息类型location,传递地图信息的经度、纬度、地图缩放大小以及地理位置信息
⑦链接消息,消息类型link,传递链接消息的标题、描述、链接地址用于描述链接具体内容。
在与微信服务器传递消息时需要重试的消息排重,推荐使用 msgid排重。微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。为了保证更高的安全保障,开发者可以在公众平台官网的开发者中心处设置消息加密。开启加密后,用户发来的消息会被加密,公众号被动回复用户的消息也需要加密。
2.3微信公众平台数据调用功能分类研究
微信公众平台可以实现通过远程API调用微信公众号内记录的信息;对接微信公众平台官方开发的实用功能;以及与许多终端设备数据调用以及交互。
通过开发接口可调用的公众号数据记录主要有粉丝用户数据统计和消息互动数据统计两种。其中,可调用接收的粉丝用户数据统计包括:粉丝用户分组数据、设置粉丝用户备注名、获取粉丝用户基本信息、获取所有粉丝用户列表、获取粉丝用户地理位置、网页授权获取粉丝用户基本信息;可获取的消息互动数据统计信息包括:粉丝用户分析数据、图文分析数据、消息分析数据、接口分析数据。
对接微信公众平台官方已开发的实用功能目前主要有 6种:
①自定义菜单管理:管理聊天界面快捷菜单,可执行菜单创建、菜单查询、菜单删除、菜单事件推送以及获取自定义菜单配置的功能。
②生成场景事件二维码:用户扫描二维码后如果没有关注该公众号的会提示关注公众号,关注公众号后会自动将场景事件推送给客户,如果已关注公众号的,微信会直接推送场景事件。
③微信小店:微信公众平台官方自行开发实现了微信开店网上销售的功能,开发者可以通过小店接口快速实现:开店及商品管理、库存管理、邮费运费自定义、分组管理、货架管理、订单管理以及图片上传下载功能管理。
④微信卡券:用于实现商家发放优惠卡券、验证卡券信息,提升用户黏着度,创建的卡券会出现在粉丝的用户菜单卡券一栏里。卡券主要可调用功能有:创建卡券、投放卡券、核销卡券、管理卡券、统计卡券、卡券事件推送、会员卡、特殊票券等。
⑤微信门店:门店管理接口为商户提供门店批量导入、查询、修改、删除等主要功能,方便商户快速、高效进行门店管理和操作。
⑥多客服功能:官方提供的多客服功能,可接入微信公众账号,实现在手机端、PC端都可查看公众号消息,对客户消息做出互动。同时还提供接口,用于客服管理、会话控制、聊天记录管理。
微信公众账号还提供了与其他终端设备交互的功能,目前开发的功能有:与计步器手环数据对接、电视弹幕数据对接等,往后官方还会陆续推出与其他设备对接的功能。
3 PHP分析
3.1PHP简要分析
PHP目前版本使用的是 C语言作为底层开发的 zend Engine作为解析驱动,属于弱数据类型脚本语言。可用于连接数据库,生成动态网页程序。
PHP作为专门的网页开发语言,有着几个十分重要的优势特性:
①开发效率高:语法独特,混合了C,JAVA等主流编程语言的语法规则,并加入了面向对象的语法支持,同时吸收了ASP编程语言的可嵌入HTML里输出标签的特性,使得使用PHP语言编写网页程序时十分灵活,程序员可以十分迅速地独立完成某个功能的开发。
②免费开源:源码全开源,无论哪个版本的PHP都可以在官网下载到源码,开发者可以在任何平台免费搭建PHP环境,对于企业来说能够节省一大笔开支。
③专业专注:PHP可以用C和C++语言开发插件,有十分高效的运行效率,有强大的图形处理 GD库,执行效率很高同时在更新版本时PHP仍不断地对执行效率进行优化,新版本的PHP5.7效率更是比PHP5.5高出一倍,完全能够支撑处理大型网站。
3.2PHP快速开发介绍
PHP能够实现高效率地开发得益于其易入门、免费开源,从而积攒下了大量的程序员基数,各种成熟的社区及开源项目组。高效的开发PHP的WEB项目,缩短项目耗时主要有三个途径:
使用PHP开发框架进行项目开发。对于PHP编写,难免会要关注很多细节问题,如程序路由问题、前端输出与功能处理的分块、数据库读取抽象类编写、程序安全问题等,这些问题十分繁琐而且又不得不考虑及注意。快速解决这些问题的方法就是使用成熟的PHP开发框架:这样不但可以不用考虑底层数据交互安全问题、路由寻址合理性问题;还可以省去前后端开发结合,功能分离MVC的部署。开发者可以只专注某特殊功能的开发即可。
特殊复杂的功能用现有的功能插件集成组合来实现。例如某微信功能可能需要生成特定的二维码来与系统进行交互,如果开发者没学过二维码的生成原理,只用系统自带的GD库根本完成不了。这时候就需要用到二维码生成插件,开发者可以不用考虑二维码是如何生成的,只需要调用现成的插件输入需要解析的字符串,生成二维码图片即可。
使用成熟的CMS管理系统,以插件形式开发特殊功能,省去项目开发时的后台开发时间。大多数的WEB应用都有一个既定的流程:发布、审核、展现。一般用户看到的只是前端的展现,后端的发布审核其实根本不需要多样化,如果每一个项目都重复的去开发后台的发布、审核流程,需要耗费太大的人力成本,因此选择成熟的CMS系统去完成后台的功能操作,只专注于开发前端展示功能,是一般中小企业节省人力开支、加快项目进度必不可少的一个环节。
3.3PHP框架介绍及选择
PHP的框架有很多,选择框架进行开发时应结合自己项目的实际问题来考虑,每个框架的优势都不一样,单基本功能都是齐全的,下面简单介绍两个PHP框架,说明一下如何根据企业实际项目情况来选择PHP开发框架。
ThinkPHP,国内最流行的PHP框架,一般小型公司建站首选,许多在职PHP程序员都使用这套框架,培训成本低,团队组建快,国内编写的功能插件多,适合绝大多数中小企业项目组使用。
Laravel,目前国际上使用者最多的PHP框架,底层差价多,更新迭代快,基于PHP5.6以上版本使用,运行效率高,大型网站项目建设选择之一,但是学习成本略微高出一般框架,服务器环境配置要求也高,如果一般的中小企业建站,没有自己独立的主机或者虚拟主机,很难在网络上配置运行该框架。
4 PHP微信公众平台快速搭建框架
4.1数据源分析
与微信公众平台服务器交互需要用 XML格式信息传递与接收,不同形式的信息有不同的传递字段,交互信息格式如下:
XML信息中的字段在 PHP中需要做解析才能够获取其中的数据进行分析及交互,同时处理完成的数据,我们也需要转换回XML格式信息回传给服务器。这时我们就需要用到PHP的XML解析函类:XMLReader用来解析信息,处理完成后,需要用XML封装类:DOMDocument,重新封装成XML信息传回微信服务器。
4.2程序流程设计
微信公众平台第三方接入程序响应流程为:
①用户给公众平台微信服务器发送信息。
②微信服务器将收到的信息转化成 XML格式传递给第三方接入服务器。
③第三方服务器接收到请求信息后进行分类处理。并把处理结果信息封装成XML格式返回给微信服务器。
④微信服务器将接收到的信息返回给用户。
具体情况如图1所示:
图1 微信消息处理过程
任何粉丝发送的信息,都会转换成XML信息传入到接入服务器,并且回传信息需要封装成XML格式。所以解析XML以及封装XML是接入程序所必须要完成的公共部分程序。也是微信第三方平台快速开发框架所要实现的最基本的内容。
4.3核心代码实现
基本核心内容可分为特定XML解析入口及XML封装出口:
①根据微信公众平台官方给出的接口文档,接收XML入口接收到的XML数据有7种类型,文本消息、图片信息、语音消息、视频消息、小视频消息、地理位置消息、链接消息。根据传来的不同数据类型,做出判断、解析,实现解析入口函数功能:
②微信公众平台回复消息类型有 6种类型,回复文本消息、回复图片消息、回复语音消息、回复视频消息、回复音乐消息、回复图文消息,根据需要回复的消息类型选择封装函数封装后直接回传微信公众平台:
5 功能拓展
5.1可实现的功能分析
通过用户发送请求,服务器回复请求处理,可以实现服务器与用户的信息交互,甚至可以发送图文链接,让客户进入某链接,进行更进一步的交互;目前已经实现的并且比较成熟实用的功能有:
①微官网
将自己的移动官方网站接入到微信公众平台中,通过回复链接或者直接在栏目上转跳的形式让客户进入移动官方网站浏览自己的官网信息。
②自动回复
自行定义回复信息,并且定义未命中的
回复信息,达到智能查询、智能聊天的功能。
③请求数据统计
对客户的请求、操作请求进行统计分析,以便将微信公众平台的运营情况进行调整和优化。
5.2微信公众平台服务号拓展功能分析
除了基础的消息的接收与回复,微信公众平台还陆续提供了许多其他实用的数据接口,给开发者们调用,来开发更多的实用功能,目前几个比较常用的数据接口有:
①微信连WIFI接口
客户到店面连接WIFI时,打开WIFI默认页面让客户授权打开微信,让客户自动关注微信平台然后授权连接上WIFI,以此做WIFI营销吸粉以及WIFI数据统计。
②摇一摇周边接口
通过设备绑定,让在店面设备1KM附近的用户优先摇出预先制作的自定义页面,达到关注、送红包以及其它事件交互的目的。
③微信卡卷接口
微信卡卷用于电商最常见的发放优惠券或者代金券活动,开发者通过调用微信卡券接口发放卡券,用户通过页面或者二维码领取卡券后会出现在自己的卡包里,上门消费时出示卡券并进行核销。
④微小店、微门店接口
微小店是微信自己开发的微信公众平台功能,认证的公众账号可以使用微小店功能,实现微信开网店的功能,开发者可以对接微小店的接口,在第三方平台上对接商品管理、订单管理。微门店是对自己门店的展示,对接微门店接口可以实现连锁店的录入和门店信息的查询功能。
⑤设备接入功能
一些蓝牙设备可以通过微信接口调用,来丰富公众平台的可用性,如对接运动手环功能,做一些有互动的运动活动。
6 第三方平台二次开发
对于注重效率的企业微信开发项目,有很多团队会选择采用购买已有的系统原型商业授权,然后让自己的团队在原型的基础上二次开发,实现自己的定制功能的方式去缩短开发周期。对于市面上已有的系统原型,实现的功能其实和上面介绍的功能大同小异,开发者只需要了解清楚关键流程的调用方式,就可以很快的研究清楚原型,并再原有基础上进行二次开发。
7 结束语
开发接入微信公众平台功能的项目上,本文介绍的模式方法可以把最底层的交互全部封装起来,开发者不再需要考虑与微信服务器交互的问题,可以专心开发平台上的功能,大幅度提上开发效率。对于使用第三方平台二次开发的项目组也可借鉴本文介绍的流程进行学习研究,可以快速的掌握第三方平台程序的交互过程,并平顺的衔接进行二次开发。
[1] 易伟.微信公众平台搭建与开发揭秘(第二版)[M].北京:机械工业出版社,2015.
[2] 徐云.php语言介绍[EB/OL].http://abc.wm23.com/xuyun90/ 181283.html,2015-10-05.
[3] 柳峰.微信公众平台应用开发:方法、技巧与案例[M].北京:机械工业出版社,2014.
[4] 刘捷.微信公众平台企业应用开发实战[M].北京:电子工业出版社,2015.
[5] 陈伟.微信商城开发实战[M].北京:电子工业出版社,2015.
Build a framework of the rapid development of WeChat public platform
With the popularity of WeChat , WeChat public platform into the market, more and more enterprises, businesses need to make their own WeChat public platform, WeChat public platform for the third party access development. How to develop and save the manpower cost to develop the special function that they need is the most concern of the small and medium-sized enterprise. PHP is currently one of the most popular WeChat public platform third party access program development language. This paper describes how to build a framework for rapid deployment of PHP framework development and deployment of access to WeChat public accounts, developers only need to focus on the follow-up of special features, you can save a lot of duplication of research, writing information exchange.
WeChat public platform;WeChat two development;WeChat fast development
Q813.11
A
1008-1151(2015)10-0134-04
2015-09-10
梁广浩(1986-),男,广西南宁人,广西南宁一伙人网络科技有限公司技术部经理,从事网络建站、APP建设及微信建设工作。