设备功能

在“设备功能”处添加产品,接入方案选择“平台基础接入方案”

添加成功后,就有100个配额

服务器配置


URL是后台回调接口地址,Token是为了验证回调信息的合法性的,EncodingAESKey随机生成即可

服务器配置回调校验开发

配置校验回调是以GET方式回调的,同消息事件回调是一个地址,只是请求方式不同。
如果验证成功,则响应回调请求的echostr值,否则啥也不返回。
代码示例:

/*** 微信硬件平台配置校验** @param appId* @param request* @param response*/
@RequestMapping(value = "/hardware/{appId}", method = RequestMethod.GET)
@ApiOperation(value="微信硬件平台配置校验回调", notes="微信硬件平台配置校验回调")
public void receiveIotMsg(@PathVariable("appId") String appId, HttpServletRequest request, HttpServletResponse response) {logger.info("收到微信硬件消息回调GET:{}", appId);// 微信加密签名String signature = request.getParameter("signature");// 时间戳String timestamp = request.getParameter("timestamp");// 随机数String nonce = request.getParameter("nonce");// 随机字符串String echostr = request.getParameter("echostr");Map<String, String[]> map = request.getParameterMap();for (Map.Entry<String, String[]> entry : map.entrySet()) {logger.info("{}={}", entry.getKey(), entry.getValue() != null ? entry.getValue()[0] : "");}// 获取公众号信息SingleParamRequest<String> singleParamRequest = new SingleParamRequest<>();singleParamRequest.setData(appId);ServiceJsonBean<OfficialAccount> officialAccountJsonBean = weiXinOfficialAccountService.getOfficialAccountByAppId(singleParamRequest);String iotToken = "";if (officialAccountJsonBean.getCode() == ErrorCode.SUCCESS.getCode() && officialAccountJsonBean.getData() != null) {iotToken = officialAccountJsonBean.getData().getIotToken();}String curSign = SecurityUtils.encryptSHA1(iotToken, timestamp, nonce);if (StringUtils.isEquals(signature, curSign) && StringUtils.isNotEmpty(echostr)) {logger.info("验证成功!");try {response.getWriter().write(echostr);} catch (IOException e) {logger.error("response输出异常", e);}}
}

设备消息、事件回调开发

消息、事件回调跟校验回调是同一个接口地址,但是请求方式为POST,Content-Type: application/json
消息、事件会以json格式的传输到后台

/**
* 微信硬件平台消息回调接口
*
* @param appId
* @return
*/
@RequestMapping(value = "/hardware/{appId}", method = {RequestMethod.POST}, headers = "Accept=application/json")
@ResponseBody
@ApiOperation(value="微信硬件平台消息回调", notes="微信硬件平台消息回调")
public WebJsonBean receiveIotMsg(@PathVariable("appId") String appId, @RequestBody DeviceBindMsg deviceBindMsg) {logger.info("收到微信硬件消息回调POST:{}", JSONObject.toJSONString(deviceBindMsg));HardwareMsgEvent hardwareMsgEvent = new HardwareMsgEvent(applicationContext, deviceBindMsg, appId);applicationContext.publishEvent(hardwareMsgEvent);return new WebJsonBean(ErrorCode.SUCCESS);
}

微信公众号硬件功能开发相关推荐

  1. 微信 SHA1 签名_微信公众号自动回复功能开发

    微信公众号自动回复功能开发 本篇主要讲解 微信公众号自动回复功能开发,让我们自己去托管公众号回复的功能,这样可以更加灵活的根据公众号收到的信息来制定特定的回复信息,一起来了解吧! 1.注册公众号 如果 ...

  2. 微信公众号分享功能开发体验

    公众号提供了一个分享功能,通过jsapi来访问,主要作用是修改特定页面下点击微信右上角[...]选择[转发给朋友][分享到朋友圈]以及[分享到手机QQ][分享到QQ空间]的内容. 分享到微信的操作步骤 ...

  3. 微信公众号二次开发实现自动回复文字,图片,图文功能

    微信公众号二次开发实现自动回复文字,图片,图文功能 自动回复文字或图片: 表单里需要有关键字和内容.但就这两个字段也需要在两个数据表里分别显示,因为要提前准备字段内容里有可能是图片,图文等等类型.所以 ...

  4. 微信公众号Java开发-笔记01【微信公众号介绍、开发环境搭建】

    学习网址:哔哩哔哩网站 微信公众号开发-Java版 微信公众号Java开发-笔记01[微信公众号介绍.开发环境搭建] 微信公众号Java开发-笔记02[] 微信公众号Java开发-笔记03[] 微信公 ...

  5. 微信公众号后台服务开发(一):自动消息回复

    微信公众号后台服务开发 简述 微信平台提供的自动回复机制 后台服务开发 配置指定服务器 消息自动回复功能开发 简述 使用Java SpringBoot框架搭建微信工作号后台实现自定义逻辑自动回复 先注 ...

  6. 微信公众号的简单开发

    这里是修真院前端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析前端知识/技能. 今天给大家分享一下,修真院官网 ...

  7. 微信公众号三方平台开发【代微信公众号接收消息事件并响应】

    今天要讲的是代微信公众号接收消息并进行回复,这里要用到的就是咱们之前在微信公众号三方平台开发[帐号注册.平台创建]里写到的"公众号消息与事件接收URL",在接收的目标方法里,我们首 ...

  8. 微信公众号 模板消息开发

    微信公众号 模板消息开发 1. 添加模板 1)登录公众号 2)添加插件 登录之后,在左边栏的功能里面点击[添加功能插件]->[模板消息] 进入后,然后开始审核,大概要1-3天时间.下面为我们正在 ...

  9. 如何免费开通微信公众号留言功能(上)

    2018.3月后, 腾讯关闭了微信公众号的留言功能. 本人是十几年的老码农,最近用微信小程序, 给朋友开发了微信公众号留言功能,结果用不上了. 后来强化了一下, 出品[新给作者留言]微信小程序,实现微 ...

最新文章

  1. JavaScript replace() 方法
  2. 路由在express中的实践
  3. python selenium爬虫豆瓣_Python爬虫:学习selenium的正确方式
  4. 迭代最近点(Iterative Closest Point, ICP)算法及matlab实现
  5. 【Scratch】青少年蓝桥杯_每日一题_4.19_考试成绩
  6. 【MM】 基于收货的发票校验
  7. Synergy工具 共享Windows系统电脑Linux系统电脑 鼠标键盘
  8. java 常用类库_JAVA(三)JAVA常用类库/JAVA IO
  9. 明明的随机数(洛谷-P1059)
  10. 记,NSProxy需要实现哪些方法?
  11. asp fso的神奇功能
  12. 原生js的dom操作
  13. Linux | 文件系统 | Ext2fs
  14. 数字/模拟信号中带宽的含义
  15. 常用的公共数据集(一)
  16. SqlServer2008操作总结
  17. Java初学笔记30-【MiniQQ聊天部分代码】
  18. 新加坡区块链ICO公司是如何注册新加坡公司的
  19. python发送邮件DEMO
  20. 我国首次评选30名国医大师 享省部级劳模待遇

热门文章

  1. l5-repository的使用
  2. 金蝶K3系统sql溢出错误处置记录
  3. 依次提示用户输入 3 个整数,脚本根据数字大小依次排序输出 3 个数字
  4. Spring Boot-2-核心注解
  5. 大工13秋《专业英语(计算机英语)》在线测试3,大工18春《专业英语(计算机英语)》在线测试3【参考答案】...
  6. python拍照搜题_中国大学慕课mooc用Python玩转数据期末考试搜题公众号答案
  7. Flume 监控之测试 Ganglia
  8. java疯狂龙卷风游戏_疯狂龙卷风游戏手机版下载
  9. Cardano(ADA)的共识算法Ouroboros
  10. 不确定性语义分割论文、代码汇总