List<坑>
1.消息xml内不能有空格
2.不不不,不是文档上说的,开放平台的文档上说要加密!!
下面放源码:
if ("CLICK".equals(data.optString("Event")) && DSHUtils.isNotEmpty(data.optString("EventKey"))) {
String eventKey = data.optString("EventKey");// rselemenu_3_4
String toUserName = data.getString("ToUserName"); // 公众号原始ID
String openid = data.getString("FromUserName"); // 发送方帐号openId
if (eventKey.equals("rselemenu_3_4")) {
StringBuffer str = new StringBuffer();
str.append("<xml>");
str.append("<ToUserName><![CDATA[" + openid + "]]></ToUserName>");
str.append("<FromUserName><![CDATA[" + toUserName + "]]></FromUserName>");
str.append("<CreateTime>" + System.currentTimeMillis() / 1000 + "</CreateTime>");
str.append("<MsgType><![CDATA[" + "text" + "]]></MsgType>");
str.append("<Content><![CDATA[" + "测试文本消息 By Fenny Jia" + "]]></Content>");
str.append("</xml>");
String msg = pc.encryptMsg(str.toString(), String.valueOf(System.currentTimeMillis() / 1000), nonce);
return msg;
}
}
其中pc.encryptMsg加密的方法是用的微信的源码
WXBizMsgCrypt pc = new WXBizMsgCrypt(token, encodingAesKey, appId);