mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-04-05 17:38:05 +08:00
#766 公众号模块消息类里增加扫一扫相关事件的推送字段
This commit is contained in:
parent
5db8229a8f
commit
c69b4aadb2
5
pom.xml
5
pom.xml
@ -85,6 +85,11 @@
|
|||||||
<email>007gzs@gmail.com</email>
|
<email>007gzs@gmail.com</email>
|
||||||
<url>https://github.com/007gzs</url>
|
<url>https://github.com/007gzs</url>
|
||||||
</developer>
|
</developer>
|
||||||
|
<developer>
|
||||||
|
<name>Howard Liu</name>
|
||||||
|
<email>liuxinghao1988@gmail.com</email>
|
||||||
|
<url>https://github.com/howardliu-cn</url>
|
||||||
|
</developer>
|
||||||
</developers>
|
</developers>
|
||||||
|
|
||||||
<scm>
|
<scm>
|
||||||
|
@ -146,3 +146,4 @@
|
|||||||
1. [qsjia (QSJia)](http://github.com/qsjia)
|
1. [qsjia (QSJia)](http://github.com/qsjia)
|
||||||
1. [webcreazy (webcreazy)](http://github.com/webcreazy)
|
1. [webcreazy (webcreazy)](http://github.com/webcreazy)
|
||||||
1. [cwivan (鱼丸Cwivan)](http://github.com/cwivan)
|
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.
|
* 审核结果,成功succ 或失败fail.
|
||||||
|
*
|
||||||
|
* 在商品审核结果推送时,verify_ok表示审核通过,verify_not_pass表示审核未通过。
|
||||||
*/
|
*/
|
||||||
@XStreamAlias("Result")
|
@XStreamAlias("Result")
|
||||||
private String result;
|
private String result;
|
||||||
@ -566,6 +568,68 @@ public class WxMpXmlMessage implements Serializable {
|
|||||||
@XStreamAlias("Reason")
|
@XStreamAlias("Reason")
|
||||||
private String 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) {
|
public static WxMpXmlMessage fromXml(String xml) {
|
||||||
//修改微信变态的消息内容格式,方便解析
|
//修改微信变态的消息内容格式,方便解析
|
||||||
xml = xml.replace("</PicList><PicList>", "");
|
xml = xml.replace("</PicList><PicList>", "");
|
||||||
|
@ -1,14 +1,13 @@
|
|||||||
package me.chanjar.weixin.mp.bean.message;
|
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.List;
|
||||||
import java.util.Map;
|
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.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.testng.Assert.*;
|
import static org.testng.Assert.assertEquals;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public class WxMpXmlMessageTest {
|
public class WxMpXmlMessageTest {
|
||||||
@ -44,7 +43,7 @@ public class WxMpXmlMessageTest {
|
|||||||
+ " <ScanResult><![CDATA[1]]></ScanResult>"
|
+ " <ScanResult><![CDATA[1]]></ScanResult>"
|
||||||
+ "</ScanCodeInfo>"
|
+ "</ScanCodeInfo>"
|
||||||
+ "<SendPicsInfo>"
|
+ "<SendPicsInfo>"
|
||||||
+ " <Count>1</Count>\n"
|
+ " <Count>1</Count>"
|
||||||
+ " <PicList>"
|
+ " <PicList>"
|
||||||
+ " <item>"
|
+ " <item>"
|
||||||
+ " <PicMd5Sum><![CDATA[1b5f7c23b5bf75682a53e7b6d163e185]]></PicMd5Sum>"
|
+ " <PicMd5Sum><![CDATA[1b5f7c23b5bf75682a53e7b6d163e185]]></PicMd5Sum>"
|
||||||
@ -52,12 +51,22 @@ public class WxMpXmlMessageTest {
|
|||||||
+ " </PicList>"
|
+ " </PicList>"
|
||||||
+ "</SendPicsInfo>"
|
+ "</SendPicsInfo>"
|
||||||
+ "<SendLocationInfo>"
|
+ "<SendLocationInfo>"
|
||||||
+ " <Location_X><![CDATA[23]]></Location_X>\n"
|
+ " <Location_X><![CDATA[23]]></Location_X>"
|
||||||
+ " <Location_Y><![CDATA[113]]></Location_Y>\n"
|
+ " <Location_Y><![CDATA[113]]></Location_Y>"
|
||||||
+ " <Scale><![CDATA[15]]></Scale>\n"
|
+ " <Scale><![CDATA[15]]></Scale>"
|
||||||
+ " <Label><![CDATA[ 广州市海珠区客村艺苑路 106号]]></Label>\n"
|
+ " <Label><![CDATA[ 广州市海珠区客村艺苑路 106号]]></Label>"
|
||||||
+ " <Poiname><![CDATA[wo de poi]]></Poiname>\n"
|
+ " <Poiname><![CDATA[wo de poi]]></Poiname>"
|
||||||
+ "</SendLocationInfo>"
|
+ "</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>";
|
+ "</xml>";
|
||||||
WxMpXmlMessage wxMessage = WxMpXmlMessage.fromXml(xml);
|
WxMpXmlMessage wxMessage = WxMpXmlMessage.fromXml(xml);
|
||||||
assertEquals(wxMessage.getToUser(), "toUser");
|
assertEquals(wxMessage.getToUser(), "toUser");
|
||||||
@ -92,6 +101,16 @@ public class WxMpXmlMessageTest {
|
|||||||
assertEquals(wxMessage.getSendLocationInfo().getScale(), "15");
|
assertEquals(wxMessage.getSendLocationInfo().getScale(), "15");
|
||||||
assertEquals(wxMessage.getSendLocationInfo().getLabel(), " 广州市海珠区客村艺苑路 106号");
|
assertEquals(wxMessage.getSendLocationInfo().getLabel(), " 广州市海珠区客村艺苑路 106号");
|
||||||
assertEquals(wxMessage.getSendLocationInfo().getPoiName(), "wo de poi");
|
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() {
|
public void testFromXml2() {
|
||||||
@ -232,7 +251,8 @@ public class WxMpXmlMessageTest {
|
|||||||
final Map<String, Object> allFields = wxMessage.getAllFieldsMap();
|
final Map<String, Object> allFields = wxMessage.getAllFieldsMap();
|
||||||
assertThat(allFields).isNotNull();
|
assertThat(allFields).isNotNull();
|
||||||
final Map<String, Object> copyrightCheckResult = (Map<String, Object>) allFields.get("CopyrightCheckResult");
|
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).isNotNull();
|
||||||
|
|
||||||
assertThat(copyrightCheckResult.get("Count")).isEqualTo("2");
|
assertThat(copyrightCheckResult.get("Count")).isEqualTo("2");
|
||||||
|
Loading…
Reference in New Issue
Block a user