diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceAbstractImpl.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceAbstractImpl.java index b0c799b9..57cef5b8 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceAbstractImpl.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceAbstractImpl.java @@ -147,10 +147,8 @@ public abstract class WxPayServiceAbstractImpl implements WxPayService { } String responseContent = this.post(url, request.toXML(), true); - WxPaySendRedpackResult result = WxPayBaseResult.fromXML(responseContent, WxPaySendRedpackResult.class); - //毋须校验,因为没有返回签名信息 - // this.checkResult(result); - return result; + //无需校验,因为没有返回签名信息 + return WxPayBaseResult.fromXML(responseContent, WxPaySendRedpackResult.class); } @Override diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/util/SignUtils.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/util/SignUtils.java index 6bff4d7a..35a53c2c 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/util/SignUtils.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/util/SignUtils.java @@ -5,6 +5,7 @@ import com.google.common.collect.Lists; import me.chanjar.weixin.common.util.BeanUtils; import org.apache.commons.codec.binary.Hex; import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.lang3.StringUtils; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; @@ -44,19 +45,13 @@ public class SignUtils { * @return 签名字符串 */ public static String createSign(Map params, String signKey, String signType) { -// if (this.getConfig().useSandbox()) { -// //使用仿真测试环境 -// //TODO 目前测试发现,以下两行代码都会出问题,所以暂不建议使用仿真测试环境 -// signKey = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456"; -// //return "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456"; -// } - SortedMap sortedMap = new TreeMap<>(params); StringBuilder toSign = new StringBuilder(); for (String key : sortedMap.keySet()) { String value = params.get(key); - if (!Lists.newArrayList("sign", "key", "sign_type").contains(key)) { + if (StringUtils.isNotEmpty(value) && + !Lists.newArrayList("sign", "key", "sign_type").contains(key)) { toSign.append(key).append("=").append(value).append("&"); } }