mirror of
				https://gitee.com/binary/weixin-java-tools.git
				synced 2025-10-31 18:46:10 +08:00 
			
		
		
		
	#305 修复微信变态的拍照或发图事件的消息格式的处理
This commit is contained in:
		| @ -164,6 +164,8 @@ public class WxCpXmlMessage implements Serializable { | |||||||
|   private SendLocationInfo sendLocationInfo = new SendLocationInfo(); |   private SendLocationInfo sendLocationInfo = new SendLocationInfo(); | ||||||
|  |  | ||||||
|   protected static WxCpXmlMessage fromXml(String xml) { |   protected static WxCpXmlMessage fromXml(String xml) { | ||||||
|  |     //修改微信变态的消息内容格式,方便解析 | ||||||
|  |     xml = xml.replace("</PicList><PicList>", ""); | ||||||
|     return XStreamTransformer.fromXml(WxCpXmlMessage.class, xml); |     return XStreamTransformer.fromXml(WxCpXmlMessage.class, xml); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | |||||||
| @ -1,8 +1,9 @@ | |||||||
| package me.chanjar.weixin.cp.bean; | package me.chanjar.weixin.cp.bean; | ||||||
|  |  | ||||||
| import me.chanjar.weixin.common.api.WxConsts; | import me.chanjar.weixin.common.api.WxConsts; | ||||||
| import org.testng.Assert; | import org.testng.annotations.*; | ||||||
| import org.testng.annotations.Test; |  | ||||||
|  | import static org.testng.Assert.*; | ||||||
|  |  | ||||||
| @Test | @Test | ||||||
| public class WxCpXmlMessageTest { | public class WxCpXmlMessageTest { | ||||||
| @ -54,38 +55,66 @@ public class WxCpXmlMessageTest { | |||||||
|       + "</SendLocationInfo>" |       + "</SendLocationInfo>" | ||||||
|       + "</xml>"; |       + "</xml>"; | ||||||
|     WxCpXmlMessage wxMessage = WxCpXmlMessage.fromXml(xml); |     WxCpXmlMessage wxMessage = WxCpXmlMessage.fromXml(xml); | ||||||
|     Assert.assertEquals(wxMessage.getToUserName(), "toUser"); |     assertEquals(wxMessage.getToUserName(), "toUser"); | ||||||
|     Assert.assertEquals(wxMessage.getFromUserName(), "fromUser"); |     assertEquals(wxMessage.getFromUserName(), "fromUser"); | ||||||
|     Assert.assertEquals(wxMessage.getCreateTime(), new Long(1348831860l)); |     assertEquals(wxMessage.getCreateTime(), new Long(1348831860l)); | ||||||
|     Assert.assertEquals(wxMessage.getMsgType(), WxConsts.XML_MSG_TEXT); |     assertEquals(wxMessage.getMsgType(), WxConsts.XML_MSG_TEXT); | ||||||
|     Assert.assertEquals(wxMessage.getContent(), "this is a test"); |     assertEquals(wxMessage.getContent(), "this is a test"); | ||||||
|     Assert.assertEquals(wxMessage.getMsgId(), new Long(1234567890123456l)); |     assertEquals(wxMessage.getMsgId(), new Long(1234567890123456l)); | ||||||
|     Assert.assertEquals(wxMessage.getPicUrl(), "this is a url"); |     assertEquals(wxMessage.getPicUrl(), "this is a url"); | ||||||
|     Assert.assertEquals(wxMessage.getMediaId(), "media_id"); |     assertEquals(wxMessage.getMediaId(), "media_id"); | ||||||
|     Assert.assertEquals(wxMessage.getFormat(), "Format"); |     assertEquals(wxMessage.getFormat(), "Format"); | ||||||
|     Assert.assertEquals(wxMessage.getThumbMediaId(), "thumb_media_id"); |     assertEquals(wxMessage.getThumbMediaId(), "thumb_media_id"); | ||||||
|     Assert.assertEquals(wxMessage.getLocationX(), new Double(23.134521d)); |     assertEquals(wxMessage.getLocationX(), 23.134521d); | ||||||
|     Assert.assertEquals(wxMessage.getLocationY(), new Double(113.358803d)); |     assertEquals(wxMessage.getLocationY(), 113.358803d); | ||||||
|     Assert.assertEquals(wxMessage.getScale(), new Double(20)); |     assertEquals(wxMessage.getScale(), 20d); | ||||||
|     Assert.assertEquals(wxMessage.getLabel(), "位置信息"); |     assertEquals(wxMessage.getLabel(), "位置信息"); | ||||||
|     Assert.assertEquals(wxMessage.getDescription(), "公众平台官网链接"); |     assertEquals(wxMessage.getDescription(), "公众平台官网链接"); | ||||||
|     Assert.assertEquals(wxMessage.getUrl(), "url"); |     assertEquals(wxMessage.getUrl(), "url"); | ||||||
|     Assert.assertEquals(wxMessage.getTitle(), "公众平台官网链接"); |     assertEquals(wxMessage.getTitle(), "公众平台官网链接"); | ||||||
|     Assert.assertEquals(wxMessage.getEvent(), "subscribe"); |     assertEquals(wxMessage.getEvent(), "subscribe"); | ||||||
|     Assert.assertEquals(wxMessage.getEventKey(), "qrscene_123123"); |     assertEquals(wxMessage.getEventKey(), "qrscene_123123"); | ||||||
|     Assert.assertEquals(wxMessage.getTicket(), "TICKET"); |     assertEquals(wxMessage.getTicket(), "TICKET"); | ||||||
|     Assert.assertEquals(wxMessage.getLatitude(), new Double(23.137466)); |     assertEquals(wxMessage.getLatitude(), 23.137466); | ||||||
|     Assert.assertEquals(wxMessage.getLongitude(), new Double(113.352425)); |     assertEquals(wxMessage.getLongitude(), 113.352425); | ||||||
|     Assert.assertEquals(wxMessage.getPrecision(), new Double(119.385040)); |     assertEquals(wxMessage.getPrecision(), 119.385040); | ||||||
|     Assert.assertEquals(wxMessage.getScanCodeInfo().getScanType(), "qrcode"); |     assertEquals(wxMessage.getScanCodeInfo().getScanType(), "qrcode"); | ||||||
|     Assert.assertEquals(wxMessage.getScanCodeInfo().getScanResult(), "1"); |     assertEquals(wxMessage.getScanCodeInfo().getScanResult(), "1"); | ||||||
|     Assert.assertEquals(wxMessage.getSendPicsInfo().getCount(), new Long(1l)); |     assertEquals(wxMessage.getSendPicsInfo().getCount(), new Long(1l)); | ||||||
|     Assert.assertEquals(wxMessage.getSendPicsInfo().getPicList().get(0).getPicMd5Sum(), "1b5f7c23b5bf75682a53e7b6d163e185"); |     assertEquals(wxMessage.getSendPicsInfo().getPicList().get(0).getPicMd5Sum(), "1b5f7c23b5bf75682a53e7b6d163e185"); | ||||||
|     Assert.assertEquals(wxMessage.getSendLocationInfo().getLocationX(), "23"); |     assertEquals(wxMessage.getSendLocationInfo().getLocationX(), "23"); | ||||||
|     Assert.assertEquals(wxMessage.getSendLocationInfo().getLocationY(), "113"); |     assertEquals(wxMessage.getSendLocationInfo().getLocationY(), "113"); | ||||||
|     Assert.assertEquals(wxMessage.getSendLocationInfo().getScale(), "15"); |     assertEquals(wxMessage.getSendLocationInfo().getScale(), "15"); | ||||||
|     Assert.assertEquals(wxMessage.getSendLocationInfo().getLabel(), " 广州市海珠区客村艺苑路 106号"); |     assertEquals(wxMessage.getSendLocationInfo().getLabel(), " 广州市海珠区客村艺苑路 106号"); | ||||||
|     Assert.assertEquals(wxMessage.getSendLocationInfo().getPoiname(), "wo de poi"); |     assertEquals(wxMessage.getSendLocationInfo().getPoiname(), "wo de poi"); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   public void testSendPicsInfo() { | ||||||
|  |     String xml = "<xml>" + | ||||||
|  |       "<ToUserName><![CDATA[wx45a0972125658be9]]></ToUserName>" + | ||||||
|  |       "<FromUserName><![CDATA[xiaohe]]></FromUserName>" + | ||||||
|  |       "<CreateTime>1502012364</CreateTime>" + | ||||||
|  |       "<MsgType><![CDATA[event]]></MsgType>" + | ||||||
|  |       "<AgentID>1000004</AgentID>" + | ||||||
|  |       "<Event><![CDATA[pic_weixin]]></Event>" + | ||||||
|  |       "<EventKey><![CDATA[faceSimilarity]]></EventKey>" + | ||||||
|  |       "<SendPicsInfo>" + | ||||||
|  |       "<PicList><item><PicMd5Sum><![CDATA[aef52ae501537e552725c5d7f99c1741]]></PicMd5Sum></item></PicList>" + | ||||||
|  |       "<PicList><item><PicMd5Sum><![CDATA[c4564632a4fab91378c39bea6aad6f9e]]></PicMd5Sum></item></PicList>" + | ||||||
|  |       "<Count>2</Count>" + | ||||||
|  |       "</SendPicsInfo>" + | ||||||
|  |       "</xml>"; | ||||||
|  |     WxCpXmlMessage wxMessage = WxCpXmlMessage.fromXml(xml.replace("</PicList><PicList>","")); | ||||||
|  |     assertEquals(wxMessage.getToUserName(), "wx45a0972125658be9"); | ||||||
|  |     assertEquals(wxMessage.getFromUserName(), "xiaohe"); | ||||||
|  |     assertEquals(wxMessage.getCreateTime(), new Long(1502012364L)); | ||||||
|  |     assertEquals(wxMessage.getMsgType(), WxConsts.XML_MSG_EVENT); | ||||||
|  |     assertEquals(wxMessage.getAgentId(), Integer.valueOf(1000004)); | ||||||
|  |     assertEquals(wxMessage.getEvent(), "pic_weixin"); | ||||||
|  |     assertEquals(wxMessage.getEventKey(), "faceSimilarity"); | ||||||
|  |     assertNotNull(wxMessage.getSendPicsInfo()); | ||||||
|  |     assertEquals(wxMessage.getSendPicsInfo().getCount(), new Long(2L)); | ||||||
|  |     assertEquals(wxMessage.getSendPicsInfo().getPicList().get(0).getPicMd5Sum(), "aef52ae501537e552725c5d7f99c1741"); | ||||||
|  |     assertEquals(wxMessage.getSendPicsInfo().getPicList().get(1).getPicMd5Sum(), "c4564632a4fab91378c39bea6aad6f9e"); | ||||||
|  |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -425,6 +425,8 @@ public class WxMpXmlMessage implements Serializable { | |||||||
|   private Integer deviceStatus; |   private Integer deviceStatus; | ||||||
|  |  | ||||||
|   public static WxMpXmlMessage fromXml(String xml) { |   public static WxMpXmlMessage fromXml(String xml) { | ||||||
|  |     //修改微信变态的消息内容格式,方便解析 | ||||||
|  |     xml = xml.replace("</PicList><PicList>", ""); | ||||||
|     return XStreamTransformer.fromXml(WxMpXmlMessage.class, xml); |     return XStreamTransformer.fromXml(WxMpXmlMessage.class, xml); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | |||||||
| @ -1,9 +1,10 @@ | |||||||
| package me.chanjar.weixin.mp.bean.message; | package me.chanjar.weixin.mp.bean.message; | ||||||
|  |  | ||||||
| import me.chanjar.weixin.common.api.WxConsts; | import me.chanjar.weixin.common.api.WxConsts; | ||||||
| import org.testng.*; |  | ||||||
| import org.testng.annotations.*; | import org.testng.annotations.*; | ||||||
|  |  | ||||||
|  | import static org.testng.Assert.*; | ||||||
|  |  | ||||||
| @Test | @Test | ||||||
| public class WxMpXmlMessageTest { | public class WxMpXmlMessageTest { | ||||||
|  |  | ||||||
| @ -54,38 +55,38 @@ public class WxMpXmlMessageTest { | |||||||
|       + "</SendLocationInfo>" |       + "</SendLocationInfo>" | ||||||
|       + "</xml>"; |       + "</xml>"; | ||||||
|     WxMpXmlMessage wxMessage = WxMpXmlMessage.fromXml(xml); |     WxMpXmlMessage wxMessage = WxMpXmlMessage.fromXml(xml); | ||||||
|     Assert.assertEquals(wxMessage.getToUser(), "toUser"); |     assertEquals(wxMessage.getToUser(), "toUser"); | ||||||
|     Assert.assertEquals(wxMessage.getFromUser(), "fromUser"); |     assertEquals(wxMessage.getFromUser(), "fromUser"); | ||||||
|     Assert.assertEquals(wxMessage.getCreateTime(), new Long(1348831860L)); |     assertEquals(wxMessage.getCreateTime(), new Long(1348831860L)); | ||||||
|     Assert.assertEquals(wxMessage.getMsgType(), WxConsts.XML_MSG_TEXT); |     assertEquals(wxMessage.getMsgType(), WxConsts.XML_MSG_TEXT); | ||||||
|     Assert.assertEquals(wxMessage.getContent(), "this is a test"); |     assertEquals(wxMessage.getContent(), "this is a test"); | ||||||
|     Assert.assertEquals(wxMessage.getMsgId(), new Long(1234567890123456L)); |     assertEquals(wxMessage.getMsgId(), new Long(1234567890123456L)); | ||||||
|     Assert.assertEquals(wxMessage.getPicUrl(), "this is a url"); |     assertEquals(wxMessage.getPicUrl(), "this is a url"); | ||||||
|     Assert.assertEquals(wxMessage.getMediaId(), "media_id"); |     assertEquals(wxMessage.getMediaId(), "media_id"); | ||||||
|     Assert.assertEquals(wxMessage.getFormat(), "Format"); |     assertEquals(wxMessage.getFormat(), "Format"); | ||||||
|     Assert.assertEquals(wxMessage.getThumbMediaId(), "thumb_media_id"); |     assertEquals(wxMessage.getThumbMediaId(), "thumb_media_id"); | ||||||
|     Assert.assertEquals(wxMessage.getLocationX(), 23.134521d); |     assertEquals(wxMessage.getLocationX(), 23.134521d); | ||||||
|     Assert.assertEquals(wxMessage.getLocationY(), 113.358803d); |     assertEquals(wxMessage.getLocationY(), 113.358803d); | ||||||
|     Assert.assertEquals(wxMessage.getScale(), 20d); |     assertEquals(wxMessage.getScale(), 20d); | ||||||
|     Assert.assertEquals(wxMessage.getLabel(), "位置信息"); |     assertEquals(wxMessage.getLabel(), "位置信息"); | ||||||
|     Assert.assertEquals(wxMessage.getDescription(), "公众平台官网链接"); |     assertEquals(wxMessage.getDescription(), "公众平台官网链接"); | ||||||
|     Assert.assertEquals(wxMessage.getUrl(), "url"); |     assertEquals(wxMessage.getUrl(), "url"); | ||||||
|     Assert.assertEquals(wxMessage.getTitle(), "公众平台官网链接"); |     assertEquals(wxMessage.getTitle(), "公众平台官网链接"); | ||||||
|     Assert.assertEquals(wxMessage.getEvent(), "subscribe"); |     assertEquals(wxMessage.getEvent(), "subscribe"); | ||||||
|     Assert.assertEquals(wxMessage.getEventKey(), "qrscene_123123"); |     assertEquals(wxMessage.getEventKey(), "qrscene_123123"); | ||||||
|     Assert.assertEquals(wxMessage.getTicket(), "TICKET"); |     assertEquals(wxMessage.getTicket(), "TICKET"); | ||||||
|     Assert.assertEquals(wxMessage.getLatitude(), 23.137466); |     assertEquals(wxMessage.getLatitude(), 23.137466); | ||||||
|     Assert.assertEquals(wxMessage.getLongitude(), 113.352425); |     assertEquals(wxMessage.getLongitude(), 113.352425); | ||||||
|     Assert.assertEquals(wxMessage.getPrecision(), 119.385040); |     assertEquals(wxMessage.getPrecision(), 119.385040); | ||||||
|     Assert.assertEquals(wxMessage.getScanCodeInfo().getScanType(), "qrcode"); |     assertEquals(wxMessage.getScanCodeInfo().getScanType(), "qrcode"); | ||||||
|     Assert.assertEquals(wxMessage.getScanCodeInfo().getScanResult(), "1"); |     assertEquals(wxMessage.getScanCodeInfo().getScanResult(), "1"); | ||||||
|     Assert.assertEquals(wxMessage.getSendPicsInfo().getCount(), new Long(1L)); |     assertEquals(wxMessage.getSendPicsInfo().getCount(), new Long(1L)); | ||||||
|     Assert.assertEquals(wxMessage.getSendPicsInfo().getPicList().get(0).getPicMd5Sum(), "1b5f7c23b5bf75682a53e7b6d163e185"); |     assertEquals(wxMessage.getSendPicsInfo().getPicList().get(0).getPicMd5Sum(), "1b5f7c23b5bf75682a53e7b6d163e185"); | ||||||
|     Assert.assertEquals(wxMessage.getSendLocationInfo().getLocationX(), "23"); |     assertEquals(wxMessage.getSendLocationInfo().getLocationX(), "23"); | ||||||
|     Assert.assertEquals(wxMessage.getSendLocationInfo().getLocationY(), "113"); |     assertEquals(wxMessage.getSendLocationInfo().getLocationY(), "113"); | ||||||
|     Assert.assertEquals(wxMessage.getSendLocationInfo().getScale(), "15"); |     assertEquals(wxMessage.getSendLocationInfo().getScale(), "15"); | ||||||
|     Assert.assertEquals(wxMessage.getSendLocationInfo().getLabel(), " 广州市海珠区客村艺苑路 106号"); |     assertEquals(wxMessage.getSendLocationInfo().getLabel(), " 广州市海珠区客村艺苑路 106号"); | ||||||
|     Assert.assertEquals(wxMessage.getSendLocationInfo().getPoiname(), "wo de poi"); |     assertEquals(wxMessage.getSendLocationInfo().getPoiname(), "wo de poi"); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   public void testFromXml2() { |   public void testFromXml2() { | ||||||
| @ -135,38 +136,38 @@ public class WxMpXmlMessageTest { | |||||||
|       + "</SendLocationInfo>" |       + "</SendLocationInfo>" | ||||||
|       + "</xml>"; |       + "</xml>"; | ||||||
|     WxMpXmlMessage wxMessage = WxMpXmlMessage.fromXml(xml); |     WxMpXmlMessage wxMessage = WxMpXmlMessage.fromXml(xml); | ||||||
|     Assert.assertEquals(wxMessage.getToUser(), "toUser"); |     assertEquals(wxMessage.getToUser(), "toUser"); | ||||||
|     Assert.assertEquals(wxMessage.getFromUser(), "fromUser"); |     assertEquals(wxMessage.getFromUser(), "fromUser"); | ||||||
|     Assert.assertEquals(wxMessage.getCreateTime(), new Long(1348831860L)); |     assertEquals(wxMessage.getCreateTime(), new Long(1348831860L)); | ||||||
|     Assert.assertEquals(wxMessage.getMsgType(), WxConsts.XML_MSG_TEXT); |     assertEquals(wxMessage.getMsgType(), WxConsts.XML_MSG_TEXT); | ||||||
|     Assert.assertEquals(wxMessage.getContent(), "this is a test"); |     assertEquals(wxMessage.getContent(), "this is a test"); | ||||||
|     Assert.assertEquals(wxMessage.getMsgId(), new Long(1234567890123456L)); |     assertEquals(wxMessage.getMsgId(), new Long(1234567890123456L)); | ||||||
|     Assert.assertEquals(wxMessage.getPicUrl(), "this is a url"); |     assertEquals(wxMessage.getPicUrl(), "this is a url"); | ||||||
|     Assert.assertEquals(wxMessage.getMediaId(), "media_id"); |     assertEquals(wxMessage.getMediaId(), "media_id"); | ||||||
|     Assert.assertEquals(wxMessage.getFormat(), "Format"); |     assertEquals(wxMessage.getFormat(), "Format"); | ||||||
|     Assert.assertEquals(wxMessage.getThumbMediaId(), "thumb_media_id"); |     assertEquals(wxMessage.getThumbMediaId(), "thumb_media_id"); | ||||||
|     Assert.assertEquals(wxMessage.getLocationX(), 23.134521d); |     assertEquals(wxMessage.getLocationX(), 23.134521d); | ||||||
|     Assert.assertEquals(wxMessage.getLocationY(), 113.358803d); |     assertEquals(wxMessage.getLocationY(), 113.358803d); | ||||||
|     Assert.assertEquals(wxMessage.getScale(), 20d); |     assertEquals(wxMessage.getScale(), 20d); | ||||||
|     Assert.assertEquals(wxMessage.getLabel(), "位置信息"); |     assertEquals(wxMessage.getLabel(), "位置信息"); | ||||||
|     Assert.assertEquals(wxMessage.getDescription(), "公众平台官网链接"); |     assertEquals(wxMessage.getDescription(), "公众平台官网链接"); | ||||||
|     Assert.assertEquals(wxMessage.getUrl(), "url"); |     assertEquals(wxMessage.getUrl(), "url"); | ||||||
|     Assert.assertEquals(wxMessage.getTitle(), "公众平台官网链接"); |     assertEquals(wxMessage.getTitle(), "公众平台官网链接"); | ||||||
|     Assert.assertEquals(wxMessage.getEvent(), "subscribe"); |     assertEquals(wxMessage.getEvent(), "subscribe"); | ||||||
|     Assert.assertEquals(wxMessage.getEventKey(), "qrscene_123123"); |     assertEquals(wxMessage.getEventKey(), "qrscene_123123"); | ||||||
|     Assert.assertEquals(wxMessage.getTicket(), "TICKET"); |     assertEquals(wxMessage.getTicket(), "TICKET"); | ||||||
|     Assert.assertEquals(wxMessage.getLatitude(), 23.137466); |     assertEquals(wxMessage.getLatitude(), 23.137466); | ||||||
|     Assert.assertEquals(wxMessage.getLongitude(), 113.352425); |     assertEquals(wxMessage.getLongitude(), 113.352425); | ||||||
|     Assert.assertEquals(wxMessage.getPrecision(), 119.385040); |     assertEquals(wxMessage.getPrecision(), 119.385040); | ||||||
|     Assert.assertEquals(wxMessage.getScanCodeInfo().getScanType(), "qrcode"); |     assertEquals(wxMessage.getScanCodeInfo().getScanType(), "qrcode"); | ||||||
|     Assert.assertEquals(wxMessage.getScanCodeInfo().getScanResult(), "1"); |     assertEquals(wxMessage.getScanCodeInfo().getScanResult(), "1"); | ||||||
|     Assert.assertEquals(wxMessage.getSendPicsInfo().getCount(), new Long(1L)); |     assertEquals(wxMessage.getSendPicsInfo().getCount(), new Long(1L)); | ||||||
|     Assert.assertEquals(wxMessage.getSendPicsInfo().getPicList().get(0).getPicMd5Sum(), "1b5f7c23b5bf75682a53e7b6d163e185"); |     assertEquals(wxMessage.getSendPicsInfo().getPicList().get(0).getPicMd5Sum(), "1b5f7c23b5bf75682a53e7b6d163e185"); | ||||||
|     Assert.assertEquals(wxMessage.getSendLocationInfo().getLocationX(), "23"); |     assertEquals(wxMessage.getSendLocationInfo().getLocationX(), "23"); | ||||||
|     Assert.assertEquals(wxMessage.getSendLocationInfo().getLocationY(), "113"); |     assertEquals(wxMessage.getSendLocationInfo().getLocationY(), "113"); | ||||||
|     Assert.assertEquals(wxMessage.getSendLocationInfo().getScale(), "15"); |     assertEquals(wxMessage.getSendLocationInfo().getScale(), "15"); | ||||||
|     Assert.assertEquals(wxMessage.getSendLocationInfo().getLabel(), " 广州市海珠区客村艺苑路 106号"); |     assertEquals(wxMessage.getSendLocationInfo().getLabel(), " 广州市海珠区客村艺苑路 106号"); | ||||||
|     Assert.assertEquals(wxMessage.getSendLocationInfo().getPoiname(), "wo de poi"); |     assertEquals(wxMessage.getSendLocationInfo().getPoiname(), "wo de poi"); | ||||||
|   } |   } | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Binary Wang
					Binary Wang