From 3f94ec379ded83e38fd5e13d966c586b29ab980b Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Thu, 23 Aug 2018 19:31:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B8=8D=E7=A8=B3=E5=AE=9A?= =?UTF-8?q?=E7=9A=84ToStringUtils=E8=87=AA=E5=AE=9A=E4=B9=89=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/bean/WxCardApiSignature.java | 11 ++-- .../weixin/common/bean/menu/WxMenu.java | 12 ++-- .../weixin/common/bean/menu/WxMenuButton.java | 12 ++-- .../weixin/common/bean/menu/WxMenuRule.java | 10 +-- .../bean/result/WxMediaUploadResult.java | 10 +-- .../weixin/common/util/ToStringUtils.java | 64 ------------------- .../weixin/cp/bean/WxCpInviteResult.java | 16 +++-- .../weixin/cp/bean/WxCpMessageSendResult.java | 16 +++-- .../bean/WxCpTagAddOrRemoveUsersResult.java | 16 +++-- .../weixin/cp/bean/WxCpXmlMessage.java | 20 +++--- .../cp/config/WxCpInMemoryConfigStorage.java | 10 +-- .../wx/miniapp/bean/WxMaMessage.java | 18 +++--- .../wx/miniapp/config/WxMaInMemoryConfig.java | 12 ++-- .../mp/api/WxMpInMemoryConfigStorage.java | 12 ++-- .../me/chanjar/weixin/mp/bean/WxMpCard.java | 10 +-- .../chanjar/weixin/mp/bean/WxMpMassNews.java | 32 +++++----- .../bean/datacube/WxDataCubeBaseResult.java | 10 +-- .../bean/datacube/WxDataCubeUserCumulate.java | 16 +++-- .../bean/datacube/WxDataCubeUserSummary.java | 14 ++-- .../weixin/mp/bean/device/WxDeviceMsg.java | 6 +- .../kefu/request/WxMpKfSessionRequest.java | 10 +-- .../mp/bean/kefu/result/WxMpKfInfo.java | 10 +-- .../mp/bean/kefu/result/WxMpKfList.java | 12 ++-- .../mp/bean/kefu/result/WxMpKfMsgList.java | 12 ++-- .../mp/bean/kefu/result/WxMpKfMsgRecord.java | 10 +-- .../mp/bean/kefu/result/WxMpKfOnlineList.java | 12 ++-- .../mp/bean/kefu/result/WxMpKfSession.java | 10 +-- .../kefu/result/WxMpKfSessionGetResult.java | 10 +-- .../bean/kefu/result/WxMpKfSessionList.java | 12 ++-- .../result/WxMpKfSessionWaitCaseList.java | 12 ++-- .../material/WxMpMaterialCountResult.java | 13 ++-- .../WxMpMaterialFileBatchGetResult.java | 15 +++-- .../mp/bean/material/WxMpMaterialNews.java | 17 +++-- .../WxMpMaterialNewsBatchGetResult.java | 12 ++-- .../material/WxMpMaterialUploadResult.java | 10 +-- .../WxMpMemberCardUpdateResult.java | 10 +-- .../WxMpMemberCardUserInfoResult.java | 10 +-- .../bean/menu/WxMpGetSelfMenuInfoResult.java | 10 +-- .../chanjar/weixin/mp/bean/menu/WxMpMenu.java | 14 ++-- .../weixin/mp/bean/menu/WxMpSelfMenuInfo.java | 20 +++--- .../weixin/mp/bean/message/HardWare.java | 10 +-- .../weixin/mp/bean/message/ScanCodeInfo.java | 32 ++++------ .../mp/bean/message/SendLocationInfo.java | 10 +-- .../weixin/mp/bean/message/SendPicsInfo.java | 16 +++-- .../mp/bean/message/WxMpXmlMessage.java | 5 +- .../weixin/mp/bean/result/WxMpCardResult.java | 10 +-- .../bean/result/WxMpCurrentAutoReplyInfo.java | 33 +++++----- .../mp/bean/result/WxMpMassSendResult.java | 10 +-- .../mp/bean/result/WxMpMassUploadResult.java | 12 ++-- .../mp/bean/result/WxMpOAuth2AccessToken.java | 10 +-- .../weixin/mp/bean/result/WxMpUser.java | 6 +- .../mp/bean/store/WxMpStoreBaseInfo.java | 14 ++-- .../weixin/mp/bean/store/WxMpStoreInfo.java | 13 ++-- .../mp/bean/store/WxMpStoreListResult.java | 20 +++--- .../weixin/mp/bean/tag/WxTagListUser.java | 22 ++++--- .../chanjar/weixin/mp/bean/tag/WxUserTag.java | 18 +++--- .../weixin/mp/bean/template/WxMpTemplate.java | 24 +++---- .../bean/template/WxMpTemplateIndustry.java | 15 +++-- .../api/impl/WxOpenInMemoryConfigStorage.java | 18 +++--- .../bean/entpay/EntPayBankQueryRequest.java | 7 +- .../wxpay/bean/entpay/EntPayQueryRequest.java | 12 +++- .../wxpay/bean/entpay/EntPayRequest.java | 12 +++- .../bean/notify/WxPayOrderNotifyCoupon.java | 15 +++-- .../bean/notify/WxPayOrderNotifyResult.java | 12 ++-- .../bean/notify/WxPayRefundNotifyResult.java | 48 +++++++------- .../wxpay/bean/request/BaseWxPayRequest.java | 46 ++++++------- .../wxpay/bean/result/BaseWxPayResult.java | 42 ++++++------ .../bean/result/WxPayBillBaseResult.java | 60 +++++++++-------- .../wxpay/bean/result/WxPayBillResult.java | 27 ++++---- 69 files changed, 616 insertions(+), 531 deletions(-) delete mode 100644 weixin-java-common/src/main/java/me/chanjar/weixin/common/util/ToStringUtils.java diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/WxCardApiSignature.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/WxCardApiSignature.java index 9d5d7a06..17d8ab9f 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/WxCardApiSignature.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/WxCardApiSignature.java @@ -1,10 +1,12 @@ package me.chanjar.weixin.common.bean; -import lombok.Data; -import me.chanjar.weixin.common.util.ToStringUtils; - import java.io.Serializable; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import lombok.Data; + /** * 卡券Api签名. * @@ -35,7 +37,6 @@ public class WxCardApiSignature implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } - } diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenu.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenu.java index 4d349acb..8b43646a 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenu.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenu.java @@ -1,9 +1,5 @@ package me.chanjar.weixin.common.bean.menu; -import lombok.Data; -import me.chanjar.weixin.common.util.ToStringUtils; -import me.chanjar.weixin.common.util.json.WxGsonBuilder; - import java.io.InputStream; import java.io.InputStreamReader; import java.io.Serializable; @@ -11,6 +7,12 @@ import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import lombok.Data; +import me.chanjar.weixin.common.util.json.WxGsonBuilder; + /** * 菜单(公众号和企业号共用的). * @@ -47,7 +49,7 @@ public class WxMenu implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } } diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuButton.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuButton.java index 2f9276b0..d6d74133 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuButton.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuButton.java @@ -1,13 +1,15 @@ package me.chanjar.weixin.common.bean.menu; -import com.google.gson.annotations.SerializedName; -import lombok.Data; -import me.chanjar.weixin.common.util.ToStringUtils; - import java.io.Serializable; import java.util.ArrayList; import java.util.List; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; + @Data public class WxMenuButton implements Serializable { private static final long serialVersionUID = -1070939403109776555L; @@ -76,7 +78,7 @@ public class WxMenuButton implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } } diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuRule.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuRule.java index 16542dec..021ba98b 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuRule.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuRule.java @@ -1,10 +1,12 @@ package me.chanjar.weixin.common.bean.menu; +import java.io.Serializable; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + import com.google.gson.annotations.SerializedName; import lombok.Data; -import me.chanjar.weixin.common.util.ToStringUtils; - -import java.io.Serializable; @Data public class WxMenuRule implements Serializable { @@ -24,6 +26,6 @@ public class WxMenuRule implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } } diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/result/WxMediaUploadResult.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/result/WxMediaUploadResult.java index a50018aa..6c0bbc12 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/result/WxMediaUploadResult.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/result/WxMediaUploadResult.java @@ -1,11 +1,13 @@ package me.chanjar.weixin.common.bean.result; +import java.io.Serializable; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + import lombok.Data; -import me.chanjar.weixin.common.util.ToStringUtils; import me.chanjar.weixin.common.util.json.WxGsonBuilder; -import java.io.Serializable; - @Data public class WxMediaUploadResult implements Serializable { private static final long serialVersionUID = 330834334738622341L; @@ -21,7 +23,7 @@ public class WxMediaUploadResult implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } } diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/ToStringUtils.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/ToStringUtils.java deleted file mode 100644 index a0b069d1..00000000 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/ToStringUtils.java +++ /dev/null @@ -1,64 +0,0 @@ -package me.chanjar.weixin.common.util; - -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; - -/** - *
- * 自定义的ToString方法,用于产生去掉空值属性的字符串
- * Created by Binary Wang on 2016-10-27.
- * 
- * - * @author Binary Wang - */ -public class ToStringUtils { - public static final ToStringStyle THE_STYLE = new SimpleMultiLineToStringStyle(); - - /** - * 用于产生去掉空值属性并以换行符分割各属性键值的toString字符串 - * - * @param obj - */ - public static String toSimpleString(Object obj) { - String toStringResult = ToStringBuilder.reflectionToString(obj, THE_STYLE); - String[] split = toStringResult.split(SimpleMultiLineToStringStyle.LINE_SEPARATOR); - StringBuilder result = new StringBuilder(); - for (String string : split) { - if (string.endsWith(SimpleMultiLineToStringStyle.NULL_TEXT)) { - continue; - } - - result.append(string + SimpleMultiLineToStringStyle.LINE_SEPARATOR); - } - - if (result.length() == 0) { - return ""; - } - - //如果没有非空的属性,就输出 - if (StringUtils.countMatches(result, SimpleMultiLineToStringStyle.LINE_SEPARATOR) == 2) { - return result.toString().split(SimpleMultiLineToStringStyle.LINE_SEPARATOR)[0] - + "]"; - } - - return result.deleteCharAt(result.length() - 1).toString(); - } - - private static class SimpleMultiLineToStringStyle extends ToStringStyle { - private static final long serialVersionUID = 4645306494220335355L; - private static final String LINE_SEPARATOR = "\n"; - private static final String NULL_TEXT = ""; - - public SimpleMultiLineToStringStyle() { - super(); - this.setContentStart("["); - this.setFieldSeparator(LINE_SEPARATOR + " "); - this.setFieldSeparatorAtStart(true); - this.setContentEnd(LINE_SEPARATOR + "]"); - this.setNullText(NULL_TEXT); - this.setUseShortClassName(true); - this.setUseIdentityHashCode(false); - } - } -} diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpInviteResult.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpInviteResult.java index 35f61ba0..f6ff4634 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpInviteResult.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpInviteResult.java @@ -1,15 +1,17 @@ package me.chanjar.weixin.cp.bean; +import java.io.Serializable; +import java.util.Collections; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + import com.google.common.base.Splitter; import com.google.gson.annotations.SerializedName; import lombok.Data; -import me.chanjar.weixin.common.util.ToStringUtils; import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; -import org.apache.commons.lang3.StringUtils; - -import java.io.Serializable; -import java.util.Collections; -import java.util.List; /** * 邀请成员的结果对象类. @@ -23,7 +25,7 @@ public class WxCpInviteResult implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } public static WxCpInviteResult fromJson(String json) { diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpMessageSendResult.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpMessageSendResult.java index e54a01ec..9d0a85b6 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpMessageSendResult.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpMessageSendResult.java @@ -1,15 +1,17 @@ package me.chanjar.weixin.cp.bean; +import java.io.Serializable; +import java.util.Collections; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + import com.google.common.base.Splitter; import com.google.gson.annotations.SerializedName; import lombok.Data; -import me.chanjar.weixin.common.util.ToStringUtils; import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; -import org.apache.commons.lang3.StringUtils; - -import java.io.Serializable; -import java.util.Collections; -import java.util.List; /** * 消息发送结果对象类. @@ -23,7 +25,7 @@ public class WxCpMessageSendResult implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } public static WxCpMessageSendResult fromJson(String json) { diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpTagAddOrRemoveUsersResult.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpTagAddOrRemoveUsersResult.java index 3d89c073..67d90978 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpTagAddOrRemoveUsersResult.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpTagAddOrRemoveUsersResult.java @@ -1,15 +1,17 @@ package me.chanjar.weixin.cp.bean; +import java.io.Serializable; +import java.util.Collections; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + import com.google.common.base.Splitter; import com.google.gson.annotations.SerializedName; import lombok.Data; -import me.chanjar.weixin.common.util.ToStringUtils; import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; -import org.apache.commons.lang3.StringUtils; - -import java.io.Serializable; -import java.util.Collections; -import java.util.List; /** * 为标签添加或移除用户结果对象类. @@ -23,7 +25,7 @@ public class WxCpTagAddOrRemoveUsersResult implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } public static WxCpTagAddOrRemoveUsersResult fromJson(String json) { diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpXmlMessage.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpXmlMessage.java index 785884a1..26cde8a6 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpXmlMessage.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpXmlMessage.java @@ -1,21 +1,23 @@ package me.chanjar.weixin.cp.bean; +import java.io.IOException; +import java.io.InputStream; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import lombok.Data; import me.chanjar.weixin.common.api.WxConsts; -import me.chanjar.weixin.common.util.ToStringUtils; import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; import me.chanjar.weixin.cp.config.WxCpConfigStorage; import me.chanjar.weixin.cp.util.crypto.WxCpCryptUtil; import me.chanjar.weixin.cp.util.xml.XStreamTransformer; -import org.apache.commons.io.IOUtils; - -import java.io.IOException; -import java.io.InputStream; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; /** *
@@ -233,7 +235,7 @@ public class WxCpXmlMessage implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   @Data
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpInMemoryConfigStorage.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpInMemoryConfigStorage.java
index 2ce56e7d..707188a2 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpInMemoryConfigStorage.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpInMemoryConfigStorage.java
@@ -1,11 +1,13 @@
 package me.chanjar.weixin.cp.config;
 
+import java.io.File;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import me.chanjar.weixin.common.bean.WxAccessToken;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
 
-import java.io.File;
-
 /**
  * 基于内存的微信配置provider,在实际生产环境中应该将这些配置持久化
  *
@@ -201,7 +203,7 @@ public class WxCpInMemoryConfigStorage implements WxCpConfigStorage {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   @Override
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaMessage.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaMessage.java
index d04212d4..d44d1556 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaMessage.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaMessage.java
@@ -1,5 +1,14 @@
 package cn.binarywang.wx.miniapp.bean;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Serializable;
+import java.nio.charset.StandardCharsets;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import cn.binarywang.wx.miniapp.config.WxMaConfig;
 import cn.binarywang.wx.miniapp.util.crypt.WxMaCryptUtils;
 import cn.binarywang.wx.miniapp.util.json.WxMaGsonBuilder;
@@ -8,14 +17,7 @@ import com.google.gson.annotations.SerializedName;
 import com.thoughtworks.xstream.annotations.XStreamAlias;
 import com.thoughtworks.xstream.annotations.XStreamConverter;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.common.util.xml.XStreamCDataConverter;
-import org.apache.commons.io.IOUtils;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Serializable;
-import java.nio.charset.StandardCharsets;
 
 /**
  * @author Binary Wang
@@ -166,7 +168,7 @@ public class WxMaMessage implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   public String toJson() {
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaInMemoryConfig.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaInMemoryConfig.java
index 05650898..d8e286af 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaInMemoryConfig.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaInMemoryConfig.java
@@ -1,13 +1,15 @@
 package cn.binarywang.wx.miniapp.config;
 
-import me.chanjar.weixin.common.bean.WxAccessToken;
-import me.chanjar.weixin.common.util.ToStringUtils;
-import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
-
 import java.io.File;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import me.chanjar.weixin.common.bean.WxAccessToken;
+import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
+
 /**
  * 基于内存的微信配置provider,在实际生产环境中应该将这些配置持久化
  *
@@ -189,7 +191,7 @@ public class WxMaInMemoryConfig implements WxMaConfig {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   @Override
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInMemoryConfigStorage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInMemoryConfigStorage.java
index 46a22fa8..eb15cd0f 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInMemoryConfigStorage.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInMemoryConfigStorage.java
@@ -1,13 +1,15 @@
 package me.chanjar.weixin.mp.api;
 
-import me.chanjar.weixin.common.bean.WxAccessToken;
-import me.chanjar.weixin.common.util.ToStringUtils;
-import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
-
 import java.io.File;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import me.chanjar.weixin.common.bean.WxAccessToken;
+import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
+
 /**
  * 基于内存的微信配置provider,在实际生产环境中应该将这些配置持久化
  *
@@ -248,7 +250,7 @@ public class WxMpInMemoryConfigStorage implements WxMpConfigStorage {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   @Override
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpCard.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpCard.java
index 0fcb9185..622dca9e 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpCard.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpCard.java
@@ -1,11 +1,13 @@
 package me.chanjar.weixin.mp.bean;
 
 
-import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
-
 import java.io.Serializable;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import lombok.Data;
+
 /**
  * 微信卡券
  *
@@ -28,6 +30,6 @@ public class WxMpCard implements Serializable{
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassNews.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassNews.java
index b2ef87b1..5dd8c2ad 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassNews.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassNews.java
@@ -1,15 +1,17 @@
 package me.chanjar.weixin.mp.bean;
 
-import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
-import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
-
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import lombok.Data;
+import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
+
 /**
- * 群发时用到的图文消息素材
+ * 群发时用到的图文消息素材.
  *
  * @author chanjarster
  */
@@ -33,12 +35,12 @@ public class WxMpMassNews implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   /**
    * 
-   * 群发图文消息article
+   * 群发图文消息article.
    * 1. thumbMediaId  (必填) 图文消息缩略图的media_id,可以在基础支持-上传多媒体文件接口中获得
    * 2. author          图文消息的作者
    * 3. title           (必填) 图文消息的标题
@@ -53,37 +55,37 @@ public class WxMpMassNews implements Serializable {
   @Data
   public static class WxMpMassNewsArticle {
     /**
-     * (必填) 图文消息缩略图的media_id,可以在基础支持-上传多媒体文件接口中获得
+     * (必填) 图文消息缩略图的media_id,可以在基础支持-上传多媒体文件接口中获得.
      */
     private String thumbMediaId;
     /**
-     * 图文消息的作者
+     * 图文消息的作者.
      */
     private String author;
     /**
-     * (必填) 图文消息的标题
+     * (必填) 图文消息的标题.
      */
     private String title;
     /**
-     * 在图文消息页面点击“阅读原文”后的页面链接
+     * 在图文消息页面点击“阅读原文”后的页面链接.
      */
     private String contentSourceUrl;
     /**
-     * (必填) 图文消息页面的内容,支持HTML标签
+     * (必填) 图文消息页面的内容,支持HTML标签.
      */
     private String content;
     /**
-     * 图文消息的描述
+     * 图文消息的描述.
      */
     private String digest;
     /**
-     * 是否显示封面,true为显示,false为不显示
+     * 是否显示封面,true为显示,false为不显示.
      */
     private boolean showCoverPic;
 
     @Override
     public String toString() {
-      return ToStringUtils.toSimpleString(this);
+      return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
     }
   }
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeBaseResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeBaseResult.java
index df86ab4e..ee2a7d93 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeBaseResult.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeBaseResult.java
@@ -1,11 +1,13 @@
 package me.chanjar.weixin.mp.bean.datacube;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.JsonParser;
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
-
-import java.io.Serializable;
 
 /**
  * 
@@ -29,7 +31,7 @@ public abstract class WxDataCubeBaseResult implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserCumulate.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserCumulate.java
index ee0db76a..5275e140 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserCumulate.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserCumulate.java
@@ -1,20 +1,24 @@
 package me.chanjar.weixin.mp.bean.datacube;
 
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.JsonParser;
 import com.google.gson.reflect.TypeToken;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-import java.util.Date;
-import java.util.List;
-
 /**
  * 
  * 累计用户数据接口的返回JSON数据包
  * 详情查看文档:用户分析数据接口
  * 
+ * + * @author BinaryWang */ @Data public class WxDataCubeUserCumulate implements Serializable { @@ -35,6 +39,6 @@ public class WxDataCubeUserCumulate implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserSummary.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserSummary.java index 48c53a7e..06d93821 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserSummary.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserSummary.java @@ -1,15 +1,17 @@ package me.chanjar.weixin.mp.bean.datacube; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + import com.google.gson.JsonParser; import com.google.gson.reflect.TypeToken; import lombok.Data; -import me.chanjar.weixin.common.util.ToStringUtils; import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; -import java.io.Serializable; -import java.util.Date; -import java.util.List; - /** *
  * 用户增减数据接口的返回JSON数据包
@@ -39,6 +41,6 @@ public class WxDataCubeUserSummary implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/device/WxDeviceMsg.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/device/WxDeviceMsg.java
index 4128a9f8..9e12a5bb 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/device/WxDeviceMsg.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/device/WxDeviceMsg.java
@@ -1,9 +1,11 @@
 package me.chanjar.weixin.mp.bean.device;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import me.chanjar.weixin.common.util.ToStringUtils;
 
 /**
  * @author keungtung.
@@ -24,6 +26,6 @@ public class WxDeviceMsg extends AbstractDeviceBean {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/request/WxMpKfSessionRequest.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/request/WxMpKfSessionRequest.java
index 2f077d3f..6cc00f5c 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/request/WxMpKfSessionRequest.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/request/WxMpKfSessionRequest.java
@@ -1,12 +1,14 @@
 package me.chanjar.weixin.mp.bean.kefu.request;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-
 @Data
 public class WxMpKfSessionRequest implements Serializable {
   private static final long serialVersionUID = -5451863610674856927L;
@@ -30,7 +32,7 @@ public class WxMpKfSessionRequest implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   public String toJson() {
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfInfo.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfInfo.java
index 60b5370d..76f25d9b 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfInfo.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfInfo.java
@@ -1,11 +1,13 @@
 package me.chanjar.weixin.mp.bean.kefu.result;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.Expose;
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
-
-import java.io.Serializable;
 
 /**
  * 客服基本信息以及客服在线状态信息
@@ -79,7 +81,7 @@ public class WxMpKfInfo implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfList.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfList.java
index 3d9a8872..d7ac2043 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfList.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfList.java
@@ -1,13 +1,15 @@
 package me.chanjar.weixin.mp.bean.kefu.result;
 
+import java.io.Serializable;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-import java.util.List;
-
 /**
  * @author Binary Wang
  */
@@ -24,7 +26,7 @@ public class WxMpKfList implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfMsgList.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfMsgList.java
index ee2f7514..01b262dd 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfMsgList.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfMsgList.java
@@ -1,13 +1,15 @@
 package me.chanjar.weixin.mp.bean.kefu.result;
 
+import java.io.Serializable;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-import java.util.List;
-
 /**
  *
  * @author Binary Wang
@@ -32,6 +34,6 @@ public class WxMpKfMsgList implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfMsgRecord.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfMsgRecord.java
index baba81da..fc3a1471 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfMsgRecord.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfMsgRecord.java
@@ -1,10 +1,12 @@
 package me.chanjar.weixin.mp.bean.kefu.result;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
-
-import java.io.Serializable;
 
 /**
  *
@@ -47,7 +49,7 @@ public class WxMpKfMsgRecord implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   public String getWorker() {
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfOnlineList.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfOnlineList.java
index cb5f9071..e1e8c298 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfOnlineList.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfOnlineList.java
@@ -1,13 +1,15 @@
 package me.chanjar.weixin.mp.bean.kefu.result;
 
+import java.io.Serializable;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-import java.util.List;
-
 /**
  * @author Binary Wang
  */
@@ -24,7 +26,7 @@ public class WxMpKfOnlineList implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSession.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSession.java
index 16110254..c5e9b02a 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSession.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSession.java
@@ -1,10 +1,12 @@
 package me.chanjar.weixin.mp.bean.kefu.result;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
-
-import java.io.Serializable;
 
 /**
  * @author Binary Wang
@@ -41,7 +43,7 @@ public class WxMpKfSession implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSessionGetResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSessionGetResult.java
index 5f4b318c..628bd7c4 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSessionGetResult.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSessionGetResult.java
@@ -1,12 +1,14 @@
 package me.chanjar.weixin.mp.bean.kefu.result;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-
 /**
  * @author Binary Wang
  */
@@ -32,7 +34,7 @@ public class WxMpKfSessionGetResult implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSessionList.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSessionList.java
index e12def66..4aacdd1e 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSessionList.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSessionList.java
@@ -1,13 +1,15 @@
 package me.chanjar.weixin.mp.bean.kefu.result;
 
+import java.io.Serializable;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-import java.util.List;
-
 /**
  * @author Binary Wang
  */
@@ -28,7 +30,7 @@ public class WxMpKfSessionList implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSessionWaitCaseList.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSessionWaitCaseList.java
index 872ba7db..69b5b915 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSessionWaitCaseList.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/kefu/result/WxMpKfSessionWaitCaseList.java
@@ -1,13 +1,15 @@
 package me.chanjar.weixin.mp.bean.kefu.result;
 
+import java.io.Serializable;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-import java.util.List;
-
 /**
  * @author Binary Wang
  */
@@ -34,7 +36,7 @@ public class WxMpKfSessionWaitCaseList implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialCountResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialCountResult.java
index 0bb33841..ba457e79 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialCountResult.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialCountResult.java
@@ -1,10 +1,15 @@
 package me.chanjar.weixin.mp.bean.material;
 
-import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
-
 import java.io.Serializable;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import lombok.Data;
+
+/**
+ * @author codepiano
+ */
 @Data
 public class WxMpMaterialCountResult implements Serializable {
   private static final long serialVersionUID = -5568772662085874138L;
@@ -16,7 +21,7 @@ public class WxMpMaterialCountResult implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 }
 
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialFileBatchGetResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialFileBatchGetResult.java
index 4f445a28..3d6e9353 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialFileBatchGetResult.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialFileBatchGetResult.java
@@ -1,12 +1,17 @@
 package me.chanjar.weixin.mp.bean.material;
 
-import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
-
 import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import lombok.Data;
+
+/**
+ * @author codepiano
+ */
 @Data
 public class WxMpMaterialFileBatchGetResult implements Serializable {
   private static final long serialVersionUID = -560388368297267884L;
@@ -17,7 +22,7 @@ public class WxMpMaterialFileBatchGetResult implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   @Data
@@ -29,7 +34,7 @@ public class WxMpMaterialFileBatchGetResult implements Serializable {
 
     @Override
     public String toString() {
-      return ToStringUtils.toSimpleString(this);
+      return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
     }
   }
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialNews.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialNews.java
index 2a2439da..16f787a3 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialNews.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialNews.java
@@ -1,14 +1,19 @@
 package me.chanjar.weixin.mp.bean.material;
 
-import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
-import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
-
 import java.io.Serializable;
-import java.util.Date;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import lombok.Data;
+import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
+
+/**
+ * @author codepiano
+ */
 @Data
 public class WxMpMaterialNews implements Serializable {
   private static final long serialVersionUID = -3283203652013494976L;
@@ -110,7 +115,7 @@ public class WxMpMaterialNews implements Serializable {
 
     @Override
     public String toString() {
-      return ToStringUtils.toSimpleString(this);
+      return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
     }
   }
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialNewsBatchGetResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialNewsBatchGetResult.java
index 77fe8b56..47e6cb53 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialNewsBatchGetResult.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialNewsBatchGetResult.java
@@ -1,12 +1,14 @@
 package me.chanjar.weixin.mp.bean.material;
 
-import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
-
 import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import lombok.Data;
+
 @Data
 public class WxMpMaterialNewsBatchGetResult implements Serializable {
   private static final long serialVersionUID = -1617952797921001666L;
@@ -17,7 +19,7 @@ public class WxMpMaterialNewsBatchGetResult implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   @Data
@@ -28,7 +30,7 @@ public class WxMpMaterialNewsBatchGetResult implements Serializable {
 
     @Override
     public String toString() {
-      return ToStringUtils.toSimpleString(this);
+      return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
     }
   }
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialUploadResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialUploadResult.java
index 6a4630e5..15744ce5 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialUploadResult.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialUploadResult.java
@@ -1,11 +1,13 @@
 package me.chanjar.weixin.mp.bean.material;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-
 @Data
 public class WxMpMaterialUploadResult implements Serializable {
   private static final long serialVersionUID = -128818731449449537L;
@@ -20,7 +22,7 @@ public class WxMpMaterialUploadResult implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/membercard/WxMpMemberCardUpdateResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/membercard/WxMpMemberCardUpdateResult.java
index 355b67df..96b8212d 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/membercard/WxMpMemberCardUpdateResult.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/membercard/WxMpMemberCardUpdateResult.java
@@ -1,11 +1,13 @@
 package me.chanjar.weixin.mp.bean.membercard;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-
 /**
  * 
  * 用于 `7 更新会员信息` 的接口调用后的返回结果
@@ -32,7 +34,7 @@ public class WxMpMemberCardUpdateResult implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   public static WxMpMemberCardUpdateResult fromJson(String json) {
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/membercard/WxMpMemberCardUserInfoResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/membercard/WxMpMemberCardUserInfoResult.java
index d87f4ba3..705dba78 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/membercard/WxMpMemberCardUserInfoResult.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/membercard/WxMpMemberCardUserInfoResult.java
@@ -1,11 +1,13 @@
 package me.chanjar.weixin.mp.bean.membercard;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-
 /**
  * 
  * 拉取会员信息返回的结果
@@ -45,7 +47,7 @@ public class WxMpMemberCardUserInfoResult implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   public static WxMpMemberCardUserInfoResult fromJson(String json) {
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpGetSelfMenuInfoResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpGetSelfMenuInfoResult.java
index b8258b1d..2c370eaf 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpGetSelfMenuInfoResult.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpGetSelfMenuInfoResult.java
@@ -1,12 +1,14 @@
 package me.chanjar.weixin.mp.bean.menu;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.common.util.json.WxGsonBuilder;
 
-import java.io.Serializable;
-
 /**
  * 
  * Created by Binary Wang on 2016-11-25.
@@ -30,7 +32,7 @@ public class WxMpGetSelfMenuInfoResult implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpMenu.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpMenu.java
index 1847be3f..e36a2b23 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpMenu.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpMenu.java
@@ -1,15 +1,17 @@
 package me.chanjar.weixin.mp.bean.menu;
 
+import java.io.Serializable;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
 import me.chanjar.weixin.common.bean.menu.WxMenuButton;
 import me.chanjar.weixin.common.bean.menu.WxMenuRule;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.common.util.json.WxGsonBuilder;
 
-import java.io.Serializable;
-import java.util.List;
-
 /**
  * 
  *   公众号专用的菜单类,可能包含个性化菜单
@@ -34,7 +36,7 @@ public class WxMpMenu implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   public String toJson() {
@@ -54,7 +56,7 @@ public class WxMpMenu implements Serializable {
 
     @Override
     public String toString() {
-      return ToStringUtils.toSimpleString(this);
+      return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
     }
 
   }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpSelfMenuInfo.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpSelfMenuInfo.java
index 2532a092..b9d8e941 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpSelfMenuInfo.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpSelfMenuInfo.java
@@ -1,13 +1,15 @@
 package me.chanjar.weixin.mp.bean.menu;
 
-import com.google.gson.annotations.SerializedName;
-import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
-
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+
 /**
  * 
  * Created by Binary Wang on 2016-11-25.
@@ -27,7 +29,7 @@ public class WxMpSelfMenuInfo implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   @Data
@@ -87,7 +89,7 @@ public class WxMpSelfMenuInfo implements Serializable {
 
     @Override
     public String toString() {
-      return ToStringUtils.toSimpleString(this);
+      return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
     }
 
     @Data
@@ -99,7 +101,7 @@ public class WxMpSelfMenuInfo implements Serializable {
 
       @Override
       public String toString() {
-        return ToStringUtils.toSimpleString(this);
+        return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
       }
     }
 
@@ -112,7 +114,7 @@ public class WxMpSelfMenuInfo implements Serializable {
 
       @Override
       public String toString() {
-        return ToStringUtils.toSimpleString(this);
+        return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
       }
 
       @Data
@@ -158,7 +160,7 @@ public class WxMpSelfMenuInfo implements Serializable {
 
         @Override
         public String toString() {
-          return ToStringUtils.toSimpleString(this);
+          return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
         }
 
       }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/HardWare.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/HardWare.java
index 6cef393e..f29321d4 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/HardWare.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/HardWare.java
@@ -1,13 +1,15 @@
 package me.chanjar.weixin.mp.bean.message;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.thoughtworks.xstream.annotations.XStreamAlias;
 import com.thoughtworks.xstream.annotations.XStreamConverter;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.common.util.xml.XStreamCDataConverter;
 
-import java.io.Serializable;
-
 /**
  * 
  *  Created by BinaryWang on 2017/5/4.
@@ -35,6 +37,6 @@ public class HardWare implements Serializable{
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/ScanCodeInfo.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/ScanCodeInfo.java
index 630090c2..2af977ca 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/ScanCodeInfo.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/ScanCodeInfo.java
@@ -1,13 +1,15 @@
 package me.chanjar.weixin.mp.bean.message;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.thoughtworks.xstream.annotations.XStreamAlias;
 import com.thoughtworks.xstream.annotations.XStreamConverter;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.common.util.xml.XStreamCDataConverter;
 
-import java.io.Serializable;
-
 /**
  * 
  *  Created by BinaryWang on 2017/5/4.
@@ -20,31 +22,23 @@ import java.io.Serializable;
 public class ScanCodeInfo implements Serializable {
   private static final long serialVersionUID = 4745181270645050122L;
 
+  /**
+   * 扫描类型,一般是qrcode.
+   */
   @XStreamAlias("ScanType")
   @XStreamConverter(value = XStreamCDataConverter.class)
   private String scanType;
+
+  /**
+   * 扫描结果,即二维码对应的字符串信息.
+   */
   @XStreamAlias("ScanResult")
   @XStreamConverter(value = XStreamCDataConverter.class)
   private String scanResult;
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
-  /**
-   * 扫描类型,一般是qrcode
-   */
-  public String getScanType() {
-    return this.scanType;
-  }
-
-  /**
-   * 扫描结果,即二维码对应的字符串信息
-   */
-  public String getScanResult() {
-    return this.scanResult;
-  }
-
-
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendLocationInfo.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendLocationInfo.java
index c7c8fda6..5d725557 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendLocationInfo.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendLocationInfo.java
@@ -1,13 +1,15 @@
 package me.chanjar.weixin.mp.bean.message;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.thoughtworks.xstream.annotations.XStreamAlias;
 import com.thoughtworks.xstream.annotations.XStreamConverter;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.common.util.xml.XStreamCDataConverter;
 
-import java.io.Serializable;
-
 /**
  * 
  *  Created by BinaryWang on 2017/5/4.
@@ -42,6 +44,6 @@ public class SendLocationInfo implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendPicsInfo.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendPicsInfo.java
index 51806768..318e7cee 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendPicsInfo.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendPicsInfo.java
@@ -1,15 +1,17 @@
 package me.chanjar.weixin.mp.bean.message;
 
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.thoughtworks.xstream.annotations.XStreamAlias;
 import com.thoughtworks.xstream.annotations.XStreamConverter;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.common.util.xml.XStreamCDataConverter;
 
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * 
  *  Created by BinaryWang on 2017/5/4.
@@ -30,7 +32,7 @@ public class SendPicsInfo implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   @XStreamAlias("item")
@@ -44,7 +46,7 @@ public class SendPicsInfo implements Serializable {
 
     @Override
     public String toString() {
-      return ToStringUtils.toSimpleString(this);
+      return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
     }
 
   }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java
index 39de79e9..477a885c 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java
@@ -5,12 +5,13 @@ import java.io.InputStream;
 import java.io.Serializable;
 
 import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
 
 import com.thoughtworks.xstream.annotations.XStreamAlias;
 import com.thoughtworks.xstream.annotations.XStreamConverter;
 import lombok.Data;
 import me.chanjar.weixin.common.api.WxConsts;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.common.util.xml.XStreamCDataConverter;
 import me.chanjar.weixin.mp.api.WxMpConfigStorage;
 import me.chanjar.weixin.mp.util.crypto.WxMpCryptUtil;
@@ -530,7 +531,7 @@ public class WxMpXmlMessage implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpCardResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpCardResult.java
index 2f478a20..7cbf9b7f 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpCardResult.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpCardResult.java
@@ -1,11 +1,13 @@
 package me.chanjar.weixin.mp.bean.result;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.bean.WxMpCard;
 
-import java.io.Serializable;
-
 /**
  * 卡券查询Code,核销Code接口返回结果
  *
@@ -30,7 +32,7 @@ public class WxMpCardResult implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpCurrentAutoReplyInfo.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpCurrentAutoReplyInfo.java
index 52bebcf9..d68fcacf 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpCurrentAutoReplyInfo.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpCurrentAutoReplyInfo.java
@@ -1,23 +1,26 @@
 package me.chanjar.weixin.mp.bean.result;
 
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.JsonAdapter;
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.common.util.json.WxBooleanTypeAdapter;
 import me.chanjar.weixin.common.util.json.WxDateTypeAdapter;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-import java.util.Date;
-import java.util.List;
-
 /**
  * 
- * 公众号的自动回复规则
+ * 公众号的自动回复规则.
  * Created by Binary Wang on 2017-7-8.
- * @author Binary Wang
  * 
+ * + * @author Binary Wang */ @Data public class WxMpCurrentAutoReplyInfo implements Serializable { @@ -25,7 +28,7 @@ public class WxMpCurrentAutoReplyInfo implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } public static WxMpCurrentAutoReplyInfo fromJson(String json) { @@ -55,7 +58,7 @@ public class WxMpCurrentAutoReplyInfo implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } @SerializedName("rule_name") @@ -82,7 +85,7 @@ public class WxMpCurrentAutoReplyInfo implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } private String type; @@ -99,7 +102,7 @@ public class WxMpCurrentAutoReplyInfo implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } private List list; @@ -112,7 +115,7 @@ public class WxMpCurrentAutoReplyInfo implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } @SerializedName("cover_url") @@ -136,7 +139,7 @@ public class WxMpCurrentAutoReplyInfo implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } private String type; @@ -152,7 +155,7 @@ public class WxMpCurrentAutoReplyInfo implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } private List list; @@ -164,7 +167,7 @@ public class WxMpCurrentAutoReplyInfo implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } private String type; diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpMassSendResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpMassSendResult.java index d0d2a9d8..392cc046 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpMassSendResult.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpMassSendResult.java @@ -1,11 +1,13 @@ package me.chanjar.weixin.mp.bean.result; +import java.io.Serializable; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + import lombok.Data; -import me.chanjar.weixin.common.util.ToStringUtils; import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; -import java.io.Serializable; - /** *
  * 群发消息一发送就返回的结果
@@ -32,7 +34,7 @@ public class WxMpMassSendResult implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpMassUploadResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpMassUploadResult.java
index a1362725..98410891 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpMassUploadResult.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpMassUploadResult.java
@@ -1,14 +1,16 @@
 package me.chanjar.weixin.mp.bean.result;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-
 /**
  * 
- * 上传群发用的素材的结果
+ * 上传群发用的素材的结果.
  * 视频和图文消息需要在群发前上传素材
  * 
* @@ -28,7 +30,7 @@ public class WxMpMassUploadResult implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpOAuth2AccessToken.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpOAuth2AccessToken.java index b0429cf7..33fa172d 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpOAuth2AccessToken.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpOAuth2AccessToken.java @@ -1,11 +1,13 @@ package me.chanjar.weixin.mp.bean.result; +import java.io.Serializable; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + import lombok.Data; -import me.chanjar.weixin.common.util.ToStringUtils; import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; -import java.io.Serializable; - /** * https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842 */ @@ -35,6 +37,6 @@ public class WxMpOAuth2AccessToken implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpUser.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpUser.java index 5d9c6bce..818c4c5f 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpUser.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpUser.java @@ -4,11 +4,13 @@ import java.io.Serializable; import java.lang.reflect.Type; import java.util.List; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + import com.google.gson.Gson; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; import lombok.Data; -import me.chanjar.weixin.common.util.ToStringUtils; import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; /** @@ -87,7 +89,7 @@ public class WxMpUser implements Serializable { @Override public String toString() { - return ToStringUtils.toSimpleString(this); + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/store/WxMpStoreBaseInfo.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/store/WxMpStoreBaseInfo.java index 007826bb..03f814af 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/store/WxMpStoreBaseInfo.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/store/WxMpStoreBaseInfo.java @@ -1,18 +1,20 @@ package me.chanjar.weixin.mp.bean.store; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.annotations.SerializedName; import lombok.Builder; import lombok.Data; import me.chanjar.weixin.common.annotation.Required; -import me.chanjar.weixin.common.util.ToStringUtils; import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.List; - /** *
  *  门店基础信息
@@ -177,7 +179,7 @@ public class WxMpStoreBaseInfo implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   public String toJson() {
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/store/WxMpStoreInfo.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/store/WxMpStoreInfo.java
index a72fb5d4..3002e190 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/store/WxMpStoreInfo.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/store/WxMpStoreInfo.java
@@ -1,11 +1,16 @@
 package me.chanjar.weixin.mp.bean.store;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
-
-import java.io.Serializable;
 
+/**
+ * @author BinaryWang
+ */
 @Data
 public class WxMpStoreInfo implements Serializable{
   private static final long serialVersionUID = 7300598931768355461L;
@@ -15,6 +20,6 @@ public class WxMpStoreInfo implements Serializable{
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/store/WxMpStoreListResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/store/WxMpStoreListResult.java
index 5fdfa944..079b5c1c 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/store/WxMpStoreListResult.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/store/WxMpStoreListResult.java
@@ -1,13 +1,15 @@
 package me.chanjar.weixin.mp.bean.store;
 
+import java.io.Serializable;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-import java.util.List;
-
 /**
  * 
  * 门店列表结果类
@@ -21,22 +23,22 @@ public class WxMpStoreListResult implements Serializable {
   private static final long serialVersionUID = 5388907559949538663L;
 
   /**
-   * 错误码,0为正常
+   * 错误码,0为正常.
    */
   @SerializedName("errcode")
   private Integer errCode;
   /**
-   * 错误信息
+   * 错误信息.
    */
   @SerializedName("errmsg")
   private String errMsg;
   /**
-   * 门店信息列表
+   * 门店信息列表.
    */
   @SerializedName("business_list")
   private List businessList;
   /**
-   * 门店信息总数
+   * 门店信息总数.
    */
   @SerializedName("total_count")
   private Integer totalCount;
@@ -47,7 +49,7 @@ public class WxMpStoreListResult implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/tag/WxTagListUser.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/tag/WxTagListUser.java
index f9697923..d6606cf1 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/tag/WxTagListUser.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/tag/WxTagListUser.java
@@ -1,13 +1,15 @@
 package me.chanjar.weixin.mp.bean.tag;
 
+import java.io.Serializable;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-import java.util.List;
-
 /**
  * 
  * 获取标签下粉丝列表的结果对象
@@ -21,17 +23,17 @@ public class WxTagListUser implements Serializable {
   private static final long serialVersionUID = -4551768374200676112L;
 
   /**
-   * "count":2,这次获取的粉丝数量
+   * "count":2,这次获取的粉丝数量.
    */
   @SerializedName("count")
   private Integer count;
   /**
-   * "data" 粉丝列表
+   * "data" 粉丝列表.
    */
   @SerializedName("data")
   private WxTagListUserData data;
   /**
-   * "next_openid" 拉取列表最后一个用户的openid
+   * "next_openid" 拉取列表最后一个用户的openid.
    */
   @SerializedName("next_openid")
   private String nextOpenid;
@@ -46,7 +48,7 @@ public class WxTagListUser implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   @Data
@@ -54,14 +56,14 @@ public class WxTagListUser implements Serializable {
     private static final long serialVersionUID = -8584537400336245701L;
 
     /**
-     * openid 列表
+     * openid 列表.
      */
     @SerializedName("openid")
     private List openidList;
 
     @Override
     public String toString() {
-      return ToStringUtils.toSimpleString(this);
+      return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
     }
   }
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/tag/WxUserTag.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/tag/WxUserTag.java
index a54199ef..77251df2 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/tag/WxUserTag.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/tag/WxUserTag.java
@@ -1,14 +1,16 @@
 package me.chanjar.weixin.mp.bean.tag;
 
+import java.io.Serializable;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.JsonParser;
 import com.google.gson.reflect.TypeToken;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-import java.util.List;
-
 /**
  * 
  *  用户标签对象
@@ -22,17 +24,17 @@ public class WxUserTag implements Serializable {
   private static final long serialVersionUID = -7722428695667031252L;
 
   /**
-   * id	标签id,由微信分配
+   * 标签id,由微信分配.
    */
   private Long id;
 
   /**
-   * name	标签名,UTF8编码
+   * 标签名,UTF8编码.
    */
   private String name;
 
   /**
-   * count 此标签下粉丝数
+   * 此标签下粉丝数.
    */
   private Integer count;
 
@@ -55,6 +57,6 @@ public class WxUserTag implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplate.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplate.java
index c9b12cdf..5ccd89fd 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplate.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplate.java
@@ -1,15 +1,17 @@
 package me.chanjar.weixin.mp.bean.template;
 
+import java.io.Serializable;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.google.gson.JsonParser;
 import com.google.gson.annotations.SerializedName;
 import com.google.gson.reflect.TypeToken;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-import java.util.List;
-
 /**
  * 
  * 模板列表信息
@@ -24,37 +26,37 @@ public class WxMpTemplate implements Serializable {
   private static final long serialVersionUID = -7366474522571199372L;
 
   /**
-   * template_id
+   * template_id.
    * 模板ID
    */
   @SerializedName("template_id")
   private String templateId;
   /**
-   * title
+   * title.
    * 模板标题
    */
   @SerializedName("title")
   private String title;
   /**
-   * primary_industry
+   * primary_industry.
    * 模板所属行业的一级行业
    */
   @SerializedName("primary_industry")
   private String primaryIndustry;
   /**
-   * deputy_industry
+   * deputy_industry.
    * 模板所属行业的二级行业
    */
   @SerializedName("deputy_industry")
   private String deputyIndustry;
   /**
-   * content
+   * content.
    * 模板内容
    */
   @SerializedName("content")
   private String content;
   /**
-   * example
+   * example.
    * 模板示例
    */
   @SerializedName("example")
@@ -68,7 +70,7 @@ public class WxMpTemplate implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateIndustry.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateIndustry.java
index 363ddad7..40bfd18a 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateIndustry.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateIndustry.java
@@ -1,12 +1,14 @@
 package me.chanjar.weixin.mp.bean.template;
 
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
 
-import java.io.Serializable;
-
 /**
  * @author miller
  */
@@ -31,7 +33,7 @@ public class WxMpTemplateIndustry implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   public String toJson() {
@@ -39,8 +41,7 @@ public class WxMpTemplateIndustry implements Serializable {
   }
 
   /**
-   * @author miller
-   *         官方文档中,创建和获取的数据结构不一样。所以采用冗余字段的方式,实现相应的接口
+   * 官方文档中,创建和获取的数据结构不一样。所以采用冗余字段的方式,实现相应的接口.
    */
   @Data
   public static class Industry implements Serializable {
@@ -64,7 +65,7 @@ public class WxMpTemplateIndustry implements Serializable {
 
     @Override
     public String toString() {
-      return ToStringUtils.toSimpleString(this);
+      return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
     }
 
   }
diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java
index 8c521970..a340be81 100644
--- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java
+++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java
@@ -1,21 +1,23 @@
 package me.chanjar.weixin.open.api.impl;
 
 
+import java.io.File;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import cn.binarywang.wx.miniapp.config.WxMaConfig;
 import me.chanjar.weixin.common.bean.WxAccessToken;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
 import me.chanjar.weixin.mp.api.WxMpConfigStorage;
 import me.chanjar.weixin.open.api.WxOpenConfigStorage;
 import me.chanjar.weixin.open.bean.WxOpenAuthorizerAccessToken;
 import me.chanjar.weixin.open.bean.WxOpenComponentAccessToken;
 
-import java.io.File;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
-
 /**
  * 基于内存的微信配置provider,在实际生产环境中应该将这些配置持久化
  *
@@ -448,7 +450,7 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {
 
     @Override
     public String toString() {
-      return ToStringUtils.toSimpleString(this);
+      return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
     }
 
     @Override
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayBankQueryRequest.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayBankQueryRequest.java
index 804d305b..83d74192 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayBankQueryRequest.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayBankQueryRequest.java
@@ -1,10 +1,9 @@
 package com.github.binarywang.wxpay.bean.entpay;
 
-import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
 import com.thoughtworks.xstream.annotations.XStreamAlias;
-import lombok.*;
-import me.chanjar.weixin.common.annotation.Required;
-import me.chanjar.weixin.common.util.ToStringUtils;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
 
 /**
  * 
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayQueryRequest.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayQueryRequest.java
index 3f1a240a..a34eaaa4 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayQueryRequest.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayQueryRequest.java
@@ -1,10 +1,16 @@
 package com.github.binarywang.wxpay.bean.entpay;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
 import com.thoughtworks.xstream.annotations.XStreamAlias;
-import lombok.*;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
 import me.chanjar.weixin.common.annotation.Required;
-import me.chanjar.weixin.common.util.ToStringUtils;
 
 /**
  * 
@@ -44,7 +50,7 @@ public class EntPayQueryRequest extends BaseWxPayRequest {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   @Override
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayRequest.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayRequest.java
index 1ff25e78..4f640f25 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayRequest.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayRequest.java
@@ -1,10 +1,16 @@
 package com.github.binarywang.wxpay.bean.entpay;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
 import com.thoughtworks.xstream.annotations.XStreamAlias;
-import lombok.*;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
 import me.chanjar.weixin.common.annotation.Required;
-import me.chanjar.weixin.common.util.ToStringUtils;
 
 /**
  * 
@@ -188,7 +194,7 @@ public class EntPayRequest extends BaseWxPayRequest {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   @Override
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayOrderNotifyCoupon.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayOrderNotifyCoupon.java
index 80da09e6..1c076f5d 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayOrderNotifyCoupon.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayOrderNotifyCoupon.java
@@ -1,15 +1,18 @@
 package com.github.binarywang.wxpay.bean.notify;
 
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import me.chanjar.weixin.common.util.ToStringUtils;
-
 import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
 /**
- * 支付异步通知代金券详细
+ * 支付异步通知代金券详细.
+ * @author aimilin
  */
 @Data
 @NoArgsConstructor
@@ -30,6 +33,6 @@ public class WxPayOrderNotifyCoupon implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 }
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayOrderNotifyResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayOrderNotifyResult.java
index 006fe1d7..9ab45a31 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayOrderNotifyResult.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayOrderNotifyResult.java
@@ -1,5 +1,11 @@
 package com.github.binarywang.wxpay.bean.notify;
 
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.github.binarywang.wxpay.bean.result.BaseWxPayResult;
 import com.github.binarywang.wxpay.converter.WxPayOrderNotifyResultConverter;
 import com.github.binarywang.wxpay.util.SignUtils;
@@ -8,12 +14,8 @@ import com.thoughtworks.xstream.annotations.XStreamAlias;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.common.util.xml.XStreamInitializer;
 
-import java.util.List;
-import java.util.Map;
-
 /**
  * 支付结果通用通知 ,文档见:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7
  *
@@ -306,6 +308,6 @@ public class WxPayOrderNotifyResult extends BaseWxPayResult {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 }
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayRefundNotifyResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayRefundNotifyResult.java
index dc929030..31499ac8 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayRefundNotifyResult.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayRefundNotifyResult.java
@@ -1,5 +1,14 @@
 package com.github.binarywang.wxpay.bean.notify;
 
+import java.io.Serializable;
+import javax.crypto.Cipher;
+import javax.crypto.spec.SecretKeySpec;
+
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.github.binarywang.wxpay.bean.result.BaseWxPayResult;
 import com.github.binarywang.wxpay.exception.WxPayException;
 import com.thoughtworks.xstream.XStream;
@@ -8,16 +17,7 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.common.util.xml.XStreamInitializer;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.codec.digest.DigestUtils;
-
-import javax.crypto.Cipher;
-import javax.crypto.spec.SecretKeySpec;
-import java.io.Serializable;
-import java.math.BigInteger;
-import java.security.MessageDigest;
 
 /**
  * 
@@ -73,7 +73,7 @@ public class WxPayRefundNotifyResult extends BaseWxPayResult implements Serializ
   private ReqInfo reqInfo;
 
   /**
-   * 加密信息字段解密后的内容
+   * 加密信息字段解密后的内容.
    */
   @Data
   @NoArgsConstructor
@@ -81,12 +81,12 @@ public class WxPayRefundNotifyResult extends BaseWxPayResult implements Serializ
   public static class ReqInfo {
     @Override
     public String toString() {
-      return ToStringUtils.toSimpleString(this);
+      return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
     }
 
     /**
      * 
-     * 字段名:微信订单号
+     * 字段名:微信订单号.
      * 变量名:transaction_id
      * 是否必填:是
      * 类型:String(32)
@@ -99,7 +99,7 @@ public class WxPayRefundNotifyResult extends BaseWxPayResult implements Serializ
 
     /**
      * 
-     * 字段名:商户订单号
+     * 字段名:商户订单号.
      * 变量名:out_trade_no
      * 是否必填:是
      * 类型:String(32)
@@ -112,7 +112,7 @@ public class WxPayRefundNotifyResult extends BaseWxPayResult implements Serializ
 
     /**
      * 
-     * 字段名:微信退款单号
+     * 字段名:微信退款单号.
      * 变量名:refund_id
      * 是否必填:是
      * 类型:String(28)
@@ -125,7 +125,7 @@ public class WxPayRefundNotifyResult extends BaseWxPayResult implements Serializ
 
     /**
      * 
-     * 字段名:商户退款单号
+     * 字段名:商户退款单号.
      * 变量名:out_refund_no
      * 是否必填:是
      * 类型:String(64)
@@ -138,7 +138,7 @@ public class WxPayRefundNotifyResult extends BaseWxPayResult implements Serializ
 
     /**
      * 
-     * 字段名:订单金额
+     * 字段名:订单金额.
      * 变量名:total_fee
      * 是否必填:是
      * 类型:Int
@@ -151,7 +151,7 @@ public class WxPayRefundNotifyResult extends BaseWxPayResult implements Serializ
 
     /**
      * 
-     * 字段名:结订单金额
+     * 字段名:结订单金额.
      * 变量名:settlement_total_fee
      * 是否必填:否
      * 类型:Int
@@ -164,7 +164,7 @@ public class WxPayRefundNotifyResult extends BaseWxPayResult implements Serializ
 
     /**
      * 
-     * 字段名:申请退款金额
+     * 字段名:申请退款金额.
      * 变量名:refund_fee
      * 是否必填:是
      * 类型:Int
@@ -177,7 +177,7 @@ public class WxPayRefundNotifyResult extends BaseWxPayResult implements Serializ
 
     /**
      * 
-     * 字段名:退款金额
+     * 字段名:退款金额.
      * 变量名:settlement_refund_fee
      * 是否必填:是
      * 类型:Int
@@ -190,7 +190,7 @@ public class WxPayRefundNotifyResult extends BaseWxPayResult implements Serializ
 
     /**
      * 
-     * 字段名:退款状态
+     * 字段名:退款状态.
      * 变量名:refund_status
      * 是否必填:是
      * 类型:String(16)
@@ -203,7 +203,7 @@ public class WxPayRefundNotifyResult extends BaseWxPayResult implements Serializ
 
     /**
      * 
-     * 字段名:退款成功时间
+     * 字段名:退款成功时间.
      * 变量名:success_time
      * 是否必填:否
      * 类型: String(20)
@@ -215,7 +215,7 @@ public class WxPayRefundNotifyResult extends BaseWxPayResult implements Serializ
 
     /**
      * 
-     * 字段名:退款入账账户
+     * 字段名:退款入账账户.
      * 变量名:refund_recv_accout
      * 是否必填:是
      * 类型:String(64)
@@ -228,7 +228,7 @@ public class WxPayRefundNotifyResult extends BaseWxPayResult implements Serializ
 
     /**
      * 
-     * 字段名:退款资金来源
+     * 字段名:退款资金来源.
      * 变量名:refund_account
      * 是否必填:是
      * 类型:String(30)
@@ -241,7 +241,7 @@ public class WxPayRefundNotifyResult extends BaseWxPayResult implements Serializ
 
     /**
      * 
-     * 字段名:退款发起来源
+     * 字段名:退款发起来源.
      * 变量名:refund_request_source
      * 是否必填:是
      * 类型:String(30)
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/BaseWxPayRequest.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/BaseWxPayRequest.java
index d940b7a4..5e40866e 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/BaseWxPayRequest.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/BaseWxPayRequest.java
@@ -1,5 +1,12 @@
 package com.github.binarywang.wxpay.bean.request;
 
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import com.github.binarywang.wxpay.config.WxPayConfig;
 import com.github.binarywang.wxpay.exception.WxPayException;
 import com.github.binarywang.wxpay.util.SignUtils;
@@ -8,12 +15,7 @@ import com.thoughtworks.xstream.annotations.XStreamAlias;
 import lombok.Data;
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.common.util.BeanUtils;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.common.util.xml.XStreamInitializer;
-import org.apache.commons.lang3.StringUtils;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
 
 import static com.github.binarywang.wxpay.constant.WxPayConstants.SignType.ALL_SIGN_TYPES;
 
@@ -31,7 +33,7 @@ public abstract class BaseWxPayRequest implements Serializable {
 
   /**
    * 
-   * 字段名:公众账号ID
+   * 字段名:公众账号ID.
    * 变量名:appid
    * 是否必填:是
    * 类型:String(32)
@@ -43,7 +45,7 @@ public abstract class BaseWxPayRequest implements Serializable {
   protected String appid;
   /**
    * 
-   * 字段名:商户号
+   * 字段名:商户号.
    * 变量名:mch_id
    * 是否必填:是
    * 类型:String(32)
@@ -55,7 +57,7 @@ public abstract class BaseWxPayRequest implements Serializable {
   protected String mchId;
   /**
    * 
-   * 字段名:服务商模式下的子商户公众账号ID
+   * 字段名:服务商模式下的子商户公众账号ID.
    * 变量名:sub_appid
    * 是否必填:是
    * 类型:String(32)
@@ -67,7 +69,7 @@ public abstract class BaseWxPayRequest implements Serializable {
   protected String subAppId;
   /**
    * 
-   * 字段名:服务商模式下的子商户号
+   * 字段名:服务商模式下的子商户号.
    * 变量名:sub_mch_id
    * 是否必填:是
    * 类型:String(32)
@@ -79,7 +81,7 @@ public abstract class BaseWxPayRequest implements Serializable {
   protected String subMchId;
   /**
    * 
-   * 字段名:随机字符串
+   * 字段名:随机字符串.
    * 变量名:nonce_str
    * 是否必填:是
    * 类型:String(32)
@@ -91,7 +93,7 @@ public abstract class BaseWxPayRequest implements Serializable {
   protected String nonceStr;
   /**
    * 
-   * 字段名:签名
+   * 字段名:签名.
    * 变量名:sign
    * 是否必填:是
    * 类型:String(32)
@@ -104,7 +106,7 @@ public abstract class BaseWxPayRequest implements Serializable {
 
   /**
    * 
-   * 签名类型
+   * 签名类型.
    * sign_type
    * 否
    * String(32)
@@ -116,7 +118,7 @@ public abstract class BaseWxPayRequest implements Serializable {
   private String signType;
 
   /**
-   * 将单位为元转换为单位为分
+   * 将单位为元转换为单位为分.
    *
    * @param yuan 将要转换的元的数值字符串
    */
@@ -125,7 +127,7 @@ public abstract class BaseWxPayRequest implements Serializable {
   }
 
   /**
-   * 检查请求参数内容,包括必填参数以及特殊约束
+   * 检查请求参数内容,包括必填参数以及特殊约束.
    */
   private void checkFields() throws WxPayException {
     //check required fields
@@ -140,12 +142,12 @@ public abstract class BaseWxPayRequest implements Serializable {
   }
 
   /**
-   * 检查约束情况
+   * 检查约束情况.
    */
   protected abstract void checkConstraints() throws WxPayException;
 
   /**
-   * 如果配置中已经设置,可以不设置值
+   * 如果配置中已经设置,可以不设置值.
    *
    * @param appid 微信公众号appid
    */
@@ -154,7 +156,7 @@ public abstract class BaseWxPayRequest implements Serializable {
   }
 
   /**
-   * 如果配置中已经设置,可以不设置值
+   * 如果配置中已经设置,可以不设置值.
    *
    * @param mchId 微信商户号
    */
@@ -163,7 +165,7 @@ public abstract class BaseWxPayRequest implements Serializable {
   }
 
   /**
-   * 默认采用时间戳为随机字符串,可以不设置
+   * 默认采用时间戳为随机字符串,可以不设置.
    *
    * @param nonceStr 随机字符串
    */
@@ -173,7 +175,7 @@ public abstract class BaseWxPayRequest implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   public String toXML() {
@@ -186,14 +188,14 @@ public abstract class BaseWxPayRequest implements Serializable {
   }
 
   /**
-   * 签名时,是否忽略signType
+   * 签名时,是否忽略signType.
    */
   protected boolean ignoreSignType() {
     return false;
   }
 
   /**
-   * 签名时,是否忽略appid
+   * 签名时,是否忽略appid.
    */
   protected boolean ignoreAppid() {
     return false;
@@ -201,7 +203,7 @@ public abstract class BaseWxPayRequest implements Serializable {
 
   /**
    * 
-   * 检查参数,并设置签名
+   * 检查参数,并设置签名.
    * 1、检查参数(注意:子类实现需要检查参数的而外功能时,请在调用父类的方法前进行相应判断)
    * 2、补充系统参数,如果未传入则从配置里读取
    * 3、生成签名,并设置进去
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/BaseWxPayResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/BaseWxPayResult.java
index 1cdfe51a..9d5829a1 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/BaseWxPayResult.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/BaseWxPayResult.java
@@ -1,5 +1,26 @@
 package com.github.binarywang.wxpay.bean.result;
 
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.w3c.dom.Document;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
 import com.github.binarywang.wxpay.exception.WxPayException;
 import com.github.binarywang.wxpay.service.WxPayService;
 import com.github.binarywang.wxpay.util.SignUtils;
@@ -9,26 +30,7 @@ import com.google.common.collect.Maps;
 import com.thoughtworks.xstream.XStream;
 import com.thoughtworks.xstream.annotations.XStreamAlias;
 import lombok.Data;
-import me.chanjar.weixin.common.util.ToStringUtils;
 import me.chanjar.weixin.common.util.xml.XStreamInitializer;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpressionException;
-import javax.xml.xpath.XPathFactory;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Map;
 
 /**
  * 
@@ -136,7 +138,7 @@ public abstract class BaseWxPayResult implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   /**
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayBillBaseResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayBillBaseResult.java
index 28ed6e7f..a9b3e46c 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayBillBaseResult.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayBillBaseResult.java
@@ -1,15 +1,19 @@
 package com.github.binarywang.wxpay.bean.result;
 
+import java.io.Serializable;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import lombok.Data;
 import lombok.NoArgsConstructor;
-import me.chanjar.weixin.common.util.ToStringUtils;
-
-import java.io.Serializable;
 
 /**
  * 交易时间:2017-04-06 01:00:02 公众账号ID: 商户号: 子商户号:0 设备号:WEB 微信订单号: 商户订单号:2017040519091071873216 用户标识: 交易类型:NATIVE
  * 交易状态:REFUND 付款银行:CFT 货币种类:CNY 总金额:0.00 企业红包金额:0.00 微信退款单号: 商户退款单号:20170406010000933 退款金额:0.01 企业红包退款金额:0.00
  * 退款类型:ORIGINAL 退款状态:SUCCESS 商品名称: 商户数据包: 手续费:0.00000 费率 :0.60%
+ *
+ * @author BinaryWang
  */
 @Data
 @NoArgsConstructor
@@ -18,103 +22,103 @@ public class WxPayBillBaseResult implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   /**
-   * 交易时间
+   * 交易时间.
    */
   private String tradeTime;
   /**
-   * 公众账号ID
+   * 公众账号ID.
    */
   private String appId;
   /**
-   * 商户号
+   * 商户号.
    */
   private String mchId;
   /**
-   * 子商户号
+   * 子商户号.
    */
   private String subMchId;
   /**
-   * 设备号
+   * 设备号.
    */
   private String deviceInfo;
   /**
-   * 微信订单号
+   * 微信订单号.
    */
   private String transactionId;
   /**
-   * 商户订单号
+   * 商户订单号.
    */
   private String outTradeNo;
   /**
-   * 用户标识
+   * 用户标识.
    */
   private String openId;
   /**
-   * 交易类型
+   * 交易类型.
    */
   private String tradeType;
   /**
-   * 交易状态
+   * 交易状态.
    */
   private String tradeState;
   /**
-   * 付款银行
+   * 付款银行.
    */
   private String bankType;
   /**
-   * 货币种类
+   * 货币种类.
    */
   private String feeType;
   /**
-   * 总金额
+   * 总金额.
    */
   private String totalFee;
   /**
-   * 企业红包金额
+   * 企业红包金额.
    */
   private String couponFee;
   /**
-   * 微信退款单号
+   * 微信退款单号.
    */
   private String refundId;
   /**
-   * 商户退款单号
+   * 商户退款单号.
    */
   private String outRefundNo;
   /**
-   * 退款金额
+   * 退款金额.
    */
   private String settlementRefundFee;
   /**
-   * 企业红包退款金额
+   * 企业红包退款金额.
    */
   private String couponRefundFee;
   /**
-   * 退款类型
+   * 退款类型.
    */
   private String refundChannel;
   /**
-   * 退款状态
+   * 退款状态.
    */
   private String refundState;
   /**
-   * 商品名称
+   * 商品名称.
    */
   private String body;
   /**
-   * 商户数据包
+   * 商户数据包.
    */
   private String attach;
   /**
-   * 手续费
+   * 手续费.
    */
   private String poundage;
   /**
-   * 费率
+   * 费率.
    */
   private String poundageRate;
 
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayBillResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayBillResult.java
index 0a1a4b25..9d27c2e0 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayBillResult.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayBillResult.java
@@ -1,12 +1,17 @@
 package com.github.binarywang.wxpay.bean.result;
 
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import me.chanjar.weixin.common.util.ToStringUtils;
-
 import java.io.Serializable;
 import java.util.List;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author BinaryWang
+ */
 @Data
 @NoArgsConstructor
 public class WxPayBillResult implements Serializable {
@@ -14,31 +19,31 @@ public class WxPayBillResult implements Serializable {
 
   @Override
   public String toString() {
-    return ToStringUtils.toSimpleString(this);
+    return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
   }
 
   /**
-   * 对账返回对象
+   * 对账返回对象.
    */
   private List wxPayBillBaseResultLst;
   /**
-   * 总交易单数
+   * 总交易单数.
    */
   private String totalRecord;
   /**
-   * 总交易额
+   * 总交易额.
    */
   private String totalFee;
   /**
-   * 总退款金额
+   * 总退款金额.
    */
   private String totalRefundFee;
   /**
-   * 总代金券或立减优惠退款金额
+   * 总代金券或立减优惠退款金额.
    */
   private String totalCouponFee;
   /**
-   * 手续费总金额
+   * 手续费总金额.
    */
   private String totalPoundageFee;