diff --git a/pom.xml b/pom.xml index 3e915cfc..dbe53d12 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.github.binarywang weixin-java-parent - 2.7.0-SNAPSHOT + 2.6.1.BETA pom WeiXin Java Tools - Parent 微信公众号、企业号上级POM diff --git a/weixin-java-common/pom.xml b/weixin-java-common/pom.xml index e666caab..49815e50 100644 --- a/weixin-java-common/pom.xml +++ b/weixin-java-common/pom.xml @@ -6,7 +6,7 @@ com.github.binarywang weixin-java-parent - 2.7.0-SNAPSHOT + 2.6.1.BETA weixin-java-common diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java index 435ba8e0..2581950d 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java @@ -91,6 +91,10 @@ public class WxConsts { public static final String EVT_CARD_PASS_CHECK = "card_pass_check"; public static final String EVT_CARD_NOT_PASS_CHECK = "card_not_pass_check"; public static final String EVT_USER_GET_CARD = "user_get_card"; + /** + * 卡券转赠事件 + */ + public static final String EVT_USER_GIFTING_CARD = "user_gifting_card"; public static final String EVT_USER_DEL_CARD = "user_del_card"; public static final String EVT_USER_CONSUME_CARD = "user_consume_card"; public static final String EVT_USER_PAY_FROM_PAY_CELL = "user_pay_from_pay_cell"; @@ -101,7 +105,8 @@ public class WxConsts { public static final String EVT_KF_CLOSE_SESSION = "kf_close_session"; // 客服关闭会话 public static final String EVT_KF_SWITCH_SESSION = "kf_switch_session"; // 客服转接会话 public static final String EVT_POI_CHECK_NOTIFY = "poi_check_notify"; //门店审核事件推送 - public static final String EVN_SUBMIT_MEMBERCARD_USER_INFO = "submit_membercard_user_info"; //接收会员信息事件推送 + public static final String EVT_SUBMIT_MEMBERCARD_USER_INFO = "submit_membercard_user_info"; //接收会员信息事件推送 + //以下为微信认证事件 /** * 资质认证成功 @@ -185,7 +190,7 @@ public class WxConsts { * 跳转图文消息URL */ public static final String BUTTON_VIEW_LIMITED = "view_limited"; - + /** * 不弹出授权页面,直接跳转,只能获取用户openid */ diff --git a/weixin-java-cp/pom.xml b/weixin-java-cp/pom.xml index ab165436..e2afcb41 100644 --- a/weixin-java-cp/pom.xml +++ b/weixin-java-cp/pom.xml @@ -6,7 +6,7 @@ com.github.binarywang weixin-java-parent - 2.7.0-SNAPSHOT + 2.6.1.BETA weixin-java-cp diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/apache/WxCpServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/apache/WxCpServiceImpl.java index 61b75cb5..71ccbcd0 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/apache/WxCpServiceImpl.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/apache/WxCpServiceImpl.java @@ -8,8 +8,8 @@ import me.chanjar.weixin.common.util.http.HttpType; import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder; import me.chanjar.weixin.cp.api.WxCpConfigStorage; -import me.chanjar.weixin.cp.api.impl.AbstractWxCpServiceImpl; +import me.chanjar.weixin.cp.api.impl.AbstractWxCpServiceImpl; import org.apache.http.HttpHost; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/cp/bean/article/MpnewsArticle.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/article/MpnewsArticle.java similarity index 100% rename from weixin-java-common/src/main/java/me/chanjar/weixin/cp/bean/article/MpnewsArticle.java rename to weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/article/MpnewsArticle.java diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/cp/bean/article/NewArticle.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/article/NewArticle.java similarity index 100% rename from weixin-java-common/src/main/java/me/chanjar/weixin/cp/bean/article/NewArticle.java rename to weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/article/NewArticle.java diff --git a/weixin-java-mp/pom.xml b/weixin-java-mp/pom.xml index 77d2488a..e736d4c2 100644 --- a/weixin-java-mp/pom.xml +++ b/weixin-java-mp/pom.xml @@ -6,7 +6,7 @@ com.github.binarywang weixin-java-parent - 2.7.0-SNAPSHOT + 2.6.1.BETA weixin-java-mp WeiXin Java Tools - MP diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java index 34a80fc5..715c3936 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java @@ -12,7 +12,6 @@ public interface WxMpCardService { /** * 得到WxMpService - * @return */ WxMpService getWxMpService(); @@ -20,7 +19,6 @@ public interface WxMpCardService { * 获得卡券api_ticket,不强制刷新卡券api_ticket * * @return 卡券api_ticket - * @throws WxErrorException * @see #getCardApiTicket(boolean) */ String getCardApiTicket() throws WxErrorException; diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java index 388bca56..ce080330 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java @@ -34,10 +34,6 @@ public class WxMpCardServiceImpl implements WxMpCardService { this.wxMpService = wxMpService; } - /** - * 得到WxMpService - * @return - */ @Override public WxMpService getWxMpService(){ return this.wxMpService; 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 new file mode 100644 index 00000000..32dfcd7e --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/HardWare.java @@ -0,0 +1,50 @@ +package me.chanjar.weixin.mp.bean.message; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamConverter; +import me.chanjar.weixin.common.util.ToStringUtils; +import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; + +/** + *
+ *  Created by BinaryWang on 2017/5/4.
+ * 
+ * + * @author Binary Wang + */ +@XStreamAlias("HardWare") +public class HardWare { + /** + * 消息展示,目前支持myrank(排行榜) + */ + @XStreamAlias("MessageView") + @XStreamConverter(value = XStreamCDataConverter.class) + private String messageView; + /** + * 消息点击动作,目前支持ranklist(点击跳转排行榜) + */ + @XStreamAlias("MessageAction") + @XStreamConverter(value = XStreamCDataConverter.class) + private String messageAction; + + @Override + public String toString() { + return ToStringUtils.toSimpleString(this); + } + + public String getMessageView() { + return messageView; + } + + public void setMessageView(String messageView) { + this.messageView = messageView; + } + + public String getMessageAction() { + return messageAction; + } + + public void setMessageAction(String messageAction) { + this.messageAction = messageAction; + } +} 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 new file mode 100644 index 00000000..ddebffdf --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/ScanCodeInfo.java @@ -0,0 +1,52 @@ +package me.chanjar.weixin.mp.bean.message; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamConverter; +import me.chanjar.weixin.common.util.ToStringUtils; +import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; + +/** + *
+ *  Created by BinaryWang on 2017/5/4.
+ * 
+ * + * @author Binary Wang + */ +@XStreamAlias("ScanCodeInfo") +public class ScanCodeInfo { + @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); + } + + /** + * 扫描类型,一般是qrcode + */ + public String getScanType() { + + return this.scanType; + } + + public void setScanType(String scanType) { + this.scanType = scanType; + } + + /** + * 扫描结果,即二维码对应的字符串信息 + */ + public String getScanResult() { + return this.scanResult; + } + + public void setScanResult(String scanResult) { + this.scanResult = 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 new file mode 100644 index 00000000..a397ab81 --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendLocationInfo.java @@ -0,0 +1,82 @@ +package me.chanjar.weixin.mp.bean.message; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamConverter; +import me.chanjar.weixin.common.util.ToStringUtils; +import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; + +/** + *
+ *  Created by BinaryWang on 2017/5/4.
+ * 
+ * + * @author Binary Wang + */ +@XStreamAlias("SendLocationInfo") +public class SendLocationInfo { + + @XStreamAlias("Location_X") + @XStreamConverter(value = XStreamCDataConverter.class) + private String locationX; + + @XStreamAlias("Location_Y") + @XStreamConverter(value = XStreamCDataConverter.class) + private String locationY; + + @XStreamAlias("Scale") + @XStreamConverter(value = XStreamCDataConverter.class) + private String scale; + + @XStreamAlias("Label") + @XStreamConverter(value = XStreamCDataConverter.class) + private String label; + + @XStreamAlias("Poiname") + @XStreamConverter(value = XStreamCDataConverter.class) + private String poiname; + + @Override + public String toString() { + return ToStringUtils.toSimpleString(this); + } + + public String getLocationX() { + return this.locationX; + } + + public void setLocationX(String locationX) { + this.locationX = locationX; + } + + public String getLocationY() { + return this.locationY; + } + + public void setLocationY(String locationY) { + this.locationY = locationY; + } + + public String getScale() { + return this.scale; + } + + public void setScale(String scale) { + this.scale = scale; + } + + public String getLabel() { + return this.label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getPoiname() { + return this.poiname; + } + + public void setPoiname(String poiname) { + this.poiname = poiname; + } +} 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 new file mode 100644 index 00000000..3461355c --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendPicsInfo.java @@ -0,0 +1,61 @@ +package me.chanjar.weixin.mp.bean.message; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamConverter; +import me.chanjar.weixin.common.util.ToStringUtils; +import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; + +import java.util.ArrayList; +import java.util.List; + +/** + *
+ *  Created by BinaryWang on 2017/5/4.
+ * 
+ * + * @author Binary Wang + */ +@XStreamAlias("SendPicsInfo") +public class SendPicsInfo { + @XStreamAlias("PicList") + protected final List picList = new ArrayList<>(); + @XStreamAlias("Count") + private Long count; + + @Override + public String toString() { + return ToStringUtils.toSimpleString(this); + } + + public Long getCount() { + return this.count; + } + + public void setCount(Long count) { + this.count = count; + } + + public List getPicList() { + return this.picList; + } + + @XStreamAlias("item") + public static class Item { + @XStreamAlias("PicMd5Sum") + @XStreamConverter(value = XStreamCDataConverter.class) + private String picMd5Sum; + + @Override + public String toString() { + return ToStringUtils.toSimpleString(this); + } + + public String getPicMd5Sum() { + return this.picMd5Sum; + } + + public void setPicMd5Sum(String picMd5Sum) { + this.picMd5Sum = picMd5Sum; + } + } +} 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 0f1a3ffe..e8802842 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 @@ -12,8 +12,6 @@ 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; /** *
@@ -199,6 +197,30 @@ public class WxMpXmlMessage implements Serializable {
   @XStreamAlias("OuterId")
   private Integer outerId;
 
+  /**
+   * 用户删除会员卡后可重新找回,当用户本次操作为找回时,该值为1,否则为0
+   */
+  @XStreamAlias("IsRestoreMemberCard")
+  private String isRestoreMemberCard;
+
+  /**
+   * 领取场景值,用于领取渠道数据统计。可在生成二维码接口及添加Addcard接口中自定义该字段的字符串值。
+   */
+  @XStreamAlias("OuterStr")
+  private String outerStr;
+
+  /**
+   * 是否转赠退回,0代表不是,1代表是。
+   */
+  @XStreamAlias("IsReturnBack")
+  private String isReturnBack;
+
+  /**
+   * 是否是群转赠,0代表不是,1代表是。
+   */
+  @XStreamAlias("IsChatRoom")
+  private String isChatRoom;
+
   @XStreamAlias("ScanCodeInfo")
   private ScanCodeInfo scanCodeInfo = new ScanCodeInfo();
 
@@ -314,11 +336,11 @@ public class WxMpXmlMessage implements Serializable {
   /**
    * 从加密字符串转换
    *
-   * @param encryptedXml
-   * @param wxMpConfigStorage
-   * @param timestamp
-   * @param nonce
-   * @param msgSignature
+   * @param encryptedXml      密文
+   * @param wxMpConfigStorage 配置存储器对象
+   * @param timestamp         时间戳
+   * @param nonce             随机串
+   * @param msgSignature      签名串
    */
   public static WxMpXmlMessage fromEncryptedXml(String encryptedXml,
                                                 WxMpConfigStorage wxMpConfigStorage, String timestamp, String nonce,
@@ -750,28 +772,28 @@ public class WxMpXmlMessage implements Serializable {
     this.outerId = outerId;
   }
 
-  public WxMpXmlMessage.ScanCodeInfo getScanCodeInfo() {
+  public ScanCodeInfo getScanCodeInfo() {
     return this.scanCodeInfo;
   }
 
-  public void setScanCodeInfo(WxMpXmlMessage.ScanCodeInfo scanCodeInfo) {
+  public void setScanCodeInfo(ScanCodeInfo scanCodeInfo) {
     this.scanCodeInfo = scanCodeInfo;
   }
 
-  public WxMpXmlMessage.SendPicsInfo getSendPicsInfo() {
+  public SendPicsInfo getSendPicsInfo() {
     return this.sendPicsInfo;
   }
 
-  public void setSendPicsInfo(WxMpXmlMessage.SendPicsInfo sendPicsInfo) {
+  public void setSendPicsInfo(SendPicsInfo sendPicsInfo) {
     this.sendPicsInfo = sendPicsInfo;
   }
 
-  public WxMpXmlMessage.SendLocationInfo getSendLocationInfo() {
+  public SendLocationInfo getSendLocationInfo() {
     return this.sendLocationInfo;
   }
 
   public void setSendLocationInfo(
-    WxMpXmlMessage.SendLocationInfo sendLocationInfo) {
+    SendLocationInfo sendLocationInfo) {
     this.sendLocationInfo = sendLocationInfo;
   }
 
@@ -807,198 +829,41 @@ public class WxMpXmlMessage implements Serializable {
     this.fromKfAccount = fromKfAccount;
   }
 
-  @Override
-  public String toString() {
-    return ToStringUtils.toSimpleString(this);
+  public String getIsRestoreMemberCard() {
+    return isRestoreMemberCard;
   }
 
-  @XStreamAlias("HardWare")
-  public static class HardWare {
-    /**
-     * 消息展示,目前支持myrank(排行榜)
-     */
-    @XStreamAlias("MessageView")
-    @XStreamConverter(value = XStreamCDataConverter.class)
-    private String messageView;
-    /**
-     * 消息点击动作,目前支持ranklist(点击跳转排行榜)
-     */
-    @XStreamAlias("MessageAction")
-    @XStreamConverter(value = XStreamCDataConverter.class)
-    private String messageAction;
-
-    @Override
-    public String toString() {
-      return ToStringUtils.toSimpleString(this);
-    }
-
-    public String getMessageView() {
-      return messageView;
-    }
-
-    public void setMessageView(String messageView) {
-      this.messageView = messageView;
-    }
-
-    public String getMessageAction() {
-      return messageAction;
-    }
-
-    public void setMessageAction(String messageAction) {
-      this.messageAction = messageAction;
-    }
+  public void setIsRestoreMemberCard(String isRestoreMemberCard) {
+    this.isRestoreMemberCard = isRestoreMemberCard;
   }
 
-  @XStreamAlias("ScanCodeInfo")
-  public static class ScanCodeInfo {
-    @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);
-    }
-
-    /**
-     * 扫描类型,一般是qrcode
-     */
-    public String getScanType() {
-
-      return this.scanType;
-    }
-
-    public void setScanType(String scanType) {
-      this.scanType = scanType;
-    }
-
-    /**
-     * 扫描结果,即二维码对应的字符串信息
-     */
-    public String getScanResult() {
-      return this.scanResult;
-    }
-
-    public void setScanResult(String scanResult) {
-      this.scanResult = scanResult;
-    }
-
+  public String getOuterStr() {
+    return outerStr;
   }
 
-  @XStreamAlias("SendPicsInfo")
-  public static class SendPicsInfo {
-    @XStreamAlias("PicList")
-    protected final List picList = new ArrayList<>();
-    @XStreamAlias("Count")
-    private Long count;
-
-    @Override
-    public String toString() {
-      return ToStringUtils.toSimpleString(this);
-    }
-
-    public Long getCount() {
-      return this.count;
-    }
-
-    public void setCount(Long count) {
-      this.count = count;
-    }
-
-    public List getPicList() {
-      return this.picList;
-    }
-
-    @XStreamAlias("item")
-    public static class Item {
-      @XStreamAlias("PicMd5Sum")
-      @XStreamConverter(value = XStreamCDataConverter.class)
-      private String picMd5Sum;
-
-      @Override
-      public String toString() {
-        return ToStringUtils.toSimpleString(this);
-      }
-
-      public String getPicMd5Sum() {
-        return this.picMd5Sum;
-      }
-
-      public void setPicMd5Sum(String picMd5Sum) {
-        this.picMd5Sum = picMd5Sum;
-      }
-    }
+  public void setOuterStr(String outerStr) {
+    this.outerStr = outerStr;
   }
 
-  @XStreamAlias("SendLocationInfo")
-  public static class SendLocationInfo {
-
-    @XStreamAlias("Location_X")
-    @XStreamConverter(value = XStreamCDataConverter.class)
-    private String locationX;
-
-    @XStreamAlias("Location_Y")
-    @XStreamConverter(value = XStreamCDataConverter.class)
-    private String locationY;
-
-    @XStreamAlias("Scale")
-    @XStreamConverter(value = XStreamCDataConverter.class)
-    private String scale;
-
-    @XStreamAlias("Label")
-    @XStreamConverter(value = XStreamCDataConverter.class)
-    private String label;
-
-    @XStreamAlias("Poiname")
-    @XStreamConverter(value = XStreamCDataConverter.class)
-    private String poiname;
-
-    @Override
-    public String toString() {
-      return ToStringUtils.toSimpleString(this);
-    }
-
-    public String getLocationX() {
-      return this.locationX;
-    }
-
-    public void setLocationX(String locationX) {
-      this.locationX = locationX;
-    }
-
-    public String getLocationY() {
-      return this.locationY;
-    }
-
-    public void setLocationY(String locationY) {
-      this.locationY = locationY;
-    }
-
-    public String getScale() {
-      return this.scale;
-    }
-
-    public void setScale(String scale) {
-      this.scale = scale;
-    }
+  public String getIsReturnBack() {
+    return isReturnBack;
+  }
 
-    public String getLabel() {
-      return this.label;
-    }
+  public void setIsReturnBack(String isReturnBack) {
+    this.isReturnBack = isReturnBack;
+  }
 
-    public void setLabel(String label) {
-      this.label = label;
-    }
+  public String getIsChatRoom() {
+    return isChatRoom;
+  }
 
-    public String getPoiname() {
-      return this.poiname;
-    }
+  public void setIsChatRoom(String isChatRoom) {
+    this.isChatRoom = isChatRoom;
+  }
 
-    public void setPoiname(String poiname) {
-      this.poiname = poiname;
-    }
+  @Override
+  public String toString() {
+    return ToStringUtils.toSimpleString(this);
   }
+
 }
diff --git a/weixin-java-pay/pom.xml b/weixin-java-pay/pom.xml
index 82040214..989fd9fa 100644
--- a/weixin-java-pay/pom.xml
+++ b/weixin-java-pay/pom.xml
@@ -5,7 +5,7 @@
   
     weixin-java-parent
     com.github.binarywang
-    2.7.0-SNAPSHOT
+    2.6.1.BETA
   
   4.0.0
 
@@ -22,7 +22,7 @@
     
       com.github.binarywang
       qrcode-utils
-      1.0
+      1.1
     
 
     
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java
index c03b2482..895a827a 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java
@@ -129,7 +129,7 @@ public class WxPayConfig {
    * 微信支付是否使用仿真测试环境
    * 默认不使用
    */
-  public boolean useSandboxForWxPay() {
+  public boolean useSandbox() {
     return false;
   }
 
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceImpl.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceImpl.java
index 1a949bc0..c15a3ab6 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceImpl.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceImpl.java
@@ -45,7 +45,7 @@ public class WxPayServiceImpl implements WxPayService {
   }
 
   private String getPayBaseUrl() {
-    if (this.getConfig().useSandboxForWxPay()) {
+    if (this.getConfig().useSandbox()) {
       return PAY_BASE_URL + "/sandboxnew";
     }
 
@@ -203,7 +203,7 @@ public class WxPayServiceImpl implements WxPayService {
       configMap.put("noncestr", String.valueOf(System.currentTimeMillis()));
       configMap.put("appid", appId);
       // 此map用于客户端与微信服务器交互
-      payInfo.put("paySign", SignUtils.createSign(payInfo, this.getConfig().getMchKey()));
+      payInfo.put("sign", SignUtils.createSign(configMap, this.getConfig().getMchKey()));
       payInfo.put("prepayId", prepayId);
       payInfo.put("partnerId", partnerid);
       payInfo.put("appId", appId);
diff --git a/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/testbase/XmlWxPayConfig.java b/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/testbase/XmlWxPayConfig.java
index a10f36f3..d029590a 100644
--- a/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/testbase/XmlWxPayConfig.java
+++ b/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/testbase/XmlWxPayConfig.java
@@ -2,13 +2,6 @@ package com.github.binarywang.wxpay.testbase;
 
 import com.github.binarywang.wxpay.config.WxPayConfig;
 import com.thoughtworks.xstream.annotations.XStreamAlias;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.http.ssl.SSLContexts;
-
-import javax.net.ssl.SSLContext;
-import java.io.File;
-import java.io.FileInputStream;
-import java.security.KeyStore;
 
 @XStreamAlias("xml")
 public class XmlWxPayConfig extends WxPayConfig {
@@ -23,9 +16,9 @@ public class XmlWxPayConfig extends WxPayConfig {
   }
 
   @Override
-  public boolean useSandboxForWxPay() {
+  public boolean useSandbox() {
     //沙箱环境不成熟,有问题无法使用,暂时屏蔽掉
-    // return true;
+//     return true;
     return false;
   }
 }