Переглянути джерело

根据java命名规范重新命名字段

master
Daniel Qian 10 роки тому
джерело
коміт
5b18c1419c
62 змінених файлів з 854 додано та 592 видалено
  1. +2
    -2
      README.md
  2. +1
    -1
      src/main/java/me/chanjar/weixin/api/WxInMemoryConfigStorage.java
  3. +6
    -8
      src/main/java/me/chanjar/weixin/api/WxServiceImpl.java
  4. +10
    -10
      src/main/java/me/chanjar/weixin/bean/WxAccessToken.java
  5. +36
    -36
      src/main/java/me/chanjar/weixin/bean/WxCustomMessage.java
  6. +10
    -10
      src/main/java/me/chanjar/weixin/bean/WxMassGroupMessage.java
  7. +18
    -18
      src/main/java/me/chanjar/weixin/bean/WxMassNews.java
  8. +15
    -15
      src/main/java/me/chanjar/weixin/bean/WxMassOpenIdsMessage.java
  9. +5
    -5
      src/main/java/me/chanjar/weixin/bean/WxMassVideo.java
  10. +10
    -10
      src/main/java/me/chanjar/weixin/bean/WxMenu.java
  11. +136
    -131
      src/main/java/me/chanjar/weixin/bean/WxXmlMessage.java
  12. +4
    -4
      src/main/java/me/chanjar/weixin/bean/WxXmlOutImageMessage.java
  13. +12
    -12
      src/main/java/me/chanjar/weixin/bean/WxXmlOutMessage.java
  14. +7
    -7
      src/main/java/me/chanjar/weixin/bean/WxXmlOutMewsMessage.java
  15. +22
    -22
      src/main/java/me/chanjar/weixin/bean/WxXmlOutMusicMessage.java
  16. +4
    -4
      src/main/java/me/chanjar/weixin/bean/WxXmlOutTextMessage.java
  17. +10
    -10
      src/main/java/me/chanjar/weixin/bean/WxXmlOutVideoMessage.java
  18. +4
    -4
      src/main/java/me/chanjar/weixin/bean/WxXmlOutVoiceMessage.java
  19. +3
    -3
      src/main/java/me/chanjar/weixin/bean/custombuilder/BaseBuilder.java
  20. +5
    -5
      src/main/java/me/chanjar/weixin/bean/custombuilder/ImageBuilder.java
  21. +14
    -14
      src/main/java/me/chanjar/weixin/bean/custombuilder/MusicBuilder.java
  22. +1
    -1
      src/main/java/me/chanjar/weixin/bean/custombuilder/NewsBuilder.java
  23. +1
    -1
      src/main/java/me/chanjar/weixin/bean/custombuilder/TextBuilder.java
  24. +10
    -10
      src/main/java/me/chanjar/weixin/bean/custombuilder/VideoBuilder.java
  25. +5
    -5
      src/main/java/me/chanjar/weixin/bean/custombuilder/VoiceBuilder.java
  26. +4
    -4
      src/main/java/me/chanjar/weixin/bean/outxmlbuilder/MusicBuilder.java
  27. +12
    -12
      src/main/java/me/chanjar/weixin/bean/result/WxError.java
  28. +16
    -16
      src/main/java/me/chanjar/weixin/bean/result/WxMassSendResult.java
  29. +11
    -11
      src/main/java/me/chanjar/weixin/bean/result/WxMassUploadResult.java
  30. +17
    -17
      src/main/java/me/chanjar/weixin/bean/result/WxMediaUploadResult.java
  31. +20
    -20
      src/main/java/me/chanjar/weixin/bean/result/WxUser.java
  32. +10
    -10
      src/main/java/me/chanjar/weixin/bean/result/WxUserList.java
  33. +1
    -1
      src/main/java/me/chanjar/weixin/util/http/MediaUploadRequestExecutor.java
  34. +1
    -1
      src/main/java/me/chanjar/weixin/util/http/SimpleGetRequestExecutor.java
  35. +1
    -1
      src/main/java/me/chanjar/weixin/util/http/SimplePostRequestExecutor.java
  36. +36
    -0
      src/main/java/me/chanjar/weixin/util/json/WxAccessTokenAdapter.java
  37. +16
    -16
      src/main/java/me/chanjar/weixin/util/json/WxCustomMessageGsonAdapter.java
  38. +37
    -0
      src/main/java/me/chanjar/weixin/util/json/WxErrorAdapter.java
  39. +9
    -8
      src/main/java/me/chanjar/weixin/util/json/WxGsonBuilder.java
  40. +5
    -5
      src/main/java/me/chanjar/weixin/util/json/WxMassMessageGsonAdapter.java
  41. +4
    -4
      src/main/java/me/chanjar/weixin/util/json/WxMassNewsGsonAdapter.java
  42. +14
    -14
      src/main/java/me/chanjar/weixin/util/json/WxMassOpenIdsMessageGsonAdapter.java
  43. +39
    -0
      src/main/java/me/chanjar/weixin/util/json/WxMassSendResultAdapter.java
  44. +39
    -0
      src/main/java/me/chanjar/weixin/util/json/WxMassUploadResultAdapter.java
  45. +31
    -0
      src/main/java/me/chanjar/weixin/util/json/WxMassVideoAdapter.java
  46. +42
    -0
      src/main/java/me/chanjar/weixin/util/json/WxMediaUploadResultAdapter.java
  47. +5
    -5
      src/main/java/me/chanjar/weixin/util/json/WxMenuGsonAdapter.java
  48. +40
    -0
      src/main/java/me/chanjar/weixin/util/json/WxQrCodeTicketAdapter.java
  49. +4
    -4
      src/main/java/me/chanjar/weixin/util/json/WxUserGsonAdapter.java
  50. +2
    -2
      src/main/java/me/chanjar/weixin/util/json/WxUserListGsonAdapter.java
  51. +2
    -2
      src/test/java/me/chanjar/weixin/api/WxCustomMessageAPITest.java
  52. +27
    -27
      src/test/java/me/chanjar/weixin/api/WxMassMessageAPITest.java
  53. +6
    -6
      src/test/java/me/chanjar/weixin/api/WxMediaAPITest.java
  54. +6
    -6
      src/test/java/me/chanjar/weixin/api/WxMenuAPITest.java
  55. +0
    -1
      src/test/java/me/chanjar/weixin/api/WxMessageRouterTest.java
  56. +1
    -1
      src/test/java/me/chanjar/weixin/api/WxUserAPITest.java
  57. +2
    -3
      src/test/java/me/chanjar/weixin/bean/WxAccessTokenTest.java
  58. +24
    -25
      src/test/java/me/chanjar/weixin/bean/WxCustomMessageTest.java
  59. +6
    -6
      src/test/java/me/chanjar/weixin/bean/WxErrorTest.java
  60. +7
    -8
      src/test/java/me/chanjar/weixin/bean/WxMenuTest.java
  61. +4
    -4
      src/test/java/me/chanjar/weixin/bean/WxXmlMessageTest.java
  62. +2
    -4
      src/test/java/me/chanjar/weixin/bean/WxXmlOutIMusicMessageTest.java

+ 2
- 2
README.md Переглянути файл

@@ -38,7 +38,7 @@ wxService.setWxConfigStorage(config);

// 用户的openid在下面地址获得
// https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=用户管理&form=获取关注者列表接口%20/user/get
String openid = ...;
WxCustomMessage message = WxCustomMessage.TEXT().toUser(openid).content("Hello World").build();
String openId = ...;
WxCustomMessage message = WxCustomMessage.TEXT().toUser(openId).content("Hello World").build();
wxService.customMessageSend(message);
```

+ 1
- 1
src/main/java/me/chanjar/weixin/api/WxInMemoryConfigStorage.java Переглянути файл

@@ -17,7 +17,7 @@ public class WxInMemoryConfigStorage implements WxConfigStorage {
protected int expiresIn;

public void updateAccessToken(WxAccessToken accessToken) {
updateAccessToken(accessToken.getAccess_token(), accessToken.getExpires_in());
updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn());
}
public void updateAccessToken(String accessToken, int expiresIn) {


+ 6
- 8
src/main/java/me/chanjar/weixin/api/WxServiceImpl.java Переглянути файл

@@ -4,8 +4,6 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.security.MessageDigest;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -86,11 +84,11 @@ public class WxServiceImpl implements WxService {
CloseableHttpResponse response = httpclient.execute(httpGet);
String resultContent = new BasicResponseHandler().handleResponse(response);
WxError error = WxError.fromJson(resultContent);
if (error.getErrcode() != 0) {
if (error.getErrorCode() != 0) {
throw new WxErrorException(error);
}
WxAccessToken accessToken = WxAccessToken.fromJson(resultContent);
wxConfigStorage.updateAccessToken(accessToken.getAccess_token(), accessToken.getExpires_in());
wxConfigStorage.updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn());
} catch (ClientProtocolException e) {
throw new RuntimeException(e);
} catch (IOException e) {
@@ -133,7 +131,7 @@ public class WxServiceImpl implements WxService {
return WxMenu.fromJson(resultContent);
} catch (WxErrorException e) {
// 46003 不存在的菜单数据
if (e.getError().getErrcode() == 46003) {
if (e.getError().getErrorCode() == 46003) {
return null;
}
throw e;
@@ -316,14 +314,14 @@ public class WxServiceImpl implements WxService {
* 40001 获取access_token时AppSecret错误,或者access_token无效
* 42001 access_token超时
*/
if (error.getErrcode() == 42001 || error.getErrcode() == 40001) {
if (error.getErrorCode() == 42001 || error.getErrorCode() == 40001) {
accessTokenRefresh();
return execute(executor, uri, data);
}
/**
* -1 系统繁忙, 1000ms后重试
*/
if (error.getErrcode() == -1) {
if (error.getErrorCode() == -1) {
if(retryTimes.get() == null) {
retryTimes.set(0);
}
@@ -341,7 +339,7 @@ public class WxServiceImpl implements WxService {
throw new RuntimeException(e1);
}
}
if (error.getErrcode() != 0) {
if (error.getErrorCode() != 0) {
throw new WxErrorException(error);
}
return null;


+ 10
- 10
src/main/java/me/chanjar/weixin/bean/WxAccessToken.java Переглянути файл

@@ -4,24 +4,24 @@ import me.chanjar.weixin.util.json.WxGsonBuilder;

public class WxAccessToken {

private String access_token;
private String accessToken;
private int expires_in;
private int expiresIn;

public String getAccess_token() {
return access_token;
public String getAccessToken() {
return accessToken;
}

public void setAccess_token(String access_token) {
this.access_token = access_token;
public void setAccessToken(String accessToken) {
this.accessToken = accessToken;
}

public int getExpires_in() {
return expires_in;
public int getExpiresIn() {
return expiresIn;
}

public void setExpires_in(int expires_in) {
this.expires_in = expires_in;
public void setExpiresIn(int expiresIn) {
this.expiresIn = expiresIn;
}

public static WxAccessToken fromJson(String json) {


+ 36
- 36
src/main/java/me/chanjar/weixin/bean/WxCustomMessage.java Переглянути файл

@@ -19,25 +19,25 @@ import me.chanjar.weixin.util.json.WxGsonBuilder;
*/
public class WxCustomMessage {

private String touser;
private String msgtype;
private String toUser;
private String msgType;
private String content;
private String media_id;
private String thumb_media_id;
private String mediaId;
private String thumbMediaId;
private String title;
private String description;
private String musicurl;
private String hqmusicurl;
private String musicUrl;
private String hqMusicUrl;
private List<WxArticle> articles = new ArrayList<WxArticle>();
public String getTouser() {
return touser;
public String getToUser() {
return toUser;
}
public void setTouser(String touser) {
this.touser = touser;
public void setToUser(String toUser) {
this.toUser = toUser;
}
public String getMsgtype() {
return msgtype;
public String getMsgType() {
return msgType;
}
/**
@@ -50,10 +50,10 @@ public class WxCustomMessage {
* {@link WxConsts#CUSTOM_MSG_VIDEO}
* {@link WxConsts#CUSTOM_MSG_NEWS}
* </pre>
* @param msgtype
* @param msgType
*/
public void setMsgtype(String msgtype) {
this.msgtype = msgtype;
public void setMsgType(String msgType) {
this.msgType = msgType;
}
public String getContent() {
return content;
@@ -61,17 +61,17 @@ public class WxCustomMessage {
public void setContent(String content) {
this.content = content;
}
public String getMedia_id() {
return media_id;
public String getMediaId() {
return mediaId;
}
public void setMedia_id(String media_id) {
this.media_id = media_id;
public void setMediaId(String mediaId) {
this.mediaId = mediaId;
}
public String getThumb_media_id() {
return thumb_media_id;
public String getThumbMediaId() {
return thumbMediaId;
}
public void setThumb_media_id(String thumb_media_id) {
this.thumb_media_id = thumb_media_id;
public void setThumbMediaId(String thumbMediaId) {
this.thumbMediaId = thumbMediaId;
}
public String getTitle() {
return title;
@@ -85,17 +85,17 @@ public class WxCustomMessage {
public void setDescription(String description) {
this.description = description;
}
public String getMusicurl() {
return musicurl;
public String getMusicUrl() {
return musicUrl;
}
public void setMusicurl(String musicurl) {
this.musicurl = musicurl;
public void setMusicUrl(String musicUrl) {
this.musicUrl = musicUrl;
}
public String getHqmusicurl() {
return hqmusicurl;
public String getHqMusicUrl() {
return hqMusicUrl;
}
public void setHqmusicurl(String hqmusicurl) {
this.hqmusicurl = hqmusicurl;
public void setHqMusicUrl(String hqMusicUrl) {
this.hqMusicUrl = hqMusicUrl;
}
public List<WxArticle> getArticles() {
return articles;
@@ -113,7 +113,7 @@ public class WxCustomMessage {
private String title;
private String description;
private String url;
private String picurl;
private String picUrl;
public String getTitle() {
return title;
@@ -133,11 +133,11 @@ public class WxCustomMessage {
public void setUrl(String url) {
this.url = url;
}
public String getPicurl() {
return picurl;
public String getPicUrl() {
return picUrl;
}
public void setPicurl(String picurl) {
this.picurl = picurl;
public void setPicUrl(String picUrl) {
this.picUrl = picUrl;
}
}


+ 10
- 10
src/main/java/me/chanjar/weixin/bean/WxMassGroupMessage.java Переглянути файл

@@ -10,10 +10,10 @@ import me.chanjar.weixin.util.json.WxGsonBuilder;
*/
public class WxMassGroupMessage {
private long group_id;
private long groupId;
private String msgtype;
private String content;
private String media_id;
private String mediaId;

public WxMassGroupMessage() {
super();
@@ -47,24 +47,24 @@ public class WxMassGroupMessage {
this.content = content;
}

public String getMedia_id() {
return media_id;
public String getMediaId() {
return mediaId;
}

public void setMedia_id(String media_id) {
this.media_id = media_id;
public void setMediaId(String mediaId) {
this.mediaId = mediaId;
}

public String toJson() {
return WxGsonBuilder.INSTANCE.create().toJson(this);
}

public long getGroup_id() {
return group_id;
public long getGroupId() {
return groupId;
}

public void setGroup_id(long group_id) {
this.group_id = group_id;
public void setGroupId(long groupId) {
this.groupId = groupId;
}

}

+ 18
- 18
src/main/java/me/chanjar/weixin/bean/WxMassNews.java Переглянути файл

@@ -29,13 +29,13 @@ public class WxMassNews {
/**
* <pre>
* 群发图文消息article
* 1. thumb_media_id (必填) 图文消息缩略图的media_id,可以在基础支持-上传多媒体文件接口中获得
* 1. thumbMediaId (必填) 图文消息缩略图的media_id,可以在基础支持-上传多媒体文件接口中获得
* 2. author 图文消息的作者
* 3. title (必填) 图文消息的标题
* 4. content_source_url 在图文消息页面点击“阅读原文”后的页面链接
* 4. contentSourceUrl 在图文消息页面点击“阅读原文”后的页面链接
* 5. content (必填) 图文消息页面的内容,支持HTML标签
* 6. digest 图文消息的描述
* 7, show_cover_pic 是否显示封面,true为显示,false为不显示
* 7, showCoverPic 是否显示封面,true为显示,false为不显示
* </pre>
* @author chanjarster
*
@@ -44,7 +44,7 @@ public class WxMassNews {
/**
* (必填) 图文消息缩略图的media_id,可以在基础支持-上传多媒体文件接口中获得
*/
private String thumb_media_id;
private String thumbMediaId;
/**
* 图文消息的作者
*/
@@ -56,7 +56,7 @@ public class WxMassNews {
/**
* 在图文消息页面点击“阅读原文”后的页面链接
*/
private String content_source_url;
private String contentSourceUrl;
/**
* (必填) 图文消息页面的内容,支持HTML标签
*/
@@ -68,13 +68,13 @@ public class WxMassNews {
/**
* 是否显示封面,true为显示,false为不显示
*/
private boolean show_cover_pic;
private boolean showCoverPic;
public String getThumb_media_id() {
return thumb_media_id;
public String getThumbMediaId() {
return thumbMediaId;
}
public void setThumb_media_id(String thumb_media_id) {
this.thumb_media_id = thumb_media_id;
public void setThumbMediaId(String thumbMediaId) {
this.thumbMediaId = thumbMediaId;
}
public String getAuthor() {
return author;
@@ -88,11 +88,11 @@ public class WxMassNews {
public void setTitle(String title) {
this.title = title;
}
public String getContent_source_url() {
return content_source_url;
public String getContentSourceUrl() {
return contentSourceUrl;
}
public void setContent_source_url(String content_source_url) {
this.content_source_url = content_source_url;
public void setContentSourceUrl(String contentSourceUrl) {
this.contentSourceUrl = contentSourceUrl;
}
public String getContent() {
return content;
@@ -106,11 +106,11 @@ public class WxMassNews {
public void setDigest(String digest) {
this.digest = digest;
}
public boolean isShow_cover_pic() {
return show_cover_pic;
public boolean isShowCoverPic() {
return showCoverPic;
}
public void setShow_cover_pic(boolean show_cover_pic) {
this.show_cover_pic = show_cover_pic;
public void setShowCoverPic(boolean showCoverPic) {
this.showCoverPic = showCoverPic;
}
}


+ 15
- 15
src/main/java/me/chanjar/weixin/bean/WxMassOpenIdsMessage.java Переглянути файл

@@ -12,17 +12,17 @@ import me.chanjar.weixin.util.json.WxGsonBuilder;
*/
public class WxMassOpenIdsMessage {
private List<String> touser = new ArrayList<String>();
private String msgtype;
private List<String> toUsers = new ArrayList<String>();
private String msgType;
private String content;
private String media_id;
private String mediaId;

public WxMassOpenIdsMessage() {
super();
}
public String getMsgtype() {
return msgtype;
public String getMsgType() {
return msgType;
}

/**
@@ -35,10 +35,10 @@ public class WxMassOpenIdsMessage {
* {@link me.chanjar.weixin.api.WxConsts#MASS_MSG_VOICE}
* 如果msgtype和media_id不匹配的话,会返回系统繁忙的错误
* </pre>
* @param msgtype
* @param msgType
*/
public void setMsgtype(String msgtype) {
this.msgtype = msgtype;
public void setMsgType(String msgType) {
this.msgType = msgType;
}

public String getContent() {
@@ -49,12 +49,12 @@ public class WxMassOpenIdsMessage {
this.content = content;
}

public String getMedia_id() {
return media_id;
public String getMediaId() {
return mediaId;
}

public void setMedia_id(String media_id) {
this.media_id = media_id;
public void setMediaId(String mediaId) {
this.mediaId = mediaId;
}

public String toJson() {
@@ -65,8 +65,8 @@ public class WxMassOpenIdsMessage {
* OpenId列表,最多支持10,000个
* @return
*/
public List<String> getTouser() {
return touser;
public List<String> getToUsers() {
return toUsers;
}

/**
@@ -74,6 +74,6 @@ public class WxMassOpenIdsMessage {
* @param openId
*/
public void addUser(String openId) {
this.touser.add(openId);
this.toUsers.add(openId);
}
}

+ 5
- 5
src/main/java/me/chanjar/weixin/bean/WxMassVideo.java Переглянути файл

@@ -9,7 +9,7 @@ import me.chanjar.weixin.util.json.WxGsonBuilder;
*/
public class WxMassVideo {

private String media_id;
private String mediaId;
private String title;
private String description;

@@ -29,12 +29,12 @@ public class WxMassVideo {
this.description = description;
}

public String getMedia_id() {
return media_id;
public String getMediaId() {
return mediaId;
}

public void setMedia_id(String media_id) {
this.media_id = media_id;
public void setMediaId(String mediaId) {
this.mediaId = mediaId;
}

public String toJson() {


+ 10
- 10
src/main/java/me/chanjar/weixin/bean/WxMenu.java Переглянути файл

@@ -14,14 +14,14 @@ import me.chanjar.weixin.util.json.WxGsonBuilder;
*/
public class WxMenu {

private List<WxMenuButton> button = new ArrayList<WxMenuButton>();
private List<WxMenuButton> buttons = new ArrayList<WxMenuButton>();

public List<WxMenuButton> getButton() {
return button;
public List<WxMenuButton> getButtons() {
return buttons;
}

public void setButton(List<WxMenuButton> button) {
this.button = button;
public void setButtons(List<WxMenuButton> buttons) {
this.buttons = buttons;
}
public String toJson() {
@@ -43,7 +43,7 @@ public class WxMenu {
private String key;
private String url;
private List<WxMenuButton> sub_button = new ArrayList<WxMenuButton>();
private List<WxMenuButton> subButtons = new ArrayList<WxMenuButton>();

public String getType() {
return type;
@@ -77,12 +77,12 @@ public class WxMenu {
this.url = url;
}

public List<WxMenuButton> getSub_button() {
return sub_button;
public List<WxMenuButton> getSubButtons() {
return subButtons;
}

public void setSub_button(List<WxMenuButton> sub_button) {
this.sub_button = sub_button;
public void setSubButtons(List<WxMenuButton> subButtons) {
this.subButtons = subButtons;
}
}


+ 136
- 131
src/main/java/me/chanjar/weixin/bean/WxXmlMessage.java Переглянути файл

@@ -36,91 +36,91 @@ public class WxXmlMessage {

@XmlElement(name = "ToUserName")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String ToUserName;
private String toUserName;

@XmlElement(name = "FromUserName")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String FromUserName;
private String fromUserName;

@XmlElement(name = "CreateTime")
private Long CreateTime;
private Long createTime;

@XmlElement(name = "MsgType")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String MsgType;
private String msgType;

@XmlElement(name = "Content")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Content;
private String content;

@XmlElement(name = "MsgId")
private Long MsgId;
private Long msgId;

@XmlElement(name = "PicUrl")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String PicUrl;
private String picUrl;

@XmlElement(name = "MediaId")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String MediaId;
private String mediaId;

@XmlElement(name = "Format")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Format;
private String format;

@XmlElement(name = "ThumbMediaId")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String ThumbMediaId;
private String thumbMediaId;

@XmlElement(name = "Location_X")
private Double Location_X;
private Double locationX;

@XmlElement(name = "Location_Y")
private Double Location_Y;
private Double locationY;

@XmlElement(name = "Scale")
private Double Scale;
private Double scale;

@XmlElement(name = "Label")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Label;
private String label;

@XmlElement(name = "Title")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Title;
private String title;

@XmlElement(name = "Description")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Description;
private String description;

@XmlElement(name = "Url")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Url;
private String url;

@XmlElement(name = "Event")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Event;
private String event;

@XmlElement(name = "EventKey")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String EventKey;
private String eventKey;

@XmlElement(name = "Ticket")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Ticket;
private String ticket;

@XmlElement(name = "Latitude")
private Double Latitude;
private Double latitude;

@XmlElement(name = "Longitude")
private Double Longitude;
private Double longitude;

@XmlElement(name = "Precision")
private Double Precision;
private Double precision;

@XmlElement(name = "Recognition")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Recognition;
private String recognition;

///////////////////////////////////////
// 群发消息返回的结果
@@ -130,47 +130,51 @@ public class WxXmlMessage {
*/
@XmlElement(name = "Status")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Status;
private String status;
/**
* group_id下粉丝数;或者openid_list中的粉丝数
*/
private Integer TotalCount;
@XmlElement(name = "TotalCount")
private Integer totalCount;
/**
* 过滤(过滤是指特定地区、性别的过滤、用户设置拒收的过滤,用户接收已超4条的过滤)后,准备发送的粉丝数,原则上,FilterCount = SentCount + ErrorCount
* 过滤(过滤是指特定地区、性别的过滤、用户设置拒收的过滤,用户接收已超4条的过滤)后,准备发送的粉丝数,原则上,filterCount = sentCount + errorCount
*/
private Integer FilterCount;
@XmlElement(name = "FilterCount")
private Integer filterCount;
/**
* 发送成功的粉丝数
*/
private Integer SentCount;
@XmlElement(name = "SentCount")
private Integer sentCount;
/**
* 发送失败的粉丝数
*/
private Integer ErrorCount;
@XmlElement(name = "ErrorCount")
private Integer errorCount;

@XmlElement(name = "ScanCodeInfo")
private ScanCodeInfo ScanCodeInfo = new ScanCodeInfo();
private ScanCodeInfo scanCodeInfo = new ScanCodeInfo();

@XmlElement(name = "SendPicsInfo")
private SendPicsInfo SendPicsInfo = new SendPicsInfo();
private SendPicsInfo sendPicsInfo = new SendPicsInfo();

@XmlElement(name = "SendLocationInfo")
private SendLocationInfo SendLocationInfo = new SendLocationInfo();
private SendLocationInfo sendLocationInfo = new SendLocationInfo();

public String getToUserName() {
return ToUserName;
return toUserName;
}

public void setToUserName(String toUserName) {
ToUserName = toUserName;
this.toUserName = toUserName;
}

public Long getCreateTime() {
return CreateTime;
return createTime;
}

public void setCreateTime(Long createTime) {
CreateTime = createTime;
this.createTime = createTime;
}

/**
@@ -188,7 +192,7 @@ public class WxXmlMessage {
* @return
*/
public String getMsgType() {
return MsgType;
return msgType;
}

/**
@@ -205,175 +209,175 @@ public class WxXmlMessage {
* @param msgType
*/
public void setMsgType(String msgType) {
MsgType = msgType;
this.msgType = msgType;
}

public String getContent() {
return Content;
return content;
}

public void setContent(String content) {
Content = content;
this.content = content;
}

public Long getMsgId() {
return MsgId;
return msgId;
}

public void setMsgId(Long msgId) {
MsgId = msgId;
this.msgId = msgId;
}

public String getPicUrl() {
return PicUrl;
return picUrl;
}

public void setPicUrl(String picUrl) {
PicUrl = picUrl;
this.picUrl = picUrl;
}

public String getMediaId() {
return MediaId;
return mediaId;
}

public void setMediaId(String mediaId) {
MediaId = mediaId;
this.mediaId = mediaId;
}

public String getFormat() {
return Format;
return format;
}

public void setFormat(String format) {
Format = format;
this.format = format;
}

public String getThumbMediaId() {
return ThumbMediaId;
return thumbMediaId;
}

public void setThumbMediaId(String thumbMediaId) {
ThumbMediaId = thumbMediaId;
this.thumbMediaId = thumbMediaId;
}

public Double getLocation_X() {
return Location_X;
public Double getLocationX() {
return locationX;
}

public void setLocation_X(Double location_X) {
Location_X = location_X;
public void setLocationX(Double locationX) {
this.locationX = locationX;
}

public Double getLocation_Y() {
return Location_Y;
public Double getLocationY() {
return locationY;
}

public void setLocation_Y(Double location_Y) {
Location_Y = location_Y;
public void setLocationY(Double locationY) {
this.locationY = locationY;
}

public Double getScale() {
return Scale;
return scale;
}

public void setScale(Double scale) {
Scale = scale;
this.scale = scale;
}

public String getLabel() {
return Label;
return label;
}

public void setLabel(String label) {
Label = label;
this.label = label;
}

public String getTitle() {
return Title;
return title;
}

public void setTitle(String title) {
Title = title;
this.title = title;
}

public String getDescription() {
return Description;
return description;
}

public void setDescription(String description) {
Description = description;
this.description = description;
}

public String getUrl() {
return Url;
return url;
}

public void setUrl(String url) {
Url = url;
this.url = url;
}

public String getEvent() {
return Event;
return event;
}

public void setEvent(String event) {
Event = event;
this.event = event;
}

public String getEventKey() {
return EventKey;
return eventKey;
}

public void setEventKey(String eventKey) {
EventKey = eventKey;
this.eventKey = eventKey;
}

public String getTicket() {
return Ticket;
return ticket;
}

public void setTicket(String ticket) {
Ticket = ticket;
this.ticket = ticket;
}

public Double getLatitude() {
return Latitude;
return latitude;
}

public void setLatitude(Double latitude) {
Latitude = latitude;
this.latitude = latitude;
}

public Double getLongitude() {
return Longitude;
return longitude;
}

public void setLongitude(Double longitude) {
Longitude = longitude;
this.longitude = longitude;
}

public Double getPrecision() {
return Precision;
return precision;
}

public void setPrecision(Double precision) {
Precision = precision;
this.precision = precision;
}

public String getRecognition() {
return Recognition;
return recognition;
}

public void setRecognition(String recognition) {
Recognition = recognition;
this.recognition = recognition;
}

public String getFromUserName() {
return FromUserName;
return fromUserName;
}

public void setFromUserName(String fromUserName) {
FromUserName = fromUserName;
this.fromUserName = fromUserName;
}

public static WxXmlMessage fromXml(String xml) {
@@ -423,67 +427,67 @@ public class WxXmlMessage {
}

public String getStatus() {
return Status;
return status;
}

public void setStatus(String status) {
Status = status;
this.status = status;
}

public Integer getTotalCount() {
return TotalCount;
return totalCount;
}

public void setTotalCount(Integer totalCount) {
TotalCount = totalCount;
this.totalCount = totalCount;
}

public Integer getFilterCount() {
return FilterCount;
return filterCount;
}

public void setFilterCount(Integer filterCount) {
FilterCount = filterCount;
this.filterCount = filterCount;
}

public Integer getSentCount() {
return SentCount;
return sentCount;
}

public void setSentCount(Integer sentCount) {
SentCount = sentCount;
this.sentCount = sentCount;
}

public Integer getErrorCount() {
return ErrorCount;
return errorCount;
}

public void setErrorCount(Integer errorCount) {
ErrorCount = errorCount;
this.errorCount = errorCount;
}

public WxXmlMessage.ScanCodeInfo getScanCodeInfo() {
return ScanCodeInfo;
return scanCodeInfo;
}

public void setScanCodeInfo(WxXmlMessage.ScanCodeInfo scanCodeInfo) {
ScanCodeInfo = scanCodeInfo;
this.scanCodeInfo = scanCodeInfo;
}

public WxXmlMessage.SendPicsInfo getSendPicsInfo() {
return SendPicsInfo;
return sendPicsInfo;
}

public void setSendPicsInfo(WxXmlMessage.SendPicsInfo sendPicsInfo) {
SendPicsInfo = sendPicsInfo;
this.sendPicsInfo = sendPicsInfo;
}

public WxXmlMessage.SendLocationInfo getSendLocationInfo() {
return SendLocationInfo;
return sendLocationInfo;
}

public void setSendLocationInfo(WxXmlMessage.SendLocationInfo sendLocationInfo) {
SendLocationInfo = sendLocationInfo;
this.sendLocationInfo = sendLocationInfo;
}

@XmlRootElement(name = "ScanCodeInfo")
@@ -492,11 +496,11 @@ public class WxXmlMessage {

@XmlElement(name = "ScanType")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String ScanType;
private String scanType;

@XmlElement(name = "ScanResult")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String ScanResult;
private String scanResult;

/**
* 扫描类型,一般是qrcode
@@ -504,11 +508,11 @@ public class WxXmlMessage {
*/
public String getScanType() {

return ScanType;
return scanType;
}

public void setScanType(String scanType) {
ScanType = scanType;
this.scanType = scanType;
}

/**
@@ -516,11 +520,11 @@ public class WxXmlMessage {
* @return
*/
public String getScanResult() {
return ScanResult;
return scanResult;
}

public void setScanResult(String scanResult) {
ScanResult = scanResult;
this.scanResult = scanResult;
}

}
@@ -529,22 +533,23 @@ public class WxXmlMessage {
@XmlAccessorType(XmlAccessType.FIELD)
public static class SendPicsInfo {

private Long Count;
@XmlElement(name = "Count")
private Long count;

@XmlElementWrapper(name="PicList")
@XmlElement(name = "item")
protected final List<Item> PicList = new ArrayList<Item>();
protected final List<Item> picList = new ArrayList<Item>();

public Long getCount() {
return Count;
return count;
}

public void setCount(Long count) {
Count = count;
this.count = count;
}

public List<Item> getPicList() {
return PicList;
return picList;
}

@XmlRootElement(name = "item")
@@ -572,62 +577,62 @@ public class WxXmlMessage {

@XmlElement(name = "Location_X")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Location_X;
private String locationX;

@XmlElement(name = "Location_Y")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Location_Y;
private String locationY;

@XmlElement(name = "Scale")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Scale;
private String scale;

@XmlElement(name = "Label")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Label;
private String label;

@XmlElement(name = "Poiname")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Poiname;
private String poiname;

public String getLocation_X() {
return Location_X;
public String getLocationX() {
return locationX;
}

public void setLocation_X(String location_X) {
Location_X = location_X;
public void setLocationX(String locationX) {
this.locationX = locationX;
}

public String getLocation_Y() {
return Location_Y;
public String getLocationY() {
return locationY;
}

public void setLocation_Y(String location_Y) {
Location_Y = location_Y;
public void setLocationY(String locationY) {
this.locationY = locationY;
}

public String getScale() {
return Scale;
return scale;
}

public void setScale(String scale) {
Scale = scale;
this.scale = scale;
}

public String getLabel() {
return Label;
return label;
}

public void setLabel(String label) {
Label = label;
this.label = label;
}

public String getPoiname() {
return Poiname;
return poiname;
}

public void setPoiname(String poiname) {
Poiname = poiname;
this.poiname = poiname;
}
}



+ 4
- 4
src/main/java/me/chanjar/weixin/bean/WxXmlOutImageMessage.java Переглянути файл

@@ -15,18 +15,18 @@ public class WxXmlOutImageMessage extends WxXmlOutMessage {
@XmlElement(name="Image")
@XmlJavaTypeAdapter(MediaIdMarshaller.class)
private String MediaId;
private String mediaId;

public WxXmlOutImageMessage() {
this.MsgType = WxConsts.XML_MSG_IMAGE;
this.msgType = WxConsts.XML_MSG_IMAGE;
}
public String getMediaId() {
return MediaId;
return mediaId;
}

public void setMediaId(String mediaId) {
MediaId = mediaId;
this.mediaId = mediaId;
}
}

+ 12
- 12
src/main/java/me/chanjar/weixin/bean/WxXmlOutMessage.java Переглянути файл

@@ -24,49 +24,49 @@ public class WxXmlOutMessage {

@XmlElement(name="ToUserName")
@XmlJavaTypeAdapter(AdapterCDATA.class)
protected String ToUserName;
protected String toUserName;
@XmlElement(name="FromUserName")
@XmlJavaTypeAdapter(AdapterCDATA.class)
protected String FromUserName;
protected String fromUserName;
@XmlElement(name="CreateTime")
protected Long CreateTime;
protected Long createTime;
@XmlElement(name="MsgType")
@XmlJavaTypeAdapter(AdapterCDATA.class)
protected String MsgType;
protected String msgType;

public String getToUserName() {
return ToUserName;
return toUserName;
}

public void setToUserName(String toUserName) {
ToUserName = toUserName;
this.toUserName = toUserName;
}

public String getFromUserName() {
return FromUserName;
return fromUserName;
}

public void setFromUserName(String fromUserName) {
FromUserName = fromUserName;
this.fromUserName = fromUserName;
}

public Long getCreateTime() {
return CreateTime;
return createTime;
}

public void setCreateTime(Long createTime) {
CreateTime = createTime;
this.createTime = createTime;
}

public String getMsgType() {
return MsgType;
return msgType;
}

public void setMsgType(String msgType) {
MsgType = msgType;
this.msgType = msgType;
}
public String toXml() {


+ 7
- 7
src/main/java/me/chanjar/weixin/bean/WxXmlOutMewsMessage.java Переглянути файл

@@ -18,27 +18,27 @@ import me.chanjar.weixin.util.xml.AdapterCDATA;
public class WxXmlOutMewsMessage extends WxXmlOutMessage {

@XmlElement(name = "ArticleCount")
protected int ArticleCount;
protected int articleCount;
@XmlElementWrapper(name="Articles")
@XmlElement(name = "Item")
protected final List<Item> Articles = new ArrayList<Item>();
protected final List<Item> articles = new ArrayList<Item>();
public WxXmlOutMewsMessage() {
this.MsgType = WxConsts.XML_MSG_NEWS;
this.msgType = WxConsts.XML_MSG_NEWS;
}

public int getArticleCount() {
return ArticleCount;
return articleCount;
}

public void addArticle(Item item) {
this.Articles.add(item);
this.ArticleCount = this.Articles.size();
this.articles.add(item);
this.articleCount = this.articles.size();
}
public List<Item> getArticles() {
return Articles;
return articles;
}


+ 22
- 22
src/main/java/me/chanjar/weixin/bean/WxXmlOutMusicMessage.java Переглянути файл

@@ -17,7 +17,7 @@ public class WxXmlOutMusicMessage extends WxXmlOutMessage {
protected final Music music = new Music();

public WxXmlOutMusicMessage() {
this.MsgType = WxConsts.XML_MSG_MUSIC;
this.msgType = WxConsts.XML_MSG_MUSIC;
}

public String getTitle() {
@@ -52,12 +52,12 @@ public class WxXmlOutMusicMessage extends WxXmlOutMessage {
music.setMusicUrl(musicUrl);
}

public String getHQMusicUrl() {
return music.getHQMusicUrl();
public String getHqMusicUrl() {
return music.getHqMusicUrl();
}

public void setHQMusicUrl(String hQMusicUrl) {
music.setHQMusicUrl(hQMusicUrl);
public void setHqMusicUrl(String hqMusicUrl) {
music.setHqMusicUrl(hqMusicUrl);
}
@XmlRootElement(name = "Music")
@@ -66,62 +66,62 @@ public class WxXmlOutMusicMessage extends WxXmlOutMessage {
@XmlElement(name = "Title")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Title;
private String title;

@XmlElement(name = "Description")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Description;
private String description;

@XmlElement(name="ThumbMediaId")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String ThumbMediaId;
private String thumbMediaId;
@XmlElement(name="MusicUrl")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String MusicUrl;
private String musicUrl;
@XmlElement(name="HQMusicUrl")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String HQMusicUrl;
private String hqMusicUrl;
public String getTitle() {
return Title;
return title;
}

public void setTitle(String title) {
Title = title;
this.title = title;
}

public String getDescription() {
return Description;
return description;
}

public void setDescription(String description) {
Description = description;
this.description = description;
}

public String getThumbMediaId() {
return ThumbMediaId;
return thumbMediaId;
}

public void setThumbMediaId(String thumbMediaId) {
ThumbMediaId = thumbMediaId;
this.thumbMediaId = thumbMediaId;
}

public String getMusicUrl() {
return MusicUrl;
return musicUrl;
}

public void setMusicUrl(String musicUrl) {
MusicUrl = musicUrl;
this.musicUrl = musicUrl;
}

public String getHQMusicUrl() {
return HQMusicUrl;
public String getHqMusicUrl() {
return hqMusicUrl;
}

public void setHQMusicUrl(String hQMusicUrl) {
HQMusicUrl = hQMusicUrl;
public void setHqMusicUrl(String hqMusicUrl) {
this.hqMusicUrl = hqMusicUrl;
}
}


+ 4
- 4
src/main/java/me/chanjar/weixin/bean/WxXmlOutTextMessage.java Переглянути файл

@@ -15,18 +15,18 @@ public class WxXmlOutTextMessage extends WxXmlOutMessage {
@XmlElement(name="Content")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Content;
private String content;

public WxXmlOutTextMessage() {
this.MsgType = WxConsts.XML_MSG_TEXT;
this.msgType = WxConsts.XML_MSG_TEXT;
}
public String getContent() {
return Content;
return content;
}

public void setContent(String content) {
Content = content;
this.content = content;
}



+ 10
- 10
src/main/java/me/chanjar/weixin/bean/WxXmlOutVideoMessage.java Переглянути файл

@@ -17,7 +17,7 @@ public class WxXmlOutVideoMessage extends WxXmlOutMessage {
protected final Video video = new Video();

public WxXmlOutVideoMessage() {
this.MsgType = WxConsts.XML_MSG_VIDEO;
this.msgType = WxConsts.XML_MSG_VIDEO;
}

public String getMediaId() {
@@ -51,38 +51,38 @@ public class WxXmlOutVideoMessage extends WxXmlOutMessage {
@XmlElement(name = "MediaId")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String MediaId;
private String mediaId;

@XmlElement(name = "Title")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Title;
private String title;

@XmlElement(name = "Description")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Description;
private String description;

public String getMediaId() {
return MediaId;
return mediaId;
}

public void setMediaId(String mediaId) {
MediaId = mediaId;
this.mediaId = mediaId;
}

public String getTitle() {
return Title;
return title;
}

public void setTitle(String title) {
Title = title;
this.title = title;
}

public String getDescription() {
return Description;
return description;
}

public void setDescription(String description) {
Description = description;
this.description = description;
}
}


+ 4
- 4
src/main/java/me/chanjar/weixin/bean/WxXmlOutVoiceMessage.java Переглянути файл

@@ -15,18 +15,18 @@ public class WxXmlOutVoiceMessage extends WxXmlOutMessage {
@XmlElement(name="Voice")
@XmlJavaTypeAdapter(MediaIdMarshaller.class)
private String MediaId;
private String mediaId;

public WxXmlOutVoiceMessage() {
this.MsgType = WxConsts.XML_MSG_VOICE;
this.msgType = WxConsts.XML_MSG_VOICE;
}
public String getMediaId() {
return MediaId;
return mediaId;
}

public void setMediaId(String mediaId) {
MediaId = mediaId;
this.mediaId = mediaId;
}
}

+ 3
- 3
src/main/java/me/chanjar/weixin/bean/custombuilder/BaseBuilder.java Переглянути файл

@@ -3,7 +3,7 @@ package me.chanjar.weixin.bean.custombuilder;
import me.chanjar.weixin.bean.WxCustomMessage;

public class BaseBuilder<T> {
protected String msgtype;
protected String msgType;
protected String toUser;

public T toUser(String toUser) {
@@ -13,8 +13,8 @@ public class BaseBuilder<T> {

public WxCustomMessage build() {
WxCustomMessage m = new WxCustomMessage();
m.setMsgtype(this.msgtype);
m.setTouser(this.toUser);
m.setMsgType(this.msgType);
m.setToUser(this.toUser);
return m;
}
}

+ 5
- 5
src/main/java/me/chanjar/weixin/bean/custombuilder/ImageBuilder.java Переглянути файл

@@ -6,26 +6,26 @@ import me.chanjar.weixin.bean.WxCustomMessage;
/**
* 获得消息builder
* <pre>
* 用法: WxCustomMessage m = WxCustomMessage.IMAGE().media_id(...).touser(...).build();
* 用法: WxCustomMessage m = WxCustomMessage.IMAGE().mediaId(...).touser(...).build();
* </pre>
* @author chanjarster
*
*/
public final class ImageBuilder extends BaseBuilder<ImageBuilder> {
private String media_id;
private String mediaId;

public ImageBuilder() {
this.msgtype = WxConsts.CUSTOM_MSG_IMAGE;
this.msgType = WxConsts.CUSTOM_MSG_IMAGE;
}

public ImageBuilder mediaId(String media_id) {
this.media_id = media_id;
this.mediaId = media_id;
return this;
}

public WxCustomMessage build() {
WxCustomMessage m = super.build();
m.setMedia_id(this.media_id);
m.setMediaId(this.mediaId);
return m;
}
}

+ 14
- 14
src/main/java/me/chanjar/weixin/bean/custombuilder/MusicBuilder.java Переглянути файл

@@ -7,10 +7,10 @@ import me.chanjar.weixin.bean.WxCustomMessage;
* 音乐消息builder
* <pre>
* 用法: WxCustomMessage m = WxCustomMessage.MUSIC()
* .musicurl(...)
* .hqmusicurl(...)
* .musicUrl(...)
* .hqMusicUrl(...)
* .title(...)
* .thumb_media_id(..)
* .thumbMediaId(..)
* .description(..)
* .touser(...)
* .build();
@@ -19,21 +19,21 @@ import me.chanjar.weixin.bean.WxCustomMessage;
public final class MusicBuilder extends BaseBuilder<MusicBuilder> {
private String title;
private String description;
private String thumb_media_id;
private String musicurl;
private String hqmusicurl;
private String thumbMediaId;
private String musicUrl;
private String hqMusicUrl;

public MusicBuilder() {
this.msgtype = WxConsts.CUSTOM_MSG_MUSIC;
this.msgType = WxConsts.CUSTOM_MSG_MUSIC;
}

public MusicBuilder musicUrl(String musicurl) {
this.musicurl = musicurl;
this.musicUrl = musicurl;
return this;
}

public MusicBuilder hqmusicUrl(String hqmusicurl) {
this.hqmusicurl = hqmusicurl;
public MusicBuilder hqMusicUrl(String hqMusicurl) {
this.hqMusicUrl = hqMusicurl;
return this;
}

@@ -48,17 +48,17 @@ public final class MusicBuilder extends BaseBuilder<MusicBuilder> {
}

public MusicBuilder thumbMediaId(String thumb_media_id) {
this.thumb_media_id = thumb_media_id;
this.thumbMediaId = thumb_media_id;
return this;
}

public WxCustomMessage build() {
WxCustomMessage m = super.build();
m.setMusicurl(this.musicurl);
m.setHqmusicurl(this.hqmusicurl);
m.setMusicUrl(this.musicUrl);
m.setHqMusicUrl(this.hqMusicUrl);
m.setTitle(title);
m.setDescription(description);
m.setThumb_media_id(thumb_media_id);
m.setThumbMediaId(thumbMediaId);
return m;
}
}

+ 1
- 1
src/main/java/me/chanjar/weixin/bean/custombuilder/NewsBuilder.java Переглянути файл

@@ -20,7 +20,7 @@ public final class NewsBuilder extends BaseBuilder<NewsBuilder> {
private List<WxCustomMessage.WxArticle> articles = new ArrayList<WxCustomMessage.WxArticle>();
public NewsBuilder() {
this.msgtype = WxConsts.CUSTOM_MSG_NEWS;
this.msgType = WxConsts.CUSTOM_MSG_NEWS;
}

public NewsBuilder addArticle(WxCustomMessage.WxArticle article) {


+ 1
- 1
src/main/java/me/chanjar/weixin/bean/custombuilder/TextBuilder.java Переглянути файл

@@ -15,7 +15,7 @@ public final class TextBuilder extends BaseBuilder<TextBuilder> {
private String content;

public TextBuilder() {
this.msgtype = WxConsts.CUSTOM_MSG_TEXT;
this.msgType = WxConsts.CUSTOM_MSG_TEXT;
}

public TextBuilder content(String content) {


+ 10
- 10
src/main/java/me/chanjar/weixin/bean/custombuilder/VideoBuilder.java Переглянути файл

@@ -7,9 +7,9 @@ import me.chanjar.weixin.bean.WxCustomMessage;
* 视频消息builder
* <pre>
* 用法: WxCustomMessage m = WxCustomMessage.VOICE()
* .media_id(...)
* .mediaId(...)
* .title(...)
* .thumb_media_id(..)
* .thumbMediaId(..)
* .description(..)
* .touser(...)
* .build();
@@ -18,17 +18,17 @@ import me.chanjar.weixin.bean.WxCustomMessage;
*
*/
public final class VideoBuilder extends BaseBuilder<VideoBuilder> {
private String media_id;
private String mediaId;
private String title;
private String description;
private String thumb_media_id;
private String thumbMediaId;

public VideoBuilder() {
this.msgtype = WxConsts.CUSTOM_MSG_VIDEO;
this.msgType = WxConsts.CUSTOM_MSG_VIDEO;
}

public VideoBuilder mediaId(String media_id) {
this.media_id = media_id;
public VideoBuilder mediaId(String mediaId) {
this.mediaId = mediaId;
return this;
}

@@ -43,16 +43,16 @@ public final class VideoBuilder extends BaseBuilder<VideoBuilder> {
}

public VideoBuilder thumbMediaId(String thumb_media_id) {
this.thumb_media_id = thumb_media_id;
this.thumbMediaId = thumb_media_id;
return this;
}

public WxCustomMessage build() {
WxCustomMessage m = super.build();
m.setMedia_id(this.media_id);
m.setMediaId(this.mediaId);
m.setTitle(title);
m.setDescription(description);
m.setThumb_media_id(thumb_media_id);
m.setThumbMediaId(thumbMediaId);
return m;
}
}

+ 5
- 5
src/main/java/me/chanjar/weixin/bean/custombuilder/VoiceBuilder.java Переглянути файл

@@ -6,26 +6,26 @@ import me.chanjar.weixin.bean.WxCustomMessage;
/**
* 语音消息builder
* <pre>
* 用法: WxCustomMessage m = WxCustomMessage.VOICE().media_id(...).touser(...).build();
* 用法: WxCustomMessage m = WxCustomMessage.VOICE().mediaId(...).touser(...).build();
* </pre>
* @author chanjarster
*
*/
public final class VoiceBuilder extends BaseBuilder<VoiceBuilder> {
private String media_id;
private String mediaId;

public VoiceBuilder() {
this.msgtype = WxConsts.CUSTOM_MSG_VOICE;
this.msgType = WxConsts.CUSTOM_MSG_VOICE;
}

public VoiceBuilder mediaId(String media_id) {
this.media_id = media_id;
this.mediaId = media_id;
return this;
}

public WxCustomMessage build() {
WxCustomMessage m = super.build();
m.setMedia_id(this.media_id);
m.setMediaId(this.mediaId);
return m;
}
}

+ 4
- 4
src/main/java/me/chanjar/weixin/bean/outxmlbuilder/MusicBuilder.java Переглянути файл

@@ -11,7 +11,7 @@ public final class MusicBuilder extends BaseBuilder<MusicBuilder, WxXmlOutMusicM

private String title;
private String description;
private String hQMusicUrl;
private String hqMusicUrl;
private String musicUrl;
private String thumbMediaId;

@@ -25,8 +25,8 @@ public final class MusicBuilder extends BaseBuilder<MusicBuilder, WxXmlOutMusicM
return this;
}

public MusicBuilder hqmusicUrl(String hQMusicUrl) {
this.hQMusicUrl = hQMusicUrl;
public MusicBuilder hqMusicUrl(String hqMusicUrl) {
this.hqMusicUrl = hqMusicUrl;
return this;
}

@@ -45,7 +45,7 @@ public final class MusicBuilder extends BaseBuilder<MusicBuilder, WxXmlOutMusicM
setCommon(m);
m.setTitle(title);
m.setDescription(description);
m.setHQMusicUrl(hQMusicUrl);
m.setHqMusicUrl(hqMusicUrl);
m.setMusicUrl(musicUrl);
m.setThumbMediaId(thumbMediaId);
return m;


+ 12
- 12
src/main/java/me/chanjar/weixin/bean/result/WxError.java Переглянути файл

@@ -100,28 +100,28 @@ public class WxError {
errMap.put(50001, "用户未授权该api");
}
protected int errcode;
protected int errorCode;
protected String errmsg;
protected String errorMsg;

public int getErrcode() {
return errcode;
public int getErrorCode() {
return errorCode;
}

public void setErrcode(int errcode) {
this.errcode = errcode;
public void setErrorCode(int errorCode) {
this.errorCode = errorCode;
}

public String getErrmsg() {
return errmsg;
public String getErrorMsg() {
return errorMsg;
}

public void setErrmsg(String errmsg) {
this.errmsg = errmsg;
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}

public String getDescription() {
return errMap.get(errcode);
return errMap.get(errorCode);
}

public static WxError fromJson(String json) {
@@ -130,7 +130,7 @@ public class WxError {

@Override
public String toString() {
return "微信错误 errcode=" + errcode + ", errmsg=" + errmsg + ", description=" + getDescription();
return "微信错误 errcode=" + errorCode + ", errmsg=" + errorMsg + ", description=" + getDescription();
}

}

+ 16
- 16
src/main/java/me/chanjar/weixin/bean/result/WxMassSendResult.java Переглянути файл

@@ -15,32 +15,32 @@ import me.chanjar.weixin.util.json.WxGsonBuilder;
*/
public class WxMassSendResult {

private String errcode;
private String errmsg;
private String msg_id;
private String errorCode;
private String errorMsg;
private String msgId;

public String getErrcode() {
return errcode;
public String getErrorCode() {
return errorCode;
}

public void setErrcode(String errcode) {
this.errcode = errcode;
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}

public String getErrmsg() {
return errmsg;
public String getErrorMsg() {
return errorMsg;
}

public void setErrmsg(String errmsg) {
this.errmsg = errmsg;
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}

public String getMsg_id() {
return msg_id;
public String getMsgId() {
return msgId;
}

public void setMsg_id(String msg_id) {
this.msg_id = msg_id;
public void setMsgId(String msgId) {
this.msgId = msgId;
}
public static WxMassSendResult fromJson(String json) {
@@ -49,7 +49,7 @@ public class WxMassSendResult {

@Override
public String toString() {
return "WxMassSendResult [errcode=" + errcode + ", errmsg=" + errmsg + ", msg_id=" + msg_id + "]";
return "WxMassSendResult [errcode=" + errorCode + ", errmsg=" + errorMsg + ", msg_id=" + msgId + "]";
}
}

+ 11
- 11
src/main/java/me/chanjar/weixin/bean/result/WxMassUploadResult.java Переглянути файл

@@ -13,8 +13,8 @@ import me.chanjar.weixin.util.json.WxGsonBuilder;
public class WxMassUploadResult {

private String type;
private String media_id;
private long created_at;
private String mediaId;
private long createdAt;

public String getType() {
return type;
@@ -24,20 +24,20 @@ public class WxMassUploadResult {
this.type = type;
}

public String getMedia_id() {
return media_id;
public String getMediaId() {
return mediaId;
}

public void setMedia_id(String media_id) {
this.media_id = media_id;
public void setMediaId(String mediaId) {
this.mediaId = mediaId;
}

public long getCreated_at() {
return created_at;
public long getCreatedAt() {
return createdAt;
}

public void setCreated_at(long created_at) {
this.created_at = created_at;
public void setCreatedAt(long createdAt) {
this.createdAt = createdAt;
}

public static WxMassUploadResult fromJson(String json) {
@@ -46,7 +46,7 @@ public class WxMassUploadResult {

@Override
public String toString() {
return "WxUploadResult [type=" + type + ", media_id=" + media_id + ", created_at=" + created_at + "]";
return "WxUploadResult [type=" + type + ", media_id=" + mediaId + ", created_at=" + createdAt + "]";
}

}

+ 17
- 17
src/main/java/me/chanjar/weixin/bean/result/WxMediaUploadResult.java Переглянути файл

@@ -5,9 +5,9 @@ import me.chanjar.weixin.util.json.WxGsonBuilder;
public class WxMediaUploadResult {

private String type;
private String media_id;
private String thumb_media_id;
private long created_at;
private String mediaId;
private String thumbMediaId;
private long createdAt;

public String getType() {
return type;
@@ -17,38 +17,38 @@ public class WxMediaUploadResult {
this.type = type;
}

public String getMedia_id() {
return media_id;
public String getMediaId() {
return mediaId;
}

public void setMedia_id(String media_id) {
this.media_id = media_id;
public void setMediaId(String mediaId) {
this.mediaId = mediaId;
}

public long getCreated_at() {
return created_at;
public long getCreatedAt() {
return createdAt;
}

public void setCreated_at(long created_at) {
this.created_at = created_at;
public void setCreatedAt(long createdAt) {
this.createdAt = createdAt;
}

public static WxMediaUploadResult fromJson(String json) {
return WxGsonBuilder.create().fromJson(json, WxMediaUploadResult.class);
}

public String getThumb_media_id() {
return thumb_media_id;
public String getThumbMediaId() {
return thumbMediaId;
}

public void setThumb_media_id(String thumb_media_id) {
this.thumb_media_id = thumb_media_id;
public void setThumbMediaId(String thumbMediaId) {
this.thumbMediaId = thumbMediaId;
}

@Override
public String toString() {
return "WxUploadResult [type=" + type + ", media_id=" + media_id + ", thumb_media_id=" + thumb_media_id
+ ", created_at=" + created_at + "]";
return "WxUploadResult [type=" + type + ", media_id=" + mediaId + ", thumb_media_id=" + thumbMediaId
+ ", created_at=" + createdAt + "]";
}

}

+ 20
- 20
src/main/java/me/chanjar/weixin/bean/result/WxUser.java Переглянути файл

@@ -10,16 +10,16 @@ import me.chanjar.weixin.util.json.WxGsonBuilder;
public class WxUser {

protected boolean subscribe;
protected String openid;
protected String openId;
protected String nickname;
protected String sex;
protected String language;
protected String city;
protected String province;
protected String country;
protected String headimgurl;
protected long subscribe_time;
protected String unionid;
protected String headImgUrl;
protected long subscribeTime;
protected String unionId;
public boolean isSubscribe() {
return subscribe;
@@ -27,11 +27,11 @@ public class WxUser {
public void setSubscribe(boolean subscribe) {
this.subscribe = subscribe;
}
public String getOpenid() {
return openid;
public String getOpenId() {
return openId;
}
public void setOpenid(String openid) {
this.openid = openid;
public void setOpenId(String openId) {
this.openId = openId;
}
public String getNickname() {
return nickname;
@@ -69,23 +69,23 @@ public class WxUser {
public void setCountry(String country) {
this.country = country;
}
public String getHeadimgurl() {
return headimgurl;
public String getHeadImgUrl() {
return headImgUrl;
}
public void setHeadimgurl(String headimgurl) {
this.headimgurl = headimgurl;
public void setHeadImgUrl(String headImgUrl) {
this.headImgUrl = headImgUrl;
}
public long getSubscribe_time() {
return subscribe_time;
public long getSubscribeTime() {
return subscribeTime;
}
public void setSubscribe_time(long subscribe_time) {
this.subscribe_time = subscribe_time;
public void setSubscribeTime(long subscribeTime) {
this.subscribeTime = subscribeTime;
}
public String getUnionid() {
return unionid;
public String getUnionId() {
return unionId;
}
public void setUnionid(String unionid) {
this.unionid = unionid;
public void setUnionId(String unionId) {
this.unionId = unionId;
}
public static WxUser fromJson(String json) {


+ 10
- 10
src/main/java/me/chanjar/weixin/bean/result/WxUserList.java Переглянути файл

@@ -15,8 +15,8 @@ public class WxUserList {

protected int total = -1;
protected int count = -1;
protected List<String> openids = new ArrayList<String>();
protected String next_openid;
protected List<String> openIds = new ArrayList<String>();
protected String nextOpenId;
public int getTotal() {
return total;
}
@@ -29,17 +29,17 @@ public class WxUserList {
public void setCount(int count) {
this.count = count;
}
public List<String> getOpenids() {
return openids;
public List<String> getOpenIds() {
return openIds;
}
public void setOpenids(List<String> openids) {
this.openids = openids;
public void setOpenIds(List<String> openIds) {
this.openIds = openIds;
}
public String getNext_openid() {
return next_openid;
public String getNextOpenId() {
return nextOpenId;
}
public void setNext_openid(String next_openid) {
this.next_openid = next_openid;
public void setNextOpenId(String nextOpenId) {
this.nextOpenId = nextOpenId;
}
public static WxUserList fromJson(String json) {


+ 1
- 1
src/main/java/me/chanjar/weixin/util/http/MediaUploadRequestExecutor.java Переглянути файл

@@ -35,7 +35,7 @@ public class MediaUploadRequestExecutor implements RequestExecutor<WxMediaUpload
CloseableHttpResponse response = httpclient.execute(httpPost);
String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response);
WxError error = WxError.fromJson(responseContent);
if (error.getErrcode() != 0) {
if (error.getErrorCode() != 0) {
throw new WxErrorException(error);
}
return WxMediaUploadResult.fromJson(responseContent);


+ 1
- 1
src/main/java/me/chanjar/weixin/util/http/SimpleGetRequestExecutor.java Переглянути файл

@@ -28,7 +28,7 @@ public class SimpleGetRequestExecutor implements RequestExecutor<String, String>
CloseableHttpResponse response = httpclient.execute(httpGet);
String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response);
WxError error = WxError.fromJson(responseContent);
if (error.getErrcode() != 0) {
if (error.getErrorCode() != 0) {
throw new WxErrorException(error);
}
return responseContent;


+ 1
- 1
src/main/java/me/chanjar/weixin/util/http/SimplePostRequestExecutor.java Переглянути файл

@@ -27,7 +27,7 @@ public class SimplePostRequestExecutor implements RequestExecutor<String, String
CloseableHttpResponse response = httpclient.execute(httpPost);
String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response);
WxError error = WxError.fromJson(responseContent);
if (error.getErrcode() != 0) {
if (error.getErrorCode() != 0) {
throw new WxErrorException(error);
}
return responseContent;


+ 36
- 0
src/main/java/me/chanjar/weixin/util/json/WxAccessTokenAdapter.java Переглянути файл

@@ -0,0 +1,36 @@
/*
* KINGSTAR MEDIA SOLUTIONS Co.,LTD. Copyright c 2005-2013. All rights reserved.
*
* This source code is the property of KINGSTAR MEDIA SOLUTIONS LTD. It is intended
* only for the use of KINGSTAR MEDIA application development. Reengineering, reproduction
* arose from modification of the original source, or other redistribution of this source
* is not permitted without written permission of the KINGSTAR MEDIA SOLUTIONS LTD.
*/
package me.chanjar.weixin.util.json;

import com.google.gson.*;
import me.chanjar.weixin.bean.WxAccessToken;

import java.lang.reflect.Type;

/**
*
* @author Daniel Qian
*
*/
public class WxAccessTokenAdapter implements JsonDeserializer<WxAccessToken> {

public WxAccessToken deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
WxAccessToken accessToken = new WxAccessToken();
JsonObject accessTokenJsonObject = json.getAsJsonObject();

if (accessTokenJsonObject.get("access_token") != null && !accessTokenJsonObject.get("access_token").isJsonNull()) {
accessToken.setAccessToken(GsonHelper.getAsString(accessTokenJsonObject.get("access_token")));
}
if (accessTokenJsonObject.get("expires_in") != null && !accessTokenJsonObject.get("expires_in").isJsonNull()) {
accessToken.setExpiresIn(GsonHelper.getAsPrimitiveInt(accessTokenJsonObject.get("expires_in")));
}
return accessToken;
}
}

+ 16
- 16
src/main/java/me/chanjar/weixin/util/json/WxCustomMessageGsonAdapter.java Переглянути файл

@@ -28,54 +28,54 @@ public class WxCustomMessageGsonAdapter implements JsonSerializer<WxCustomMessag

public JsonElement serialize(WxCustomMessage message, Type typeOfSrc, JsonSerializationContext context) {
JsonObject messageJson = new JsonObject();
messageJson.addProperty("touser", message.getTouser());
messageJson.addProperty("msgtype", message.getMsgtype());
messageJson.addProperty("touser", message.getToUser());
messageJson.addProperty("msgtype", message.getMsgType());
if (WxConsts.CUSTOM_MSG_TEXT.equals(message.getMsgtype())) {
if (WxConsts.CUSTOM_MSG_TEXT.equals(message.getMsgType())) {
JsonObject text = new JsonObject();
text.addProperty("content", message.getContent());
messageJson.add("text", text);
}

if (WxConsts.CUSTOM_MSG_IMAGE.equals(message.getMsgtype())) {
if (WxConsts.CUSTOM_MSG_IMAGE.equals(message.getMsgType())) {
JsonObject image = new JsonObject();
image.addProperty("media_id", message.getMedia_id());
image.addProperty("media_id", message.getMediaId());
messageJson.add("image", image);
}

if (WxConsts.CUSTOM_MSG_VOICE.equals(message.getMsgtype())) {
if (WxConsts.CUSTOM_MSG_VOICE.equals(message.getMsgType())) {
JsonObject voice = new JsonObject();
voice.addProperty("media_id", message.getMedia_id());
voice.addProperty("media_id", message.getMediaId());
messageJson.add("voice", voice);
}

if (WxConsts.CUSTOM_MSG_VIDEO.equals(message.getMsgtype())) {
if (WxConsts.CUSTOM_MSG_VIDEO.equals(message.getMsgType())) {
JsonObject video = new JsonObject();
video.addProperty("media_id", message.getMedia_id());
video.addProperty("thumb_media_id", message.getThumb_media_id());
video.addProperty("media_id", message.getMediaId());
video.addProperty("thumb_media_id", message.getThumbMediaId());
video.addProperty("title", message.getTitle());
video.addProperty("description", message.getDescription());
messageJson.add("video", video);
}

if (WxConsts.CUSTOM_MSG_MUSIC.equals(message.getMsgtype())) {
if (WxConsts.CUSTOM_MSG_MUSIC.equals(message.getMsgType())) {
JsonObject music = new JsonObject();
music.addProperty("title", message.getTitle());
music.addProperty("description", message.getDescription());
music.addProperty("thumb_media_id", message.getThumb_media_id());
music.addProperty("musicurl", message.getMusicurl());
music.addProperty("hqmusicurl", message.getHqmusicurl());
music.addProperty("thumb_media_id", message.getThumbMediaId());
music.addProperty("musicurl", message.getMusicUrl());
music.addProperty("hqmusicurl", message.getHqMusicUrl());
messageJson.add("music", music);
}
if (WxConsts.CUSTOM_MSG_NEWS.equals(message.getMsgtype())) {
if (WxConsts.CUSTOM_MSG_NEWS.equals(message.getMsgType())) {
JsonArray articleJsonArray = new JsonArray();
for (WxCustomMessage.WxArticle article : message.getArticles()) {
JsonObject articleJson = new JsonObject();
articleJson.addProperty("title", article.getTitle());
articleJson.addProperty("description", article.getDescription());
articleJson.addProperty("url", article.getUrl());
articleJson.addProperty("picurl", article.getPicurl());
articleJson.addProperty("picurl", article.getPicUrl());
articleJsonArray.add(articleJson);
}
messageJson.add("articles", articleJsonArray);


+ 37
- 0
src/main/java/me/chanjar/weixin/util/json/WxErrorAdapter.java Переглянути файл

@@ -0,0 +1,37 @@
/*
* KINGSTAR MEDIA SOLUTIONS Co.,LTD. Copyright c 2005-2013. All rights reserved.
*
* This source code is the property of KINGSTAR MEDIA SOLUTIONS LTD. It is intended
* only for the use of KINGSTAR MEDIA application development. Reengineering, reproduction
* arose from modification of the original source, or other redistribution of this source
* is not permitted without written permission of the KINGSTAR MEDIA SOLUTIONS LTD.
*/
package me.chanjar.weixin.util.json;

import com.google.gson.*;
import me.chanjar.weixin.bean.WxAccessToken;
import me.chanjar.weixin.bean.result.WxError;

import java.lang.reflect.Type;

/**
*
* @author Daniel Qian
*
*/
public class WxErrorAdapter implements JsonDeserializer<WxError> {

public WxError deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
WxError wxError = new WxError();
JsonObject wxErrorJsonObject = json.getAsJsonObject();

if (wxErrorJsonObject.get("errcode") != null && !wxErrorJsonObject.get("errcode").isJsonNull()) {
wxError.setErrorCode(GsonHelper.getAsPrimitiveInt(wxErrorJsonObject.get("errcode")));
}
if (wxErrorJsonObject.get("errmsg") != null && !wxErrorJsonObject.get("errmsg").isJsonNull()) {
wxError.setErrorMsg(GsonHelper.getAsString(wxErrorJsonObject.get("errmsg")));
}
return wxError;
}
}

+ 9
- 8
src/main/java/me/chanjar/weixin/util/json/WxGsonBuilder.java Переглянути файл

@@ -1,13 +1,7 @@
package me.chanjar.weixin.util.json;

import me.chanjar.weixin.bean.WxCustomMessage;
import me.chanjar.weixin.bean.WxGroup;
import me.chanjar.weixin.bean.WxMassGroupMessage;
import me.chanjar.weixin.bean.WxMassNews;
import me.chanjar.weixin.bean.WxMassOpenIdsMessage;
import me.chanjar.weixin.bean.WxMenu;
import me.chanjar.weixin.bean.result.WxUser;
import me.chanjar.weixin.bean.result.WxUserList;
import me.chanjar.weixin.bean.*;
import me.chanjar.weixin.bean.result.*;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -26,6 +20,13 @@ public class WxGsonBuilder {
INSTANCE.registerTypeAdapter(WxGroup.class, new WxGroupGsonAdapter());
INSTANCE.registerTypeAdapter(WxUser.class, new WxUserGsonAdapter());
INSTANCE.registerTypeAdapter(WxUserList.class, new WxUserListGsonAdapter());
INSTANCE.registerTypeAdapter(WxAccessToken.class, new WxAccessTokenAdapter());
INSTANCE.registerTypeAdapter(WxError.class, new WxErrorAdapter());
INSTANCE.registerTypeAdapter(WxMassVideo.class, new WxMassVideoAdapter());
INSTANCE.registerTypeAdapter(WxMediaUploadResult.class, new WxMediaUploadResultAdapter());
INSTANCE.registerTypeAdapter(WxMassSendResult.class, new WxMassSendResultAdapter());
INSTANCE.registerTypeAdapter(WxMassUploadResult.class, new WxMassUploadResultAdapter());
INSTANCE.registerTypeAdapter(WxQrCodeTicket.class, new WxQrCodeTicketAdapter());
}
public static Gson create() {


+ 5
- 5
src/main/java/me/chanjar/weixin/util/json/WxMassMessageGsonAdapter.java Переглянути файл

@@ -29,12 +29,12 @@ public class WxMassMessageGsonAdapter implements JsonSerializer<WxMassGroupMessa
JsonObject messageJson = new JsonObject();
JsonObject filter = new JsonObject();
filter.addProperty("group_id", message.getGroup_id());
filter.addProperty("group_id", message.getGroupId());
messageJson.add("filter", filter);
if (WxConsts.MASS_MSG_NEWS.equals(message.getMsgtype())) {
JsonObject sub = new JsonObject();
sub.addProperty("media_id", message.getMedia_id());
sub.addProperty("media_id", message.getMediaId());
messageJson.add(WxConsts.MASS_MSG_NEWS, sub);
}
if (WxConsts.MASS_MSG_TEXT.equals(message.getMsgtype())) {
@@ -44,17 +44,17 @@ public class WxMassMessageGsonAdapter implements JsonSerializer<WxMassGroupMessa
}
if (WxConsts.MASS_MSG_VOICE.equals(message.getMsgtype())) {
JsonObject sub = new JsonObject();
sub.addProperty("media_id", message.getMedia_id());
sub.addProperty("media_id", message.getMediaId());
messageJson.add(WxConsts.MASS_MSG_VOICE, sub);
}
if (WxConsts.MASS_MSG_IMAGE.equals(message.getMsgtype())) {
JsonObject sub = new JsonObject();
sub.addProperty("media_id", message.getMedia_id());
sub.addProperty("media_id", message.getMediaId());
messageJson.add(WxConsts.MASS_MSG_IMAGE, sub);
}
if (WxConsts.MASS_MSG_VIDEO.equals(message.getMsgtype())) {
JsonObject sub = new JsonObject();
sub.addProperty("media_id", message.getMedia_id());
sub.addProperty("media_id", message.getMediaId());
messageJson.add(WxConsts.MASS_MSG_VIDEO, sub);
}
messageJson.addProperty("msgtype", message.getMsgtype());


+ 4
- 4
src/main/java/me/chanjar/weixin/util/json/WxMassNewsGsonAdapter.java Переглянути файл

@@ -31,20 +31,20 @@ public class WxMassNewsGsonAdapter implements JsonSerializer<WxMassNews> {
JsonArray articleJsonArray = new JsonArray();
for (WxMassNews.WxMassNewsArticle article : message.getArticles()) {
JsonObject articleJson = new JsonObject();
articleJson.addProperty("thumb_media_id", article.getThumb_media_id());
articleJson.addProperty("thumb_media_id", article.getThumbMediaId());
articleJson.addProperty("title", article.getTitle());
articleJson.addProperty("content", article.getContent());

if (null != article.getAuthor()) {
articleJson.addProperty("author", article.getAuthor());
}
if (null != article.getContent_source_url()) {
articleJson.addProperty("content_source_url", article.getContent_source_url());
if (null != article.getContentSourceUrl()) {
articleJson.addProperty("content_source_url", article.getContentSourceUrl());
}
if (null != article.getDigest()) {
articleJson.addProperty("digest", article.getDigest());
}
articleJson.addProperty("show_cover_pic", article.isShow_cover_pic() ? "1" : "0");
articleJson.addProperty("show_cover_pic", article.isShowCoverPic() ? "1" : "0");
articleJsonArray.add(articleJson);
}
newsJson.add("articles", articleJsonArray);


+ 14
- 14
src/main/java/me/chanjar/weixin/util/json/WxMassOpenIdsMessageGsonAdapter.java Переглянути файл

@@ -30,38 +30,38 @@ public class WxMassOpenIdsMessageGsonAdapter implements JsonSerializer<WxMassOpe
public JsonElement serialize(WxMassOpenIdsMessage message, Type typeOfSrc, JsonSerializationContext context) {
JsonObject messageJson = new JsonObject();
JsonArray touser = new JsonArray();
for (String openId : message.getTouser()) {
touser.add(new JsonPrimitive(openId));
JsonArray toUsers = new JsonArray();
for (String openId : message.getToUsers()) {
toUsers.add(new JsonPrimitive(openId));
}
messageJson.add("touser", touser);
messageJson.add("touser", toUsers);
if (WxConsts.MASS_MSG_NEWS.equals(message.getMsgtype())) {
if (WxConsts.MASS_MSG_NEWS.equals(message.getMsgType())) {
JsonObject sub = new JsonObject();
sub.addProperty("media_id", message.getMedia_id());
sub.addProperty("media_id", message.getMediaId());
messageJson.add(WxConsts.MASS_MSG_NEWS, sub);
}
if (WxConsts.MASS_MSG_TEXT.equals(message.getMsgtype())) {
if (WxConsts.MASS_MSG_TEXT.equals(message.getMsgType())) {
JsonObject sub = new JsonObject();
sub.addProperty("content", message.getContent());
messageJson.add(WxConsts.MASS_MSG_TEXT, sub);
}
if (WxConsts.MASS_MSG_VOICE.equals(message.getMsgtype())) {
if (WxConsts.MASS_MSG_VOICE.equals(message.getMsgType())) {
JsonObject sub = new JsonObject();
sub.addProperty("media_id", message.getMedia_id());
sub.addProperty("media_id", message.getMediaId());
messageJson.add(WxConsts.MASS_MSG_VOICE, sub);
}
if (WxConsts.MASS_MSG_IMAGE.equals(message.getMsgtype())) {
if (WxConsts.MASS_MSG_IMAGE.equals(message.getMsgType())) {
JsonObject sub = new JsonObject();
sub.addProperty("media_id", message.getMedia_id());
sub.addProperty("media_id", message.getMediaId());
messageJson.add(WxConsts.MASS_MSG_IMAGE, sub);
}
if (WxConsts.MASS_MSG_VIDEO.equals(message.getMsgtype())) {
if (WxConsts.MASS_MSG_VIDEO.equals(message.getMsgType())) {
JsonObject sub = new JsonObject();
sub.addProperty("media_id", message.getMedia_id());
sub.addProperty("media_id", message.getMediaId());
messageJson.add(WxConsts.MASS_MSG_VIDEO, sub);
}
messageJson.addProperty("msgtype", message.getMsgtype());
messageJson.addProperty("msgtype", message.getMsgType());
return messageJson;
}



+ 39
- 0
src/main/java/me/chanjar/weixin/util/json/WxMassSendResultAdapter.java Переглянути файл

@@ -0,0 +1,39 @@
/*
* KINGSTAR MEDIA SOLUTIONS Co.,LTD. Copyright c 2005-2013. All rights reserved.
*
* This source code is the property of KINGSTAR MEDIA SOLUTIONS LTD. It is intended
* only for the use of KINGSTAR MEDIA application development. Reengineering, reproduction
* arose from modification of the original source, or other redistribution of this source
* is not permitted without written permission of the KINGSTAR MEDIA SOLUTIONS LTD.
*/
package me.chanjar.weixin.util.json;

import com.google.gson.*;
import me.chanjar.weixin.bean.result.WxMassSendResult;

import java.lang.reflect.Type;

/**
*
* @author Daniel Qian
*
*/
public class WxMassSendResultAdapter implements JsonDeserializer<WxMassSendResult> {

public WxMassSendResult deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
WxMassSendResult sendResult = new WxMassSendResult();
JsonObject sendResultJsonObject = json.getAsJsonObject();

if (sendResultJsonObject.get("errcode") != null && !sendResultJsonObject.get("errcode").isJsonNull()) {
sendResult.setErrorCode(GsonHelper.getAsString(sendResultJsonObject.get("errcode")));
}
if (sendResultJsonObject.get("errmsg") != null && !sendResultJsonObject.get("errmsg").isJsonNull()) {
sendResult.setErrorMsg(GsonHelper.getAsString(sendResultJsonObject.get("errmsg")));
}
if (sendResultJsonObject.get("msg_id") != null && !sendResultJsonObject.get("msg_id").isJsonNull()) {
sendResult.setMsgId(GsonHelper.getAsString(sendResultJsonObject.get("msg_id")));
}
return sendResult;
}
}

+ 39
- 0
src/main/java/me/chanjar/weixin/util/json/WxMassUploadResultAdapter.java Переглянути файл

@@ -0,0 +1,39 @@
/*
* KINGSTAR MEDIA SOLUTIONS Co.,LTD. Copyright c 2005-2013. All rights reserved.
*
* This source code is the property of KINGSTAR MEDIA SOLUTIONS LTD. It is intended
* only for the use of KINGSTAR MEDIA application development. Reengineering, reproduction
* arose from modification of the original source, or other redistribution of this source
* is not permitted without written permission of the KINGSTAR MEDIA SOLUTIONS LTD.
*/
package me.chanjar.weixin.util.json;

import com.google.gson.*;
import me.chanjar.weixin.bean.result.WxMassUploadResult;

import java.lang.reflect.Type;

/**
*
* @author Daniel Qian
*
*/
public class WxMassUploadResultAdapter implements JsonDeserializer<WxMassUploadResult> {

public WxMassUploadResult deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
WxMassUploadResult uploadResult = new WxMassUploadResult();
JsonObject uploadResultJsonObject = json.getAsJsonObject();

if (uploadResultJsonObject.get("type") != null && !uploadResultJsonObject.get("type").isJsonNull()) {
uploadResult.setType(GsonHelper.getAsString(uploadResultJsonObject.get("type")));
}
if (uploadResultJsonObject.get("media_id") != null && !uploadResultJsonObject.get("media_id").isJsonNull()) {
uploadResult.setMediaId(GsonHelper.getAsString(uploadResultJsonObject.get("media_id")));
}
if (uploadResultJsonObject.get("created_at") != null && !uploadResultJsonObject.get("created_at").isJsonNull()) {
uploadResult.setCreatedAt(GsonHelper.getAsPrimitiveLong(uploadResultJsonObject.get("created_at")));
}
return uploadResult;
}
}

+ 31
- 0
src/main/java/me/chanjar/weixin/util/json/WxMassVideoAdapter.java Переглянути файл

@@ -0,0 +1,31 @@
/*
* KINGSTAR MEDIA SOLUTIONS Co.,LTD. Copyright c 2005-2013. All rights reserved.
*
* This source code is the property of KINGSTAR MEDIA SOLUTIONS LTD. It is intended
* only for the use of KINGSTAR MEDIA application development. Reengineering, reproduction
* arose from modification of the original source, or other redistribution of this source
* is not permitted without written permission of the KINGSTAR MEDIA SOLUTIONS LTD.
*/
package me.chanjar.weixin.util.json;

import com.google.gson.*;
import me.chanjar.weixin.bean.WxMassVideo;

import java.lang.reflect.Type;

/**
*
* @author Daniel Qian
*
*/
public class WxMassVideoAdapter implements JsonSerializer<WxMassVideo> {

public JsonElement serialize(WxMassVideo message, Type typeOfSrc, JsonSerializationContext context) {
JsonObject messageJson = new JsonObject();
messageJson.addProperty("media_id", message.getMediaId());
messageJson.addProperty("description", message.getDescription());
messageJson.addProperty("title", message.getTitle());
return messageJson;
}

}

+ 42
- 0
src/main/java/me/chanjar/weixin/util/json/WxMediaUploadResultAdapter.java Переглянути файл

@@ -0,0 +1,42 @@
/*
* KINGSTAR MEDIA SOLUTIONS Co.,LTD. Copyright c 2005-2013. All rights reserved.
*
* This source code is the property of KINGSTAR MEDIA SOLUTIONS LTD. It is intended
* only for the use of KINGSTAR MEDIA application development. Reengineering, reproduction
* arose from modification of the original source, or other redistribution of this source
* is not permitted without written permission of the KINGSTAR MEDIA SOLUTIONS LTD.
*/
package me.chanjar.weixin.util.json;

import com.google.gson.*;
import me.chanjar.weixin.bean.result.WxMediaUploadResult;

import java.lang.reflect.Type;

/**
*
* @author Daniel Qian
*
*/
public class WxMediaUploadResultAdapter implements JsonDeserializer<WxMediaUploadResult> {

public WxMediaUploadResult deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
WxMediaUploadResult uploadResult = new WxMediaUploadResult();
JsonObject uploadResultJsonObject = json.getAsJsonObject();

if (uploadResultJsonObject.get("type") != null && !uploadResultJsonObject.get("type").isJsonNull()) {
uploadResult.setType(GsonHelper.getAsString(uploadResultJsonObject.get("type")));
}
if (uploadResultJsonObject.get("media_id") != null && !uploadResultJsonObject.get("media_id").isJsonNull()) {
uploadResult.setMediaId(GsonHelper.getAsString(uploadResultJsonObject.get("media_id")));
}
if (uploadResultJsonObject.get("thumb_media_id") != null && !uploadResultJsonObject.get("thumb_media_id").isJsonNull()) {
uploadResult.setThumbMediaId(GsonHelper.getAsString(uploadResultJsonObject.get("thumb_media_id")));
}
if (uploadResultJsonObject.get("created_at") != null && !uploadResultJsonObject.get("created_at").isJsonNull()) {
uploadResult.setCreatedAt(GsonHelper.getAsPrimitiveLong(uploadResultJsonObject.get("created_at")));
}
return uploadResult;
}
}

+ 5
- 5
src/main/java/me/chanjar/weixin/util/json/WxMenuGsonAdapter.java Переглянути файл

@@ -32,7 +32,7 @@ public class WxMenuGsonAdapter implements JsonSerializer<WxMenu>, JsonDeserializ
JsonObject json = new JsonObject();

JsonArray buttonArray = new JsonArray();
for (WxMenu.WxMenuButton button : menu.getButton()) {
for (WxMenu.WxMenuButton button : menu.getButtons()) {
JsonObject buttonJson = convertToJson(button);
buttonArray.add(buttonJson);
}
@@ -47,9 +47,9 @@ public class WxMenuGsonAdapter implements JsonSerializer<WxMenu>, JsonDeserializ
buttonJson.addProperty("name", button.getName());
buttonJson.addProperty("key", button.getKey());
buttonJson.addProperty("url", button.getUrl());
if (button.getSub_button() != null && button.getSub_button().size() > 0) {
if (button.getSubButtons() != null && button.getSubButtons().size() > 0) {
JsonArray buttonArray = new JsonArray();
for (WxMenu.WxMenuButton sub_button : button.getSub_button()) {
for (WxMenu.WxMenuButton sub_button : button.getSubButtons()) {
buttonArray.add(convertToJson(sub_button));
}
buttonJson.add("sub_button", buttonArray);
@@ -69,14 +69,14 @@ public class WxMenuGsonAdapter implements JsonSerializer<WxMenu>, JsonDeserializ
for (int i = 0; i < buttonsJson.size(); i++) {
JsonObject buttonJson = buttonsJson.get(i).getAsJsonObject();
WxMenu.WxMenuButton button = convertFromJson(buttonJson);
menu.getButton().add(button);
menu.getButtons().add(button);
if (buttonJson.get("sub_button") == null || buttonJson.get("sub_button").isJsonNull()) {
continue;
}
JsonArray sub_buttonsJson = buttonJson.get("sub_button").getAsJsonArray();
for (int j = 0; j < sub_buttonsJson.size(); j++) {
JsonObject sub_buttonJson = sub_buttonsJson.get(j).getAsJsonObject();
button.getSub_button().add(convertFromJson(sub_buttonJson));
button.getSubButtons().add(convertFromJson(sub_buttonJson));
}
}
return menu;


+ 40
- 0
src/main/java/me/chanjar/weixin/util/json/WxQrCodeTicketAdapter.java Переглянути файл

@@ -0,0 +1,40 @@
/*
* KINGSTAR MEDIA SOLUTIONS Co.,LTD. Copyright c 2005-2013. All rights reserved.
*
* This source code is the property of KINGSTAR MEDIA SOLUTIONS LTD. It is intended
* only for the use of KINGSTAR MEDIA application development. Reengineering, reproduction
* arose from modification of the original source, or other redistribution of this source
* is not permitted without written permission of the KINGSTAR MEDIA SOLUTIONS LTD.
*/
package me.chanjar.weixin.util.json;

import com.google.gson.*;
import me.chanjar.weixin.bean.result.WxMassUploadResult;
import me.chanjar.weixin.bean.result.WxQrCodeTicket;

import java.lang.reflect.Type;

/**
*
* @author Daniel Qian
*
*/
public class WxQrCodeTicketAdapter implements JsonDeserializer<WxQrCodeTicket> {

public WxQrCodeTicket deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
WxQrCodeTicket ticket = new WxQrCodeTicket();
JsonObject ticketJsonObject = json.getAsJsonObject();

if (ticketJsonObject.get("ticket") != null && !ticketJsonObject.get("ticket").isJsonNull()) {
ticket.setTicket(GsonHelper.getAsString(ticketJsonObject.get("ticket")));
}
if (ticketJsonObject.get("expire_seconds") != null && !ticketJsonObject.get("expire_seconds").isJsonNull()) {
ticket.setExpire_seconds(GsonHelper.getAsPrimitiveInt(ticketJsonObject.get("expire_seconds")));
}
if (ticketJsonObject.get("url") != null && !ticketJsonObject.get("url").isJsonNull()) {
ticket.setUrl(GsonHelper.getAsString(ticketJsonObject.get("url")));
}
return ticket;
}
}

+ 4
- 4
src/main/java/me/chanjar/weixin/util/json/WxUserGsonAdapter.java Переглянути файл

@@ -31,13 +31,13 @@ public class WxUserGsonAdapter implements JsonDeserializer<WxUser> {
wxUser.setSubscribe(new Integer(0).equals(GsonHelper.getInteger(o, "subscribe")) ? false : true);
wxUser.setCity(GsonHelper.getString(o, "city"));
wxUser.setCountry(GsonHelper.getString(o, "country"));
wxUser.setHeadimgurl(GsonHelper.getString(o, "headimgurl"));
wxUser.setHeadImgUrl(GsonHelper.getString(o, "headimgurl"));
wxUser.setLanguage(GsonHelper.getString(o, "language"));
wxUser.setNickname(GsonHelper.getString(o, "nickname"));
wxUser.setOpenid(GsonHelper.getString(o, "openid"));
wxUser.setOpenId(GsonHelper.getString(o, "openid"));
wxUser.setProvince(GsonHelper.getString(o, "province"));
wxUser.setSubscribe_time(GsonHelper.getLong(o, "subscribe_time"));
wxUser.setUnionid(GsonHelper.getString(o, "unionid"));
wxUser.setSubscribeTime(GsonHelper.getLong(o, "subscribe_time"));
wxUser.setUnionId(GsonHelper.getString(o, "unionid"));
Integer sex = GsonHelper.getInteger(o, "sex");
if(new Integer(1).equals(sex)) {
wxUser.setSex("男");


+ 2
- 2
src/main/java/me/chanjar/weixin/util/json/WxUserListGsonAdapter.java Переглянути файл

@@ -31,10 +31,10 @@ public class WxUserListGsonAdapter implements JsonDeserializer<WxUserList> {
WxUserList wxUserList = new WxUserList();
wxUserList.setTotal(GsonHelper.getInteger(o, "total"));
wxUserList.setCount(GsonHelper.getInteger(o, "count"));
wxUserList.setNext_openid(GsonHelper.getString(o, "next_openid"));
wxUserList.setNextOpenId(GsonHelper.getString(o, "next_openid"));
JsonArray data = o.get("data").getAsJsonObject().get("openid").getAsJsonArray();
for (int i = 0; i < data.size(); i++) {
wxUserList.getOpenids().add(GsonHelper.getAsString(data.get(i)));
wxUserList.getOpenIds().add(GsonHelper.getAsString(data.get(i)));
}
return wxUserList;
}


+ 2
- 2
src/test/java/me/chanjar/weixin/api/WxCustomMessageAPITest.java Переглянути файл

@@ -23,8 +23,8 @@ public class WxCustomMessageAPITest {
public void testSendCustomMessage() throws WxErrorException {
ApiTestModule.WxXmlConfigStorage configStorage = (ApiTestModule.WxXmlConfigStorage) wxService.wxConfigStorage;
WxCustomMessage message = new WxCustomMessage();
message.setMsgtype(WxConsts.CUSTOM_MSG_TEXT);
message.setTouser(configStorage.getOpenId());
message.setMsgType(WxConsts.CUSTOM_MSG_TEXT);
message.setToUser(configStorage.getOpenId());
message.setContent("欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>");

wxService.customMessageSend(message);


+ 27
- 27
src/test/java/me/chanjar/weixin/api/WxMassMessageAPITest.java Переглянути файл

@@ -38,13 +38,13 @@ public class WxMassMessageAPITest {
// 发送群发消息
WxXmlConfigStorage configProvider = (WxXmlConfigStorage) wxService.wxConfigStorage;
WxMassOpenIdsMessage massMessage = new WxMassOpenIdsMessage();
massMessage.setMsgtype(WxConsts.MASS_MSG_TEXT);
massMessage.setMsgType(WxConsts.MASS_MSG_TEXT);
massMessage.setContent("测试群发消息\n欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>");
massMessage.getTouser().add(configProvider.getOpenId());
massMessage.getToUsers().add(configProvider.getOpenId());

WxMassSendResult massResult = wxService.massOpenIdsMessageSend(massMessage);
Assert.assertNotNull(massResult);
Assert.assertNotNull(massResult.getMsg_id());
Assert.assertNotNull(massResult.getMsgId());
}

@Test(dataProvider="massMessages")
@@ -52,13 +52,13 @@ public class WxMassMessageAPITest {
// 发送群发消息
WxXmlConfigStorage configProvider = (WxXmlConfigStorage) wxService.wxConfigStorage;
WxMassOpenIdsMessage massMessage = new WxMassOpenIdsMessage();
massMessage.setMsgtype(massMsgType);
massMessage.setMedia_id(mediaId);
massMessage.getTouser().add(configProvider.getOpenId());
massMessage.setMsgType(massMsgType);
massMessage.setMediaId(mediaId);
massMessage.getToUsers().add(configProvider.getOpenId());

WxMassSendResult massResult = wxService.massOpenIdsMessageSend(massMessage);
Assert.assertNotNull(massResult);
Assert.assertNotNull(massResult.getMsg_id());
Assert.assertNotNull(massResult.getMsgId());
}

@Test
@@ -66,23 +66,23 @@ public class WxMassMessageAPITest {
WxMassGroupMessage massMessage = new WxMassGroupMessage();
massMessage.setMsgtype(WxConsts.MASS_MSG_TEXT);
massMessage.setContent("测试群发消息\n欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>");
massMessage.setGroup_id(wxService.groupGet().get(0).getId());
massMessage.setGroupId(wxService.groupGet().get(0).getId());
WxMassSendResult massResult = wxService.massGroupMessageSend(massMessage);
Assert.assertNotNull(massResult);
Assert.assertNotNull(massResult.getMsg_id());
Assert.assertNotNull(massResult.getMsgId());
}
@Test(dataProvider="massMessages")
public void testMediaMassGroupMessageSend(String massMsgType, String mediaId) throws WxErrorException, IOException {
WxMassGroupMessage massMessage = new WxMassGroupMessage();
massMessage.setMsgtype(massMsgType);
massMessage.setMedia_id(mediaId);
massMessage.setGroup_id(wxService.groupGet().get(0).getId());
massMessage.setMediaId(mediaId);
massMessage.setGroupId(wxService.groupGet().get(0).getId());

WxMassSendResult massResult = wxService.massGroupMessageSend(massMessage);
Assert.assertNotNull(massResult);
Assert.assertNotNull(massResult.getMsg_id());
Assert.assertNotNull(massResult.getMsgId());
}
@DataProvider
@@ -96,17 +96,17 @@ public class WxMassMessageAPITest {
InputStream inputStream = ClassLoader.getSystemResourceAsStream("mm.mp4");
WxMediaUploadResult uploadMediaRes = wxService.mediaUpload(WxConsts.MEDIA_VIDEO, WxConsts.FILE_MP4, inputStream);
Assert.assertNotNull(uploadMediaRes);
Assert.assertNotNull(uploadMediaRes.getMedia_id());
Assert.assertNotNull(uploadMediaRes.getMediaId());
// 把视频变成可被群发的媒体
WxMassVideo video = new WxMassVideo();
video.setTitle("测试标题");
video.setDescription("测试描述");
video.setMedia_id(uploadMediaRes.getMedia_id());
video.setMediaId(uploadMediaRes.getMediaId());
WxMassUploadResult uploadResult = wxService.massVideoUpload(video);
Assert.assertNotNull(uploadResult);
Assert.assertNotNull(uploadResult.getMedia_id());
messages[0] = new Object[] { WxConsts.MASS_MSG_VIDEO, uploadResult.getMedia_id() };
Assert.assertNotNull(uploadResult.getMediaId());
messages[0] = new Object[] { WxConsts.MASS_MSG_VIDEO, uploadResult.getMediaId() };
}
/**
* 图片素材
@@ -115,8 +115,8 @@ public class WxMassMessageAPITest {
InputStream inputStream = ClassLoader.getSystemResourceAsStream("mm.jpeg");
WxMediaUploadResult uploadMediaRes = wxService.mediaUpload(WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, inputStream);
Assert.assertNotNull(uploadMediaRes);
Assert.assertNotNull(uploadMediaRes.getMedia_id());
messages[1] = new Object[] { WxConsts.MASS_MSG_IMAGE, uploadMediaRes.getMedia_id() };
Assert.assertNotNull(uploadMediaRes.getMediaId());
messages[1] = new Object[] { WxConsts.MASS_MSG_IMAGE, uploadMediaRes.getMediaId() };
}
/**
* 语音素材
@@ -125,8 +125,8 @@ public class WxMassMessageAPITest {
InputStream inputStream = ClassLoader.getSystemResourceAsStream("mm.mp3");
WxMediaUploadResult uploadMediaRes = wxService.mediaUpload(WxConsts.MEDIA_VOICE, WxConsts.FILE_MP3, inputStream);
Assert.assertNotNull(uploadMediaRes);
Assert.assertNotNull(uploadMediaRes.getMedia_id());
messages[2] = new Object[] { WxConsts.MASS_MSG_VOICE, uploadMediaRes.getMedia_id() };
Assert.assertNotNull(uploadMediaRes.getMediaId());
messages[2] = new Object[] { WxConsts.MASS_MSG_VOICE, uploadMediaRes.getMediaId() };
}
/**
* 图文素材
@@ -136,30 +136,30 @@ public class WxMassMessageAPITest {
InputStream inputStream = ClassLoader.getSystemResourceAsStream("mm.jpeg");
WxMediaUploadResult uploadMediaRes = wxService.mediaUpload(WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, inputStream);
Assert.assertNotNull(uploadMediaRes);
Assert.assertNotNull(uploadMediaRes.getMedia_id());
Assert.assertNotNull(uploadMediaRes.getMediaId());
// 上传图文消息
WxMassNews news = new WxMassNews();
WxMassNewsArticle article1 = new WxMassNewsArticle();
article1.setTitle("标题1");
article1.setContent("内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1");
article1.setThumb_media_id(uploadMediaRes.getMedia_id());
article1.setThumbMediaId(uploadMediaRes.getMediaId());
news.addArticle(article1);
WxMassNewsArticle article2 = new WxMassNewsArticle();
article2.setTitle("标题2");
article2.setContent("内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2");
article2.setThumb_media_id(uploadMediaRes.getMedia_id());
article2.setShow_cover_pic(true);
article2.setThumbMediaId(uploadMediaRes.getMediaId());
article2.setShowCoverPic(true);
article2.setAuthor("作者2");
article2.setContent_source_url("www.baidu.com");
article2.setContentSourceUrl("www.baidu.com");
article2.setDigest("摘要2");
news.addArticle(article2);
WxMassUploadResult massUploadResult = wxService.massNewsUpload(news);
Assert.assertNotNull(massUploadResult);
Assert.assertNotNull(uploadMediaRes.getMedia_id());
messages[3] = new Object[] { WxConsts.MASS_MSG_NEWS, massUploadResult.getMedia_id() };
Assert.assertNotNull(uploadMediaRes.getMediaId());
messages[3] = new Object[] { WxConsts.MASS_MSG_NEWS, massUploadResult.getMediaId() };
}
return messages;
}


+ 6
- 6
src/test/java/me/chanjar/weixin/api/WxMediaAPITest.java Переглянути файл

@@ -34,14 +34,14 @@ public class WxMediaAPITest {
InputStream inputStream = ClassLoader.getSystemResourceAsStream(fileName);
WxMediaUploadResult res = wxService.mediaUpload(mediaType, fileType, inputStream);
Assert.assertNotNull(res.getType());
Assert.assertNotNull(res.getCreated_at());
Assert.assertTrue(res.getMedia_id() != null || res.getThumb_media_id() != null);
Assert.assertNotNull(res.getCreatedAt());
Assert.assertTrue(res.getMediaId() != null || res.getThumbMediaId() != null);
if (res.getMedia_id() != null) {
media_ids.add(res.getMedia_id());
if (res.getMediaId() != null) {
media_ids.add(res.getMediaId());
}
if (res.getThumb_media_id() != null) {
media_ids.add(res.getThumb_media_id());
if (res.getThumbMediaId() != null) {
media_ids.add(res.getThumbMediaId());
}
}


+ 6
- 6
src/test/java/me/chanjar/weixin/api/WxMenuAPITest.java Переглянути файл

@@ -56,9 +56,9 @@ public class WxMenuAPITest {
WxMenuButton button3 = new WxMenuButton();
button3.setName("菜单");
menu.getButton().add(button1);
menu.getButton().add(button2);
menu.getButton().add(button3);
menu.getButtons().add(button1);
menu.getButtons().add(button2);
menu.getButtons().add(button3);
WxMenuButton button31 = new WxMenuButton();
button31.setType(WxConsts.BUTTON_VIEW);
@@ -75,9 +75,9 @@ public class WxMenuAPITest {
button33.setName("赞一下我们");
button33.setKey("V1001_GOOD");
button3.getSub_button().add(button31);
button3.getSub_button().add(button32);
button3.getSub_button().add(button33);
button3.getSubButtons().add(button31);
button3.getSubButtons().add(button32);
button3.getSubButtons().add(button33);
return new Object[][] {
new Object[] {


+ 0
- 1
src/test/java/me/chanjar/weixin/api/WxMessageRouterTest.java Переглянути файл

@@ -71,7 +71,6 @@ public class WxMessageRouterTest {
router.rule().handler(new WxMessageHandler() {
@Override
public WxXmlOutMessage handle(WxXmlMessage wxMessage, Map<String, Object> context) {
System.out.println(wxMessage.toString());
return null;
}
}).end();


+ 1
- 1
src/test/java/me/chanjar/weixin/api/WxUserAPITest.java Переглянути файл

@@ -39,7 +39,7 @@ public class WxUserAPITest {
Assert.assertNotNull(wxUserList);
Assert.assertFalse(wxUserList.getCount() == -1);
Assert.assertFalse(wxUserList.getTotal() == -1);
Assert.assertFalse(wxUserList.getOpenids().size() == -1);
Assert.assertFalse(wxUserList.getOpenIds().size() == -1);
}
public void testGroupQueryUserGroup() throws WxErrorException {


+ 2
- 3
src/test/java/me/chanjar/weixin/bean/WxAccessTokenTest.java Переглянути файл

@@ -1,6 +1,5 @@
package me.chanjar.weixin.bean;

import me.chanjar.weixin.bean.WxAccessToken;
import org.testng.Assert;
import org.testng.annotations.Test;

@@ -11,8 +10,8 @@ public class WxAccessTokenTest {

String json = "{\"access_token\":\"ACCESS_TOKEN\",\"expires_in\":7200}";
WxAccessToken wxError = WxAccessToken.fromJson(json);
Assert.assertEquals(wxError.getAccess_token(), "ACCESS_TOKEN");
Assert.assertTrue(wxError.getExpires_in() == 7200);
Assert.assertEquals(wxError.getAccessToken(), "ACCESS_TOKEN");
Assert.assertTrue(wxError.getExpiresIn() == 7200);

}


+ 24
- 25
src/test/java/me/chanjar/weixin/bean/WxCustomMessageTest.java Переглянути файл

@@ -1,6 +1,5 @@
package me.chanjar.weixin.bean;

import me.chanjar.weixin.bean.WxCustomMessage;
import org.testng.Assert;
import org.testng.annotations.Test;

@@ -12,8 +11,8 @@ public class WxCustomMessageTest {

public void testTextReply() {
WxCustomMessage reply = new WxCustomMessage();
reply.setTouser("OPENID");
reply.setMsgtype(WxConsts.CUSTOM_MSG_TEXT);
reply.setToUser("OPENID");
reply.setMsgType(WxConsts.CUSTOM_MSG_TEXT);
reply.setContent("sfsfdsdf");
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"text\",\"text\":{\"content\":\"sfsfdsdf\"}}");
}
@@ -25,9 +24,9 @@ public class WxCustomMessageTest {
public void testImageReply() {
WxCustomMessage reply = new WxCustomMessage();
reply.setTouser("OPENID");
reply.setMsgtype(WxConsts.CUSTOM_MSG_IMAGE);
reply.setMedia_id("MEDIA_ID");
reply.setToUser("OPENID");
reply.setMsgType(WxConsts.CUSTOM_MSG_IMAGE);
reply.setMediaId("MEDIA_ID");
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"image\",\"image\":{\"media_id\":\"MEDIA_ID\"}}");
}
@@ -38,9 +37,9 @@ public class WxCustomMessageTest {
public void testVoiceReply() {
WxCustomMessage reply = new WxCustomMessage();
reply.setTouser("OPENID");
reply.setMsgtype(WxConsts.CUSTOM_MSG_VOICE);
reply.setMedia_id("MEDIA_ID");
reply.setToUser("OPENID");
reply.setMsgType(WxConsts.CUSTOM_MSG_VOICE);
reply.setMediaId("MEDIA_ID");
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"voice\",\"voice\":{\"media_id\":\"MEDIA_ID\"}}");
}
@@ -51,10 +50,10 @@ public class WxCustomMessageTest {
public void testVideoReply() {
WxCustomMessage reply = new WxCustomMessage();
reply.setTouser("OPENID");
reply.setMsgtype(WxConsts.CUSTOM_MSG_VIDEO);
reply.setMedia_id("MEDIA_ID");
reply.setThumb_media_id("MEDIA_ID");
reply.setToUser("OPENID");
reply.setMsgType(WxConsts.CUSTOM_MSG_VIDEO);
reply.setMediaId("MEDIA_ID");
reply.setThumbMediaId("MEDIA_ID");
reply.setTitle("TITLE");
reply.setDescription("DESCRIPTION");
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"video\",\"video\":{\"media_id\":\"MEDIA_ID\",\"thumb_media_id\":\"MEDIA_ID\",\"title\":\"TITLE\",\"description\":\"DESCRIPTION\"}}");
@@ -67,13 +66,13 @@ public class WxCustomMessageTest {
public void testMusicReply() {
WxCustomMessage reply = new WxCustomMessage();
reply.setTouser("OPENID");
reply.setMsgtype(WxConsts.CUSTOM_MSG_MUSIC);
reply.setThumb_media_id("MEDIA_ID");
reply.setToUser("OPENID");
reply.setMsgType(WxConsts.CUSTOM_MSG_MUSIC);
reply.setThumbMediaId("MEDIA_ID");
reply.setDescription("DESCRIPTION");
reply.setTitle("TITLE");
reply.setMusicurl("MUSIC_URL");
reply.setHqmusicurl("HQ_MUSIC_URL");
reply.setMusicUrl("MUSIC_URL");
reply.setHqMusicUrl("HQ_MUSIC_URL");
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"music\",\"music\":{\"title\":\"TITLE\",\"description\":\"DESCRIPTION\",\"thumb_media_id\":\"MEDIA_ID\",\"musicurl\":\"MUSIC_URL\",\"hqmusicurl\":\"HQ_MUSIC_URL\"}}");
}
@@ -84,26 +83,26 @@ public class WxCustomMessageTest {
.thumbMediaId("MEDIA_ID")
.description("DESCRIPTION")
.musicUrl("MUSIC_URL")
.hqmusicUrl("HQ_MUSIC_URL")
.hqMusicUrl("HQ_MUSIC_URL")
.build();
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"music\",\"music\":{\"title\":\"TITLE\",\"description\":\"DESCRIPTION\",\"thumb_media_id\":\"MEDIA_ID\",\"musicurl\":\"MUSIC_URL\",\"hqmusicurl\":\"HQ_MUSIC_URL\"}}");
}
public void testNewsReply() {
WxCustomMessage reply = new WxCustomMessage();
reply.setTouser("OPENID");
reply.setMsgtype(WxConsts.CUSTOM_MSG_NEWS);
reply.setToUser("OPENID");
reply.setMsgType(WxConsts.CUSTOM_MSG_NEWS);
WxArticle article1 = new WxArticle();
article1.setUrl("URL");
article1.setPicurl("PIC_URL");
article1.setPicUrl("PIC_URL");
article1.setDescription("Is Really A Happy Day");
article1.setTitle("Happy Day");
reply.getArticles().add(article1);
WxArticle article2 = new WxArticle();
article2.setUrl("URL");
article2.setPicurl("PIC_URL");
article2.setPicUrl("PIC_URL");
article2.setDescription("Is Really A Happy Day");
article2.setTitle("Happy Day");
reply.getArticles().add(article2);
@@ -115,13 +114,13 @@ public class WxCustomMessageTest {
public void testNewsBuild() {
WxArticle article1 = new WxArticle();
article1.setUrl("URL");
article1.setPicurl("PIC_URL");
article1.setPicUrl("PIC_URL");
article1.setDescription("Is Really A Happy Day");
article1.setTitle("Happy Day");
WxArticle article2 = new WxArticle();
article2.setUrl("URL");
article2.setPicurl("PIC_URL");
article2.setPicUrl("PIC_URL");
article2.setDescription("Is Really A Happy Day");
article2.setTitle("Happy Day");



+ 6
- 6
src/test/java/me/chanjar/weixin/bean/WxErrorTest.java Переглянути файл

@@ -12,8 +12,8 @@ public class WxErrorTest {

String json = "{ \"errcode\": 40003, \"errmsg\": \"invalid openid\" }";
WxError wxError = WxError.fromJson(json);
Assert.assertTrue(wxError.getErrcode() == 40003);
Assert.assertEquals(wxError.getErrmsg(), "invalid openid");
Assert.assertTrue(wxError.getErrorCode() == 40003);
Assert.assertEquals(wxError.getErrorMsg(), "invalid openid");

}
@@ -21,8 +21,8 @@ public class WxErrorTest {

String json = "{ \"errcode\": 40003, \"errmsg\": \"invalid openid\", \"media_id\": \"12323423dsfafsf232f\" }";
WxError wxError = WxError.fromJson(json);
Assert.assertTrue(wxError.getErrcode() == 40003);
Assert.assertEquals(wxError.getErrmsg(), "invalid openid");
Assert.assertTrue(wxError.getErrorCode() == 40003);
Assert.assertEquals(wxError.getErrorMsg(), "invalid openid");

}
@@ -30,8 +30,8 @@ public class WxErrorTest {

String json = "{\"access_token\":\"ACCESS_TOKEN\",\"expires_in\":7200}";
WxError wxError = WxError.fromJson(json);
Assert.assertTrue(wxError.getErrcode() == 0);
Assert.assertEquals(wxError.getErrmsg(), null);
Assert.assertTrue(wxError.getErrorCode() == 0);
Assert.assertEquals(wxError.getErrorMsg(), null);

}


+ 7
- 8
src/test/java/me/chanjar/weixin/bean/WxMenuTest.java Переглянути файл

@@ -1,6 +1,5 @@
package me.chanjar.weixin.bean;

import me.chanjar.weixin.bean.WxMenu;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -13,7 +12,7 @@ public class WxMenuTest {
@Test(dataProvider="wxReturnMenu")
public void testFromJson(String json) {
WxMenu menu = WxMenu.fromJson(json);
Assert.assertEquals(menu.getButton().size(), 3);
Assert.assertEquals(menu.getButtons().size(), 3);
}
@Test(dataProvider="wxPushMenu")
@@ -32,9 +31,9 @@ public class WxMenuTest {
WxMenuButton button3 = new WxMenuButton();
button3.setName("菜单");
menu.getButton().add(button1);
menu.getButton().add(button2);
menu.getButton().add(button3);
menu.getButtons().add(button1);
menu.getButtons().add(button2);
menu.getButtons().add(button3);
WxMenuButton button31 = new WxMenuButton();
button31.setType("view");
@@ -51,9 +50,9 @@ public class WxMenuTest {
button33.setName("赞一下我们");
button33.setKey("V1001_GOOD");
button3.getSub_button().add(button31);
button3.getSub_button().add(button32);
button3.getSub_button().add(button33);
button3.getSubButtons().add(button31);
button3.getSubButtons().add(button32);
button3.getSubButtons().add(button33);
Assert.assertEquals(menu.toJson(), json);
}


+ 4
- 4
src/test/java/me/chanjar/weixin/bean/WxXmlMessageTest.java Переглянути файл

@@ -64,8 +64,8 @@ public class WxXmlMessageTest {
Assert.assertEquals(wxMessage.getMediaId(), "media_id");
Assert.assertEquals(wxMessage.getFormat(), "Format");
Assert.assertEquals(wxMessage.getThumbMediaId(), "thumb_media_id");
Assert.assertEquals(wxMessage.getLocation_X(), new Double(23.134521d));
Assert.assertEquals(wxMessage.getLocation_Y(), new Double(113.358803d));
Assert.assertEquals(wxMessage.getLocationX(), new Double(23.134521d));
Assert.assertEquals(wxMessage.getLocationY(), new Double(113.358803d));
Assert.assertEquals(wxMessage.getScale(), new Double(20));
Assert.assertEquals(wxMessage.getLabel(), "位置信息");
Assert.assertEquals(wxMessage.getDescription(), "公众平台官网链接");
@@ -81,8 +81,8 @@ public class WxXmlMessageTest {
Assert.assertEquals(wxMessage.getScanCodeInfo().getScanResult(), "1");
Assert.assertEquals(wxMessage.getSendPicsInfo().getCount(), new Long(1l));
Assert.assertEquals(wxMessage.getSendPicsInfo().getPicList().get(0).getPicMd5Sum(), "1b5f7c23b5bf75682a53e7b6d163e185");
Assert.assertEquals(wxMessage.getSendLocationInfo().getLocation_X(), "23");
Assert.assertEquals(wxMessage.getSendLocationInfo().getLocation_Y(), "113");
Assert.assertEquals(wxMessage.getSendLocationInfo().getLocationX(), "23");
Assert.assertEquals(wxMessage.getSendLocationInfo().getLocationY(), "113");
Assert.assertEquals(wxMessage.getSendLocationInfo().getScale(), "15");
Assert.assertEquals(wxMessage.getSendLocationInfo().getLabel(), " 广州市海珠区客村艺苑路 106号");
Assert.assertEquals(wxMessage.getSendLocationInfo().getPoiname(), "wo de poi");


+ 2
- 4
src/test/java/me/chanjar/weixin/bean/WxXmlOutIMusicMessageTest.java Переглянути файл

@@ -1,7 +1,5 @@
package me.chanjar.weixin.bean;

import me.chanjar.weixin.bean.WxXmlOutMessage;
import me.chanjar.weixin.bean.WxXmlOutMusicMessage;
import org.testng.Assert;
import org.testng.annotations.Test;

@@ -12,7 +10,7 @@ public class WxXmlOutIMusicMessageTest {
WxXmlOutMusicMessage m = new WxXmlOutMusicMessage();
m.setTitle("title");
m.setDescription("ddfff");
m.setHQMusicUrl("hQMusicUrl");
m.setHqMusicUrl("hQMusicUrl");
m.setMusicUrl("musicUrl");
m.setThumbMediaId("thumbMediaId");
m.setCreateTime(1122l);
@@ -43,7 +41,7 @@ public class WxXmlOutIMusicMessageTest {
.touser("toUser")
.title("title")
.description("ddfff")
.hqmusicUrl("hQMusicUrl")
.hqMusicUrl("hQMusicUrl")
.musicUrl("musicUrl")
.thumbMediaId("thumbMediaId")
.build();


Завантаження…
Відмінити
Зберегти