3.1 启用公众平台开发模式
公众平台提供了编辑模式和开发模式,两种模式互斥,不能同时开启,但可以随时切换。
进入“开发者中心”,可以看到配置项和接口报警两个选项卡,如图3-1所示。在配置项中可以看到开发者ID、服务器配置、开发者工具和接口权限表。在接口报警中可以扫描二维码加入微信群,用来接收报警通知。
图3-1
如果当前服务器配置为未启用状态,表示当前模式为编辑模式,需要点击“启用”按钮。点击后会弹出确认对话框,点击确认后即可开启开发模式,如图3-2所示。
图3-2
本节主要介绍开发模式的启用和网址接入。
3.1.1 申请网址接入
成为公众平台开发者之前需要做一些准备工作。
1.公网服务器环境
首先要保证服务器处于公网环境,使微信的服务器能够访问得到。在个人电脑上部署的服务器一般通过127.0.0.1或localhost访问,而127.0.0.1是回送地址(Loopback Address),只能在本地机器上使用。常见的公网服务器可以通过购买虚拟主机、使用SAE或BAE等云服务、利用花生壳动态解析等方式获得。
2.Token验证程序
在开启开发模式的过程中需要填写URL和Token,其中URL是开发者用来接收微信服务器数据的接口URL。Token可由开发者任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。这部分会在第4章详细说明。
依次单击公众平台的“开发者中心”→“配置项”,进入配置项页面。单击“填写服务器配置”,填写URL和Token。如果验证成功,接入即可生效,从而成为开发者。消息加解密方式可以选择明文模式,如图3-3所示。
图3-3
3.1.2 数据交换方式
网址接入成功后,开发者可立即获得消息接口权限,而消息接口为开发者提供了与用户进行消息交互的功能。当普通微信用户向公众账号发送消息时,微信服务器会将POST消息的XML数据包发送到开发者填写的URL上。开发者的URL接收到XML数据后,通常会解析XML、区分消息类型,并进行相应处理,把要回复的内容拼装成XML返回给微信服务器。微信服务器再将消息回复给微信用户。
图3-4所示为微信用户向公众平台发送消息并获得回复的数据交换过程。
图3-4
①微信用户发消息到微信服务器。
②微信服务器将消息进行预处理,区分出消息类型,包括文本消息、图片消息、语音消息、视频消息、地理位置消息和链接消息。如果公众账号有语音识别接口权限并开启了语音识别功能,就在语音消息中增加一个语音识别结果的字段。微信服务器将消息封装为XML数据后,以POST的方式提交给开发服务器。微信服务器在5秒内收不到响应会断掉连接,并重新发起请求,总共重试3次。
③开发服务器接收到微信服务器提交的数据,根据开发者的需要进行处理。如需回复消息给用户,就将回复消息封装为XML数据,返回给微信服务器。现在支持回复文本消息、图片消息、语音消息、视频消息、音乐消息、图文消息。如果不需要回复,那么可以直接回复空串,微信服务器不会对此做任何处理,并且不会发起重试。
④微信服务器接收到开发服务器提交的数据后返回给微信用户。
3.1.3 接口列表
成为开发者后会获得公众平台的接口权限,订阅号只能使用普通消息接口,通过认证的订阅号还可以使用自定义菜单接口,而通过认证的服务号可以获得几乎所有接口权限。
图3-5所示为接口权限表示例。
图3-5
服务按类目分为3类:
- 对话服务 即消息和用户服务,包括接收用户消息、发送消息、自定义菜单、推广支持和用户管理等。
- 功能服务 包括智能接口、多客服、微信支付、微信小店、微信卡包、设备功能等。
- 网页服务 包括网页账号(网页授权)、微信JS-SDK等,其中微信JS-SDK支持分享、图像、音频、智能、设备信息、地理位置、界面操作、二维码、微信小店、微信卡券和微信支付等。