You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					66 lines
				
				2.0 KiB
			
		
		
			
		
	
	
					66 lines
				
				2.0 KiB
			| 
											3 years ago
										 | 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<String, Object> 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<String, Object> 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;
 | ||
|  |     }
 | ||
|  | }
 |