mirror of
				https://gitee.com/binary/weixin-java-tools.git
				synced 2025-10-31 18:46:10 +08:00 
			
		
		
		
	#766 公众号模块消息类里增加扫一扫相关事件的推送字段
This commit is contained in:
		
							
								
								
									
										5
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								pom.xml
									
									
									
									
									
								
							| @ -85,6 +85,11 @@ | ||||
|       <email>007gzs@gmail.com</email> | ||||
|       <url>https://github.com/007gzs</url> | ||||
|     </developer> | ||||
|     <developer> | ||||
|       <name>Howard Liu</name> | ||||
|       <email>liuxinghao1988@gmail.com</email> | ||||
|       <url>https://github.com/howardliu-cn</url> | ||||
|     </developer> | ||||
|   </developers> | ||||
|  | ||||
|   <scm> | ||||
|  | ||||
| @ -146,3 +146,4 @@ | ||||
| 1. [qsjia (QSJia)](http://github.com/qsjia) | ||||
| 1. [webcreazy (webcreazy)](http://github.com/webcreazy) | ||||
| 1. [cwivan (鱼丸Cwivan)](http://github.com/cwivan) | ||||
| 1. [howardliu-cn (看山)](https://github.com/howardliu-cn) | ||||
|  | ||||
| @ -445,6 +445,8 @@ public class WxMpXmlMessage implements Serializable { | ||||
|  | ||||
|   /** | ||||
|    * 审核结果,成功succ 或失败fail. | ||||
|    * | ||||
|    * 在商品审核结果推送时,verify_ok表示审核通过,verify_not_pass表示审核未通过。 | ||||
|    */ | ||||
|   @XStreamAlias("Result") | ||||
|   private String result; | ||||
| @ -566,6 +568,68 @@ public class WxMpXmlMessage implements Serializable { | ||||
|   @XStreamAlias("Reason") | ||||
|   private String reason; | ||||
|  | ||||
|   /////////////////////////////////////// | ||||
|   // 扫一扫事件推送 | ||||
|   /////////////////////////////////////// | ||||
|   /** | ||||
|    * 商品编码标准 | ||||
|    */ | ||||
|   @XStreamAlias("KeyStandard") | ||||
|   private String keyStandard; | ||||
|   /** | ||||
|    * 商品编码内容 | ||||
|    */ | ||||
|   @XStreamAlias("KeyStr") | ||||
|   private String keyStr; | ||||
|  | ||||
|   /** | ||||
|    * 用户在微信内设置的国家 | ||||
|    */ | ||||
|   @XStreamAlias("Country") | ||||
|   private String country; | ||||
|  | ||||
|   /** | ||||
|    * 用户在微信内设置的省份 | ||||
|    */ | ||||
|   @XStreamAlias("Province") | ||||
|   private String province; | ||||
|  | ||||
|   /** | ||||
|    * 用户在微信内设置的城市 | ||||
|    */ | ||||
|   @XStreamAlias("City") | ||||
|   private String city; | ||||
|  | ||||
|   /** | ||||
|    * 用户的性别,1为男性,2为女性,0代表未知 | ||||
|    */ | ||||
|   @XStreamAlias("Sex") | ||||
|   private String sex; | ||||
|  | ||||
|   /** | ||||
|    * 打开商品主页的场景,1为扫码,2为其他打开场景(如会话、收藏或朋友圈) | ||||
|    */ | ||||
|   @XStreamAlias("Scene") | ||||
|   private String scene; | ||||
|  | ||||
|   /** | ||||
|    * 调用“获取商品二维码接口”时传入的extinfo,为标识参数 | ||||
|    */ | ||||
|   @XStreamAlias("ExtInfo") | ||||
|   private String extInfo; | ||||
|  | ||||
|   /** | ||||
|    * 用户的实时地理位置信息(目前只精确到省一级),可在国家统计局网站查到对应明细: http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201504/t20150415_712722.html | ||||
|    */ | ||||
|   @XStreamAlias("RegionCode") | ||||
|   private String regionCode; | ||||
|  | ||||
|   /** | ||||
|    * 审核未通过的原因。 | ||||
|    */ | ||||
|   @XStreamAlias("ReasonMsg") | ||||
|   private String reasonMsg; | ||||
|  | ||||
|   public static WxMpXmlMessage fromXml(String xml) { | ||||
|     //修改微信变态的消息内容格式,方便解析 | ||||
|     xml = xml.replace("</PicList><PicList>", ""); | ||||
|  | ||||
| @ -1,14 +1,13 @@ | ||||
| package me.chanjar.weixin.mp.bean.message; | ||||
|  | ||||
| import me.chanjar.weixin.common.api.WxConsts; | ||||
| import org.testng.annotations.Test; | ||||
|  | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
|  | ||||
| import org.testng.annotations.*; | ||||
|  | ||||
| import me.chanjar.weixin.common.api.WxConsts; | ||||
|  | ||||
| import static org.assertj.core.api.Assertions.assertThat; | ||||
| import static org.testng.Assert.*; | ||||
| import static org.testng.Assert.assertEquals; | ||||
|  | ||||
| @Test | ||||
| public class WxMpXmlMessageTest { | ||||
| @ -44,7 +43,7 @@ public class WxMpXmlMessageTest { | ||||
|       + " <ScanResult><![CDATA[1]]></ScanResult>" | ||||
|       + "</ScanCodeInfo>" | ||||
|       + "<SendPicsInfo>" | ||||
|       + " <Count>1</Count>\n" | ||||
|       + " <Count>1</Count>" | ||||
|       + " <PicList>" | ||||
|       + "  <item>" | ||||
|       + "   <PicMd5Sum><![CDATA[1b5f7c23b5bf75682a53e7b6d163e185]]></PicMd5Sum>" | ||||
| @ -52,12 +51,22 @@ public class WxMpXmlMessageTest { | ||||
|       + " </PicList>" | ||||
|       + "</SendPicsInfo>" | ||||
|       + "<SendLocationInfo>" | ||||
|       + "  <Location_X><![CDATA[23]]></Location_X>\n" | ||||
|       + "  <Location_Y><![CDATA[113]]></Location_Y>\n" | ||||
|       + "  <Scale><![CDATA[15]]></Scale>\n" | ||||
|       + "  <Label><![CDATA[ 广州市海珠区客村艺苑路 106号]]></Label>\n" | ||||
|       + "  <Poiname><![CDATA[wo de poi]]></Poiname>\n" | ||||
|       + "  <Location_X><![CDATA[23]]></Location_X>" | ||||
|       + "  <Location_Y><![CDATA[113]]></Location_Y>" | ||||
|       + "  <Scale><![CDATA[15]]></Scale>" | ||||
|       + "  <Label><![CDATA[ 广州市海珠区客村艺苑路 106号]]></Label>" | ||||
|       + "  <Poiname><![CDATA[wo de poi]]></Poiname>" | ||||
|       + "</SendLocationInfo>" | ||||
|       + "<KeyStandard><![CDATA[ean13]]></KeyStandard>" | ||||
|       + "<KeyStr><![CDATA[6901481811083]]></KeyStr>" | ||||
|       + "<Country><![CDATA[中国]]></Country>" | ||||
|       + "<Province><![CDATA[广东]]></Province>" | ||||
|       + "<City><![CDATA[揭阳]]></City>" | ||||
|       + "<Sex>1</Sex>" | ||||
|       + "<Scene>2</Scene>" | ||||
|       + "<ExtInfo><![CDATA[123]]></ExtInfo>" | ||||
|       + "<RegionCode><![CDATA[440105]]></RegionCode>" | ||||
|       + "<ReasonMsg><![CDATA[]]></ReasonMsg>" | ||||
|       + "</xml>"; | ||||
|     WxMpXmlMessage wxMessage = WxMpXmlMessage.fromXml(xml); | ||||
|     assertEquals(wxMessage.getToUser(), "toUser"); | ||||
| @ -92,6 +101,16 @@ public class WxMpXmlMessageTest { | ||||
|     assertEquals(wxMessage.getSendLocationInfo().getScale(), "15"); | ||||
|     assertEquals(wxMessage.getSendLocationInfo().getLabel(), " 广州市海珠区客村艺苑路 106号"); | ||||
|     assertEquals(wxMessage.getSendLocationInfo().getPoiName(), "wo de poi"); | ||||
|     assertEquals(wxMessage.getKeyStandard(), "ean13"); | ||||
|     assertEquals(wxMessage.getKeyStr(), "6901481811083"); | ||||
|     assertEquals(wxMessage.getCountry(), "中国"); | ||||
|     assertEquals(wxMessage.getProvince(), "广东"); | ||||
|     assertEquals(wxMessage.getCity(), "揭阳"); | ||||
|     assertEquals(wxMessage.getSex(), "1"); | ||||
|     assertEquals(wxMessage.getScene(), "2"); | ||||
|     assertEquals(wxMessage.getExtInfo(), "123"); | ||||
|     assertEquals(wxMessage.getRegionCode(), "440105"); | ||||
|     assertEquals(wxMessage.getReasonMsg(), ""); | ||||
|   } | ||||
|  | ||||
|   public void testFromXml2() { | ||||
| @ -232,7 +251,8 @@ public class WxMpXmlMessageTest { | ||||
|     final Map<String, Object> allFields = wxMessage.getAllFieldsMap(); | ||||
|     assertThat(allFields).isNotNull(); | ||||
|     final Map<String, Object> copyrightCheckResult = (Map<String, Object>) allFields.get("CopyrightCheckResult"); | ||||
|     List<Map<String, Object>> resultList = (List<Map<String, Object>>) ((Map<String, Object>) copyrightCheckResult.get("ResultList")).get("item"); | ||||
|     List<Map<String, Object>> resultList = (List<Map<String, Object>>) ((Map<String, Object>) copyrightCheckResult | ||||
|       .get("ResultList")).get("item"); | ||||
|     assertThat(copyrightCheckResult).isNotNull(); | ||||
|  | ||||
|     assertThat(copyrightCheckResult.get("Count")).isEqualTo("2"); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Howard Liu
					Howard Liu