续-微信IOT开发01篇
上篇中提到微信IOT开发的所有流程,从此篇文章开始我们来正式进行微信IOT开发。
首先来看看我们需要哪些东西
①认证的微信公众号
②一个云服务器(阿里云、腾讯云、华为云。。。。)
③支持微信配网的IOT设备
微信开发首先是离不开微信公众号的使用(毕竟是在微信平台上进行物联的嘛),通过微信官网地址进入到微信官网 https://weixin.qq.com/选择公众平台进行微信公众号的注册;注意个人邮箱注册的微信公众号是没多大用的(许多接口没有权限调用,最多只能使用编辑模式现在编辑模式的自定义菜单类型还有限制),要选用公司信息注册,注册完成后就能够扫码登录公众号后台了。
一般没有工程师的公司可以选用编辑模式进行信息群发和自定义菜单的编辑使用(当然一般会注册都是有开发人员的),选择开发模式后就是进行公众号和后台服务的检验了通过菜单“开发——基本配置”进行公众号(AppSecret)的开启和ip白名单的设置(白名单为服务器的ip地址可加多个开发时需要将开发机器的ip地址也加上去,也就是你开发服务电脑的ip)、服务器配置(包含服务器URL、token令牌、加密方式可选明文),注意微信自对微信安全方面升级后就强制需要使用https了所以你需要有自己的域名和证书。若是没有云服务器的同学可以选用新浪云或是使用花生壳进行内网穿透。
公众号开发这块这里就不细讲了,网络上有许多大佬教程都还挺OK的可以去搜索下面主要讲的是后台服务在和公众号对接完成后使用jsapi进行对接部分。
首先公众号这边需要使用微信网页授权接口,授权的URL地址就是公众号要调用服务器网页的地址,接着就是服务这边通过对微信请求的拦截处理通过处理找到相应的处理类进行微信网页授权登录后参数的解析(网页授权需要参数APPID、SECRET);解析后需要获得的参数(timestamp、noncestr、ticket、appkey、openId)其中ticket是微信jsapi访问接口凭证需要接口获取和响应的刷新机制处理。调用网页jsapi的页面需加入<script src="https://res2.wx.qq.com/open/js/jweixin-1.4.0.js"></script>库必须为https库之前使用了http库引用结果微信测试号中安卓、苹果可以调用,但正式版公众号中苹果不可以调用、安卓可以(详解笔者篇——微信采坑博文)。网页中需要进行如下处理:
str = "jsapi_ticket=" + ticket + "&noncestr=" + noncestr + "×tamp="+ timestamp + "&url=" + location.href;
sha1 = CryptoJS.SHA1(str);
wx.config({
beta : true,
debug : false,
appId : appId,
timestamp : timestamp,
nonceStr : noncestr,
signature : sha1.toString(),
jsApiList : [ 'checkJsApi','configWXDeviceWiFi', 'openWXDeviceLib', 'startScanWXDevice', 'onScanWXDeviceResult' ]
});
str中的参数为处理类跳转网页URL中拼接参数获取,signature为授权参数。jsapiList为调用接口。
以上都OK的话可以进行下一步操作。通过网页上的button按钮来触发jsapi接口的调用,'configWXDeviceWiFi'——'openWXDeviceLib'——'startScanWXDevice'——'onScanWXDeviceResult'其中configWXDeviceWIFI接口作为最外层调用 document.querySelector('#scanQRCode0').onclick = function() {}其它三个函数放入内部进行逻辑调用。若是配置'configWXDeviceWiFi'成功则调用openWXDeviceLib打开设备库函数嗲用(其中函数内的参数必须有connType、brandUserName字段参数原因如之前博文中提过)、再调用startScanWXDevice函数成功之后接着就是onScanWXDeviceResult函数的调用。一系列都OK的话可以在'onScanWXDeviceResult'函数的成功回调中进行用户和微信设备的MacID的绑定;(使用什么账号类型可以自己决定:用户的unionID作为账号或是电话号码作为账号)其中unionID的获取需要公众号和微信小程序在同一开放平台下具体获取方式这里也不多细讲了;到这里微信公众号这一块就讲完了。
需要注意的地方:
⑴网页授权
⑵用户unionID的获取(对需要的同学)
⑶ signature及ticket的检验与获取
⑷'onScanWXDeviceResult'接口的调用
写的水文全当自己开发记录,有不足之处还望指出。

浙公网安备 33010602011771号