package com.ynxbd.wx.wxfactory.utils; import com.ynxbd.common.result.ResultEnum; import com.ynxbd.common.result.ServiceException; import lombok.extern.slf4j.Slf4j; import java.util.HashMap; import java.util.Map; import java.util.UUID; // 医保回调 @Slf4j public class MdRespHelper { /** * 失败响应 */ public static String resp(ServiceException e, String mdPayKey) { if (ResultEnum.PAY_NOTIFY_REPEAT.equals(e.getResultEnum())) { // 重复通知 return respOk(mdPayKey); } return respFail(e.getMessage(), mdPayKey); } /** * 成功响应 */ public static String respOk(String mdPayKey) { log.info("【医保】回调通知成功"); try { Map map = new HashMap<>(); map.put("return_code", "SUCCESS"); map.put("result_code", "SUCCESS"); map.put("return_msg", "OK"); map.put("nonce_str", UUID.randomUUID().toString().replace("-", "")); map.put("sign", WxSignHelper.generateSign(map, WxSignHelper.SIGN_TYPE_MD5, mdPayKey)); return XmlHelper.mapToXml(map); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 成功响应 */ public static String respFail(String message, String mdPayKey) { log.info("【医保】回调通知:{}", message); if (message == null) { message = "FAIL"; } try { Map map = new HashMap<>(); map.put("return_code", "FAIL"); map.put("result_code", "FAIL"); map.put("return_msg", message); map.put("nonce_str", UUID.randomUUID().toString().replace("-", "")); map.put("sign", WxSignHelper.generateSign(map, WxSignHelper.SIGN_TYPE_MD5, mdPayKey)); return XmlHelper.mapToXml(map); } catch (Exception e) { e.printStackTrace(); } return null; } }