From c69b4aadb2fd24df42ca7017034e226074d87543 Mon Sep 17 00:00:00 2001 From: Howard Liu Date: Sat, 15 Dec 2018 18:40:44 +0800 Subject: [PATCH] =?UTF-8?q?#766=20=E5=85=AC=E4=BC=97=E5=8F=B7=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E6=B6=88=E6=81=AF=E7=B1=BB=E9=87=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=89=AB=E4=B8=80=E6=89=AB=E7=9B=B8=E5=85=B3=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E6=8E=A8=E9=80=81=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 ++ readme.md | 1 + .../mp/bean/message/WxMpXmlMessage.java | 64 +++++++++++++++++++ .../mp/bean/message/WxMpXmlMessageTest.java | 44 +++++++++---- 4 files changed, 102 insertions(+), 12 deletions(-) diff --git a/pom.xml b/pom.xml index cc338a607..c9ce90c1d 100644 --- a/pom.xml +++ b/pom.xml @@ -85,6 +85,11 @@ 007gzs@gmail.com https://github.com/007gzs + + Howard Liu + liuxinghao1988@gmail.com + https://github.com/howardliu-cn + diff --git a/readme.md b/readme.md index d577d2af9..5386ba571 100644 --- a/readme.md +++ b/readme.md @@ -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) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java index cbd697059..3ec7a9666 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java @@ -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("", ""); diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessageTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessageTest.java index e741e9310..50bb0ac09 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessageTest.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessageTest.java @@ -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 { + " " + "" + "" - + " 1\n" + + " 1" + " " + " " + " " @@ -52,12 +51,22 @@ public class WxMpXmlMessageTest { + " " + "" + "" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" + + " " + + " " + + " " + + " " + + " " + "" + + "" + + "" + + "" + + "" + + "" + + "1" + + "2" + + "" + + "" + + "" + ""; 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 allFields = wxMessage.getAllFieldsMap(); assertThat(allFields).isNotNull(); final Map copyrightCheckResult = (Map) allFields.get("CopyrightCheckResult"); - List> resultList = (List>) ((Map) copyrightCheckResult.get("ResultList")).get("item"); + List> resultList = (List>) ((Map) copyrightCheckResult + .get("ResultList")).get("item"); assertThat(copyrightCheckResult).isNotNull(); assertThat(copyrightCheckResult.get("Count")).isEqualTo("2");