Commit 8fc9051e authored by shangtx's avatar shangtx

feat: 去掉支付回调try/catch

parent a2a46aaa
...@@ -46,60 +46,53 @@ public class WechatNotifyController { ...@@ -46,60 +46,53 @@ public class WechatNotifyController {
public void notify(HttpServletRequest request, HttpServletResponse response) throws Exception { public void notify(HttpServletRequest request, HttpServletResponse response) throws Exception {
//WechatPayMyConfigMini config = new WechatPayMyConfigMini(); //WechatPayMyConfigMini config = new WechatPayMyConfigMini();
PrintWriter out = null; PrintWriter out = null;
try { log.info("微信支付成功回调通知开始!");
log.info("微信支付成功回调通知开始!"); StringBuffer sb = new StringBuffer();
StringBuffer sb = new StringBuffer(); InputStream is = request.getInputStream();
InputStream is = request.getInputStream(); InputStreamReader isr = new InputStreamReader(is);
InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr);
BufferedReader br = new BufferedReader(isr); String s = "";
String s = ""; while ((s = br.readLine()) != null) {
while ((s = br.readLine()) != null) { sb.append(s);
sb.append(s); }
} log.info("微信支付成功回调通知内容:" + sb.toString());
log.info("微信支付成功回调通知内容:" + sb.toString()); if (StringUtils.isNotEmpty(sb.toString())) {
if (StringUtils.isNotEmpty(sb.toString())) { // 解析xml
// 解析xml Map<String, String> paramMap = ParseXmlUtil.parseXml2Map(sb.toString());
Map<String, String> paramMap = ParseXmlUtil.parseXml2Map(sb.toString()); String returnCode = paramMap.get("return_code").toString();
String returnCode = paramMap.get("return_code").toString(); log.info("微信支付成功返回result_code:" + returnCode);
log.info("微信支付成功返回result_code:" + returnCode); String outTradeNo = paramMap.get("out_trade_no").toString();
String outTradeNo = paramMap.get("out_trade_no").toString();
var payChannels = payChannelWechatMapper.selectAll(); var payChannels = payChannelWechatMapper.selectAll();
if (payChannels.isEmpty()) { if (payChannels.isEmpty()) {
throw new ServiceException("未配置商户信息"); throw new ServiceException("未配置商户信息");
} }
var payChannel = payChannels.get(0); var payChannel = payChannels.get(0);
String transactionId = paramMap.get("transaction_id").toString(); String transactionId = paramMap.get("transaction_id").toString();
//支付响应记录日志 //支付响应记录日志
// savePayResponseLog(outTradeNo, transactionId, returnCode, sb.toString()); // savePayResponseLog(outTradeNo, transactionId, returnCode, sb.toString());
if (RETURN_CODE_SUCCESS.equals(returnCode)) { if (RETURN_CODE_SUCCESS.equals(returnCode)) {
if (validateSign(paramMap, payChannel.getWechatKey())) { if (validateSign(paramMap, payChannel.getWechatKey())) {
//更新支付凭证支付状态 //更新支付凭证支付状态
orderBizService.paySuccess(outTradeNo, sb.toString()); orderBizService.paySuccess(outTradeNo, sb.toString());
out = response.getWriter(); out = response.getWriter();
// 通知微信,防止微信再通知 // 通知微信,防止微信再通知
response.setContentType("application/xml"); response.setContentType("application/xml");
out.write("<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>"); out.write("<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>");
out.flush(); out.flush();
out.close(); out.close();
} else {
log.warn("微信支付成功回调通知签名校验失败,请检查!");
}
} else { } else {
log.warn("微信支付成功回调通知返回码不成功(RETURN_CODE),请检查!"); log.warn("微信支付成功回调通知签名校验失败,请检查!");
} }
} else { } else {
log.warn("微信支付成功回调通知内容为空,请检查!"); log.warn("微信支付成功回调通知返回码不成功(RETURN_CODE),请检查!");
} }
} else {
} catch (Exception e) { log.warn("微信支付成功回调通知内容为空,请检查!");
log.error("notify() Exception exception:", e);
e.printStackTrace();
} }
} }
/** /**
* 微信通知签名校验 * 微信通知签名校验
* *
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment