|
本帖最后由 大苏-3区 于 2016-8-17 00:32 编辑
我在开发微信智能硬件功能时候,遇到weixin-java-mp-1.1.4.jar 中的 WxMpXmlMessage 类中缺少了对下面微信消息元素 <DeviceType> ,<DeviceID>,SessionID>,<OpenID>的封装
- <xml>
- <ToUserName><![CDATA[%s]]></ToUserName>
- <FromUserName><![CDATA[%s]]></FromUserName>
- <CreateTime>%u</CreateTime>
- <MsgType><![CDATA[%s]]></MsgType>
- <DeviceType><![CDATA[%s]]></DeviceType>
- <DeviceID><![CDATA[%s]]></DeviceID>
- <Content><![CDATA[%s]]></Content>
- <SessionID>%lu</SessionID>
- <MsgID>%lu</MsgID>
- <OpenID><![CDATA[%s]]></OpenID>
- </xml>
复制代码 请问除了重写WxMpXmlMessage 之外的有没有其它更简便的方法,在原有消息路由处理环节,得到上述四个标记内的内容? 如下
- // 拦截内容为test的消息
- private void addTestRouter() {
- WxMpMessageHandler handler = new WxMpMessageHandler() {
- public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService wxMpService, WxSessionManager sessionManager) throws WxErrorException {
- System.out.println("响应test指令********************");
- WxMpXmlOutTextMessage m = WxMpXmlOutMessage.TEXT().content("成功收到测试指令").fromUser(wxMessage.getToUserName()).toUser(wxMessage.getFromUserName()).build();
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //////======>>>>>想在这里获得<DeviceType> ,<DeviceID>,SessionID>,<OpenID>四个值<<<<<====
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- return m;
- }
- };
- wxMpMessageRouter.rule().async(false).content("test").handler(handler).end();
-
- }
复制代码 请高手赐教,谢谢!
|
|