|
|
|
@@ -516,17 +516,21 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
|
String mchId = paramMap.get("mch_id"); |
|
|
|
String subMchId = paramMap.get("sub_mch_id"); |
|
|
|
WxAppinfo appinfo = null; |
|
|
|
boolean isNormal = true; |
|
|
|
if (StringUtils.isBlank(subAppId) && StringUtils.isBlank(subMchId)) { |
|
|
|
// 普通商户号 |
|
|
|
appinfo = wxAppinfoMapper.findByAppId(appId); |
|
|
|
if (appinfo == null) { |
|
|
|
throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); |
|
|
|
} |
|
|
|
isNormal = true; |
|
|
|
} else { |
|
|
|
// 服务号 现在用hmac-sha256 |
|
|
|
appinfo = wxAppinfoMapper.findByAppId(subAppId); |
|
|
|
if (appinfo == null) { |
|
|
|
throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); |
|
|
|
} |
|
|
|
isNormal = false; |
|
|
|
} |
|
|
|
|
|
|
|
WxPayAccount payAccount = wxPayAccountMapper.selectByPrimaryKey(appinfo.getPayId()); |
|
|
|
@@ -537,12 +541,22 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
|
try { |
|
|
|
if (payWay == EnumPayWay.PAY_WAY_WEAPP) { |
|
|
|
boolean signVerified = false; |
|
|
|
// 微信支付 |
|
|
|
signVerified = WxPayment.verifyNotify(paramMap, partnerKey); |
|
|
|
if (!signVerified) { |
|
|
|
logger.warn("notify order, wxpay checksign error, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_NOTIFY_CHECK_SIGN_ERROR); |
|
|
|
if (isNormal) { |
|
|
|
// 普通商户号支付 |
|
|
|
signVerified = WxPayment.verifyNotify(paramMap, partnerKey); |
|
|
|
if (!signVerified) { |
|
|
|
logger.warn("notify order, wxpay checksign error, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_NOTIFY_CHECK_SIGN_ERROR); |
|
|
|
} |
|
|
|
} else { |
|
|
|
// 服务号 现在用hmac-sha256 |
|
|
|
signVerified = WxPayment.verifyNotifyHMAC(paramMap, partnerKey); |
|
|
|
if (!signVerified) { |
|
|
|
logger.warn("notify order, wxpay checksign error, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_NOTIFY_CHECK_SIGN_ERROR); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (!"SUCCESS".equals(paramMap.get("return_code"))) { |
|
|
|
logger.warn("notify order, wxpay status not success, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); |
|
|
|
SortedMap resultMap = new TreeMap(); |
|
|
|
|