微信硬件平台方案
假如我们要有一个WiFi硬件产品,已经有与自己的服务器通讯的私有协议,现在要接入到微信公众号平台,那将如何选择对接方案呢?
《微信硬件平台》 有两大类接入方案:微信硬件云标准接入方案
和 平台基础接入方案
。
调试工具
注意:此处已认为你已对接完成微信公众平台,比如已经能接收微信平台的文本消息等,并且已经开启“设备功能”。
名称约定
设备:这里指WiFi设备,跟微信没有近场通讯的功能。
硬件云:我们的服务器
微信云:微信公众号平台的服务器,推送的是xml格式消息
微信IoT云(微信硬件云):微信硬件平台的服务器,推送json格式消息
以下 “我们的服务器” 统一称为 “服务器”
一、平台基础接入方案
摘录微信:设备不对接微信硬件云,设备消息将以xml格式发送到开发者在
公众平台/基本配置
填写的服务器地址。可以使用连接、消息接收等基础能力,但将不具备微信硬件平台制定的产品标准能力。
这种方案相对简单,微信云
将消息以普通的消息(如文本消息,xml格式)一样推送到服务器。
注意:不需要在 设备功能-设置
配置服务器URL。
我们使用 调试工具 的来模拟 微信云
推送过来的消息,选择 接口类型:使用硬件接入消息接口调试
,里面有4个接口:
设备向后台发送数据
这个接口是指:设备通过微信和服务器通信,并且接收服务器的响应。指的应该是
近场通讯
,忽略。请求绑定消息
这应该是过期的接口,在文档上没找到,忽略。
绑定、解绑消息
这个接口非常重要,用户扫码绑定设备或者解除绑定,
微信云
都会推送到服务器,服务器可以进行关系的绑定和解除。WiFi设备连接状态订阅、退订消息
这个是状态(如在线、离线),用户在微信上需要知道设备的状态,所以
微信云
需要向服务器订阅状态,微信云
推送订阅消息时,服务器需响应设备的状态数据,当设备的状态改变时,需主动将状态数据发送给微信云
。
其中,设备向后台发送数据
的消息类型是device_text
,其他三个是 device_event
。如绑定事件消息:
1 | <xml> |
总结:该方案利用绑定、解绑事件实现了用户和设备的绑定,应用场景即可根据需求开展。
举例:我的设备是一块 微信相框
,在公众号上发送一张照片,微信云
推送到服务器,服务器通讯绑定关系,将照片通过自己定义的通讯协议推送给微信相框
,微信相框
就可以把照片显示出来了。
二、微信硬件云标准接入方案
摘录微信:若选择该方案,设备消息将以
Json
格式发送到开发者在设备功能/设置
填写的服务器地址
该方案的产品可拥有微信硬件平台制定的产品标准能力,实现设备互联与数据互通。
设备直连微信硬件云通道
摘录微信:设备可通过微信硬件平台提供的直连SDK,直接与微信硬件云对接
这部分是硬件直接连接微信云,不需要自己搭建服务器了,不是我们要对接的部分,省略。
厂商云连接微信硬件云通道
摘录微信:设备连接厂商服务器后,可通过设备
openAPI
与微信硬件云对接。
这种方案用的比较多,大部分产商都是用此方案。该方案要在 设备功能/设置
配置服务器URL,这个URL一样需要验证,但是接收的数据将不是 xml
格式,而是 json
格式,所以这个URL最好和 公众平台/基本配置
的不一样。
调试工具 没有测试 微信IoT云
推送事件的功能,只有测试 服务器
通知 微信IoT云
的接口。
不过没关系,我们先配置好服务器URL,进入”设备功能”,点击”添加产品” 添加一个产品,通过 调试工具 生成一个设备ID二维码,用微信扫描,直接绑定设备,就能收到推送事件。
扫码绑定
通知消息格式(解绑相同):
1 | { |
接收到事件之后,需要异步处理,这一点和 平台基础接入方案
的阻塞处理不同。假如收到绑定事件,要立刻响应结果(内容不重要),服务器在处理完绑定事件之后,需要发送一个POST请求到 微信IoT云
,告诉它我们服务器处理的结果。
这里只接受绑定和解绑的事件,功能其实和 平台基础接入方案
一样。
另外这个方案主要是使用 《微信硬件平台设备端OpenAPI》 ,这个东西的作用就是:微信IoT云
和 设备
通信,而通信的中间人就是我们在 设备功能/设置
填入的URL 服务器
。
通信都是异步方式,类型分为三类:
微信IoT云
向服务器查询设备消息微信IoT云
向服务器设置设备消息- 服务器通知
微信IoT云
消息
方案选择
如果不需要用到 OpenAPI
的话,其实厂商云连接微信硬件云通道
和 平台基础接入方案
都可以,只需要绑定关系即可,厂商云连接微信硬件云通道
的功能更加强大。