mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-10-21 11:07:37 +08:00
#1037 修复通讯录变更事件ExtAttr解析报错,并补充Address属性
* 新增跳转型会员卡,用户提交资料的信息参数解析 * 修复通讯录变更事件ExtAttr解析报错,并补充Address属性
This commit is contained in:
@@ -8,6 +8,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamImplicit;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
@@ -247,6 +248,13 @@ public class WxCpXmlMessage implements Serializable {
|
||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||
private String telephone;
|
||||
|
||||
/**
|
||||
* 地址.
|
||||
*/
|
||||
@XStreamAlias("Address")
|
||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||
private String address;
|
||||
|
||||
/**
|
||||
* 扩展属性.
|
||||
*/
|
||||
@@ -327,17 +335,20 @@ public class WxCpXmlMessage implements Serializable {
|
||||
*/
|
||||
@XStreamAlias("TotalCount")
|
||||
private Integer totalCount;
|
||||
|
||||
/**
|
||||
* 过滤.
|
||||
* (过滤是指特定地区、性别的过滤、用户设置拒收的过滤,用户接收已超4条的过滤)后,准备发送的粉丝数,原则上,filterCount = sentCount + errorCount
|
||||
*/
|
||||
@XStreamAlias("FilterCount")
|
||||
private Integer filterCount;
|
||||
|
||||
/**
|
||||
* 发送成功的粉丝数.
|
||||
*/
|
||||
@XStreamAlias("SentCount")
|
||||
private Integer sentCount;
|
||||
|
||||
/**
|
||||
* 发送失败的粉丝数.
|
||||
*/
|
||||
@@ -411,9 +422,11 @@ public class WxCpXmlMessage implements Serializable {
|
||||
|
||||
@Data
|
||||
public static class ExtAttr {
|
||||
@XStreamAlias("Item")
|
||||
|
||||
@XStreamImplicit(itemFieldName = "Item")
|
||||
protected final List<Item> items = new ArrayList<>();
|
||||
|
||||
@XStreamAlias("Item")
|
||||
@Data
|
||||
public static class Item {
|
||||
@XStreamAlias("Name")
|
||||
|
@@ -117,4 +117,36 @@ public class WxCpXmlMessageTest {
|
||||
assertEquals(wxMessage.getSendPicsInfo().getPicList().get(0).getPicMd5Sum(), "aef52ae501537e552725c5d7f99c1741");
|
||||
assertEquals(wxMessage.getSendPicsInfo().getPicList().get(1).getPicMd5Sum(), "c4564632a4fab91378c39bea6aad6f9e");
|
||||
}
|
||||
|
||||
public void testExtAttr() {
|
||||
|
||||
String xml = "<xml>" +
|
||||
" <ToUserName><![CDATA[w56c9fe3d50ad1ea2]]></ToUserName>" +
|
||||
" <FromUserName><![CDATA[sys]]></FromUserName>" +
|
||||
" <CreateTime>1557241961</CreateTime>" +
|
||||
" <MsgType><![CDATA[event]]></MsgType>" +
|
||||
" <Event><![CDATA[change_contact]]></Event>" +
|
||||
" <ChangeType><![CDATA[update_user]]></ChangeType>" +
|
||||
" <UserID><![CDATA[zhangsan]]></UserID>" +
|
||||
" <ExtAttr>" +
|
||||
" <Item><Name><![CDATA[爱好]]></Name><Value><![CDATA[111]]></Value><Text><Value><![CDATA[111]]></Value></Text></Item>" +
|
||||
" <Item><Name><![CDATA[入职时间]]></Name><Value><![CDATA[11111]]></Value><Text><Value><![CDATA[11111]]></Value></Text></Item>" +
|
||||
" <Item><Name><![CDATA[城市]]></Name><Value><![CDATA[11111]]></Value><Text><Value><![CDATA[11111]]></Value></Text></Item>" +
|
||||
" </ExtAttr>" +
|
||||
" <Address><![CDATA[11111]]></Address>" +
|
||||
"</xml>";
|
||||
WxCpXmlMessage wxMessage = WxCpXmlMessage.fromXml(xml);
|
||||
assertEquals(wxMessage.getToUserName(), "w56c9fe3d50ad1ea2");
|
||||
assertEquals(wxMessage.getFromUserName(), "sys");
|
||||
assertEquals(wxMessage.getCreateTime(), new Long(1557241961));
|
||||
assertEquals(wxMessage.getMsgType(), WxConsts.XmlMsgType.EVENT);
|
||||
assertEquals(wxMessage.getEvent(), "change_contact");
|
||||
assertEquals(wxMessage.getChangeType(), "update_user");
|
||||
assertEquals(wxMessage.getUserId(), "zhangsan");
|
||||
assertNotNull(wxMessage.getExtAttrs());
|
||||
assertNotNull(wxMessage.getExtAttrs().getItems());
|
||||
assertEquals(wxMessage.getExtAttrs().getItems().size(), 3);
|
||||
assertEquals(wxMessage.getExtAttrs().getItems().get(0).getName(), "爱好");
|
||||
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user