| 
															
																@ -1,8 +1,11 @@ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																package com.yihu.wlyy.web.wx; 
															 | 
															
															 | 
															
																package com.yihu.wlyy.web.wx; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																import com.alibaba.fastjson.JSON; 
															 | 
															
															 | 
															
																import com.alibaba.fastjson.JSON; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																import com.fasterxml.jackson.databind.ObjectMapper; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																import com.yihu.wlyy.entity.charge.WlyyCharge; 
															 | 
															
															 | 
															
																import com.yihu.wlyy.entity.charge.WlyyCharge; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																import com.yihu.wlyy.entity.organization.HospitalMapping; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																import com.yihu.wlyy.repository.charge.ChargeDao; 
															 | 
															
															 | 
															
																import com.yihu.wlyy.repository.charge.ChargeDao; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																import com.yihu.wlyy.repository.organization.HospitalMappingDao; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																import com.yihu.wlyy.repository.patient.PatientDao; 
															 | 
															
															 | 
															
																import com.yihu.wlyy.repository.patient.PatientDao; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																import com.yihu.wlyy.repository.patient.SignFamilyDao; 
															 | 
															
															 | 
															
																import com.yihu.wlyy.repository.patient.SignFamilyDao; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																import com.yihu.wlyy.service.third.httplog.LogService; 
															 | 
															
															 | 
															
																import com.yihu.wlyy.service.third.httplog.LogService; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -19,6 +22,7 @@ import com.ylzinfo.onepay.sdk.utils.StringUtil; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																import io.swagger.annotations.Api; 
															 | 
															
															 | 
															
																import io.swagger.annotations.Api; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																import io.swagger.annotations.ApiOperation; 
															 | 
															
															 | 
															
																import io.swagger.annotations.ApiOperation; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																import io.swagger.annotations.ApiParam; 
															 | 
															
															 | 
															
																import io.swagger.annotations.ApiParam; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																import org.apache.commons.lang3.BooleanUtils; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																import org.apache.commons.lang3.StringUtils; 
															 | 
															
															 | 
															
																import org.apache.commons.lang3.StringUtils; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																import org.json.JSONObject; 
															 | 
															
															 | 
															
																import org.json.JSONObject; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																import org.slf4j.Logger; 
															 | 
															
															 | 
															
																import org.slf4j.Logger; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -66,6 +70,10 @@ public class OnePayController extends WeixinBaseController { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    LogService logService; 
															 | 
															
															 | 
															
																    LogService logService; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    @Autowired 
															 | 
															
															 | 
															
																    @Autowired 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    private Configure config; 
															 | 
															
															 | 
															
																    private Configure config; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																    @Autowired 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																    private HospitalMappingDao mappingDao; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																    @Autowired 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																    ObjectMapper objectMapper; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    @RequestMapping(value = "createSicard", method = RequestMethod.POST) 
															 | 
															
															 | 
															
																    @RequestMapping(value = "createSicard", method = RequestMethod.POST) 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -76,7 +84,8 @@ public class OnePayController extends WeixinBaseController { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String sicardUrl = pay.createSicard("0cc6e4562de2437ab2dbbf51a9fc3b49", "oULM4xAj9sOsHJ95ttKYd_Fjh6Hc");//getUID(), getOpenid()); 
															 | 
															
															 | 
															
																            String sicardUrl = pay.createSicard("0cc6e4562de2437ab2dbbf51a9fc3b49", "oULM4xAj9sOsHJ95ttKYd_Fjh6Hc");//getUID(), getOpenid()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            return write(200, "生成电子社保卡成功!", "data", sicardUrl); 
															 | 
															
															 | 
															
																            return write(200, "生成电子社保卡成功!", "data", sicardUrl); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } catch (Exception e) { 
															 | 
															
															 | 
															
																        } catch (Exception e) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            return error(-1, e.getMessage()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            error(e); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            return write(-1, "生成电子社保卡失败!"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } 
															 | 
															
															 | 
															
																        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    } 
															 | 
															
															 | 
															
																    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -85,14 +94,11 @@ public class OnePayController extends WeixinBaseController { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    @ResponseBody 
															 | 
															
															 | 
															
																    @ResponseBody 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    public String bindCard() throws Exception { 
															 | 
															
															 | 
															
																    public String bindCard() throws Exception { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        try { 
															 | 
															
															 | 
															
																        try { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//            String patient = getUID(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//            String openid = getOpenid(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//            逸祥 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//            String patient = "0cc6e4562de2437ab2dbbf51a9fc3b49"; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//            String openid = "oULM4xAj9sOsHJ95ttKYd_Fjh6Hc"; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String patient = getUID(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String openid = getOpenid(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//            在鑫 
															 | 
															
															 | 
															
																//            在鑫 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String patient = "0cc6e4562de2437ab2dbbf51a9fc3b49"; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String openid = "o7NFZw7FlRW-Hlp0VjM71FR_1otw"; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																//            String patient = "0cc6e4562de2437ab2dbbf51a9fc3b49"; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																//            String openid = "o7NFZw7FlRW-Hlp0VjM71FR_1otw"; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            BindCard bindCard = pay.bindCard(patient, openid);//getUID(), getOpenid());      oULM4xAj9sOsHJ95ttKYd_Fjh6Hc 
															 | 
															
															 | 
															
																            BindCard bindCard = pay.bindCard(patient, openid);//getUID(), getOpenid());      oULM4xAj9sOsHJ95ttKYd_Fjh6Hc 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String sicardUrl = pay.createSicard(patient, openid);//getUID(), getOpenid()); 
															 | 
															
															 | 
															
																            String sicardUrl = pay.createSicard(patient, openid);//getUID(), getOpenid()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            if (bindCard != null) { 
															 | 
															
															 | 
															
																            if (bindCard != null) { 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -108,7 +114,8 @@ public class OnePayController extends WeixinBaseController { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                return write(200, "生成电子社保卡成功!", "data", json); 
															 | 
															
															 | 
															
																                return write(200, "生成电子社保卡成功!", "data", json); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            } 
															 | 
															
															 | 
															
																            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } catch (Exception e) { 
															 | 
															
															 | 
															
																        } catch (Exception e) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            return error(-1, e.getMessage()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            error(e); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            return write(-1, "查询电子社保卡失败!"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } 
															 | 
															
															 | 
															
																        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    } 
															 | 
															
															 | 
															
																    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -122,25 +129,25 @@ public class OnePayController extends WeixinBaseController { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            @RequestParam String chargeType, 
															 | 
															
															 | 
															
																            @RequestParam String chargeType, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            @ApiParam(name = "chargeRelation", value = "支付关联代码签约code", defaultValue = "044701ea-5b23-11e6-8344-fa163e8aee56") 
															 | 
															
															 | 
															
																            @ApiParam(name = "chargeRelation", value = "支付关联代码签约code", defaultValue = "044701ea-5b23-11e6-8344-fa163e8aee56") 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            @RequestParam String chargeRelation, 
															 | 
															
															 | 
															
																            @RequestParam String chargeRelation, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            @ApiParam(name = "totalAmount", value = "交易总金额(分)", defaultValue = "12000") 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            @ApiParam(name = "totalAmount", value = "交易总金额(分)", defaultValue = "9000") 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            @RequestParam String totalAmount) throws Exception { 
															 | 
															
															 | 
															
																            @RequestParam String totalAmount) throws Exception { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        try { 
															 | 
															
															 | 
															
																        try { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            //            获取居民个人信息 
															 | 
															
															 | 
															
																            //            获取居民个人信息 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//            String patient = getUID(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//            String openId = getOpenid(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//            String patient = "0cc6e4562de2437ab2dbbf51a9fc3b49"; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//            String openId = "oULM4xAj9sOsHJ95ttKYd_Fjh6Hc"; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            totalAmount = "9000"; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String patient = getUID(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String openId = getOpenid(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//            在鑫 
															 | 
															
															 | 
															
																//            在鑫 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String patient = "0cc6e4562de2437ab2dbbf51a9fc3b49"; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String openId = "o7NFZw7FlRW-Hlp0VjM71FR_1otw"; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																//            String patient = "0cc6e4562de2437ab2dbbf51a9fc3b49"; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																//            String openId = "o7NFZw7FlRW-Hlp0VjM71FR_1otw"; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            if (StringUtils.isNotEmpty(openId)) { 
															 | 
															
															 | 
															
																            if (StringUtils.isNotEmpty(openId)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String settleNo = pay.charge(orgCode, chargeType, chargeRelation, totalAmount, patient, openId,getAccessToken());  //ohNH9sh4uwuJCxIwcLJtGTX-BaSk    getUID(),getOpenid() 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                String settleNo = pay.charge(orgCode, chargeType, chargeRelation, totalAmount, patient, openId, getAccessToken());  //ohNH9sh4uwuJCxIwcLJtGTX-BaSk    getUID(),getOpenid() 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                return write(200, "家庭医生签约支付成功!", "data", settleNo); 
															 | 
															
															 | 
															
																                return write(200, "家庭医生签约支付成功!", "data", settleNo); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            } else { 
															 | 
															
															 | 
															
																            } else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                return write(-1, "openId为空!"); 
															 | 
															
															 | 
															
																                return write(-1, "openId为空!"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            } 
															 | 
															
															 | 
															
																            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } catch (Exception e) { 
															 | 
															
															 | 
															
																        } catch (Exception e) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            return error(-1, e.getMessage()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            error(e); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            return write(-1, "家庭医生签约支付失败!"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } 
															 | 
															
															 | 
															
																        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    } 
															 | 
															
															 | 
															
																    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -151,10 +158,12 @@ public class OnePayController extends WeixinBaseController { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    public String chargeQuery(@ApiParam(name = "code", value = "接入应用业务流水号", defaultValue = "") 
															 | 
															
															 | 
															
																    public String chargeQuery(@ApiParam(name = "code", value = "接入应用业务流水号", defaultValue = "") 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                              @RequestParam String code) throws Exception { 
															 | 
															
															 | 
															
																                              @RequestParam String code) throws Exception { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        try { 
															 | 
															
															 | 
															
																        try { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            Charge charge = pay.chargeQuery(code,getAccessToken()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String result = pay.chargeQuery(code, getAccessToken()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            Charge charge = objectMapper.readValue(result, Charge.class); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            return write(200, "家庭医生签约支付查询成功!", "data", charge); 
															 | 
															
															 | 
															
																            return write(200, "家庭医生签约支付查询成功!", "data", charge); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } catch (Exception e) { 
															 | 
															
															 | 
															
																        } catch (Exception e) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            return error(-1, e.getMessage()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            error(e); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            return write(-1, "家庭医生签约支付查询失败!"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } 
															 | 
															
															 | 
															
																        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    } 
															 | 
															
															 | 
															
																    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -167,10 +176,11 @@ public class OnePayController extends WeixinBaseController { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                             @ApiParam(name = "chargeRelation", value = "支付关联代码", defaultValue = "044701ea5b2311e68344fa163e8aee56") 
															 | 
															
															 | 
															
																                             @ApiParam(name = "chargeRelation", value = "支付关联代码", defaultValue = "044701ea5b2311e68344fa163e8aee56") 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                             @RequestParam String chargeRelation) throws Exception { 
															 | 
															
															 | 
															
																                             @RequestParam String chargeRelation) throws Exception { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        try { 
															 | 
															
															 | 
															
																        try { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            List<WlyyCharge> charge = pay.chargeList(chargeType, chargeRelation,getAccessToken()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            List<WlyyCharge> charge = pay.chargeList(chargeType, chargeRelation, getAccessToken()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            return write(200, "获取某次签约的支付记录成功!", "data", charge); 
															 | 
															
															 | 
															
																            return write(200, "获取某次签约的支付记录成功!", "data", charge); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } catch (Exception e) { 
															 | 
															
															 | 
															
																        } catch (Exception e) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            return error(-1, e.getMessage()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            error(e); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            return write(-1, "获取某次签约的支付记录失败!"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } 
															 | 
															
															 | 
															
																        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    } 
															 | 
															
															 | 
															
																    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -185,10 +195,11 @@ public class OnePayController extends WeixinBaseController { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                      @ApiParam(name = "size", value = "每页几行", defaultValue = "10") 
															 | 
															
															 | 
															
																                                      @ApiParam(name = "size", value = "每页几行", defaultValue = "10") 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                      @RequestParam Integer size) throws Exception { 
															 | 
															
															 | 
															
																                                      @RequestParam Integer size) throws Exception { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        try { 
															 | 
															
															 | 
															
																        try { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            List<WlyyCharge> charge = pay.chargeListByPatient(patient,getAccessToken(), page, size); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            List<WlyyCharge> charge = pay.chargeListByPatient(patient, getAccessToken(), page, size); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            return write(200, "获取患者的支付记录成功!", "data", charge); 
															 | 
															
															 | 
															
																            return write(200, "获取患者的支付记录成功!", "data", charge); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } catch (Exception e) { 
															 | 
															
															 | 
															
																        } catch (Exception e) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            return error(-1, e.getMessage()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            error(e); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            return write(-1, "获取患者的支付记录失败!"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } 
															 | 
															
															 | 
															
																        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    } 
															 | 
															
															 | 
															
																    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -243,56 +254,87 @@ public class OnePayController extends WeixinBaseController { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    /** 
															 | 
															
															 | 
															
																    /** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     * 页面回调更新数据 
															 | 
															
															 | 
															
																     * 页面回调更新数据 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																     * 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																     * @param request 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																     * @param response 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																     * @throws IOException 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																     * @throws PayException 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     */ 
															 | 
															
															 | 
															
																     */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    @RequestMapping(value = "/returnUrl", method = RequestMethod.GET) 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    @ApiOperation("商户页面跳转") 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    public String testReturnUrl(@RequestParam String jsonData) throws IOException, PayException { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																    @RequestMapping(value = "/returnUrl") 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																    public void returnUrl(HttpServletRequest request, HttpServletResponse response) throws IOException, PayException { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        Boolean isSuccess = false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        String error = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        String responses = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        response.setContentType("text/html;charset=utf-8"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        try { 
															 | 
															
															 | 
															
																        try { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            JSONObject json = new JSONObject(jsonData); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            JSONObject requestParam = json.getJSONObject("param");//业务出参 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String chargeNo = requestParam.getString("chargeNo"); //支付平台流水号 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String chargeTime = requestParam.getString("chargeTime");//支付平台交易成功时间 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String outChargeNo = requestParam.getString("outChargeNo");//接入应用业务流水号 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String outChargeTime = requestParam.getString("outChargeTime");//接入应用时间 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String channel = requestParam.getString("channel");//支付方式 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String billNo = requestParam.getString("billNo");//待结算费用单据号 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String cardNo = requestParam.getString("cardNo");//医保卡号 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String totalAmount = requestParam.getString("totalAmount");//交易总金额 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String insuranceAmount = requestParam.getString("insuranceAmount");//医保支付金额 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String selfPayAmount = requestParam.getString("selfPayAmount");//自付金额 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String userId = requestParam.getString("userId");//用户openID 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String userName = requestParam.getString("userName");//用户名字 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String idType = requestParam.getString("idType");//证件类型 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String idNo = requestParam.getString("idNo");//证件号码 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String tradeStatus = requestParam.getString("tradeStatus");//交易状态 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            JSONObject responseContents = json.getJSONObject("responseContent");//医保结构体 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String miRegisterNo = responseContents.getString("miRegisterNo");//医保签约号 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String miCollectDate = responseContents.getString("miCollectDate");//扣费日期 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String miCollectTime = responseContents.getString("miCollectTime");//扣费时间 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String miSettleNo = responseContents.getString("miSettleNo");//扣费单据号 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String miCollectStatus = responseContents.getString("miCollectStatus");//扣费状态 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String miRegisterStatus = responseContents.getString("miRegisterStatus");//登记状态 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String cadresPay = responseContents.getString("cadresPay");//政府补贴支付 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String miTotalFee = responseContents.getString("miTotalFee");//扣费总额 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String healthCarePay = responseContents.getString("healthCarePay");//医保统筹支付 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//                responseContents.getString("healthPay"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String heathPay = responseContents.getString("heathPay");//健康账户支付 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String accountPay = responseContents.getString("accountPay");//医保账户支付 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            String selfPay = responseContents.getString("selfPay");//个人现金支付 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            //		如:查询显示订单信息 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            isSuccess = true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String appId = request.getParameter("appId"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String billNo = request.getParameter("billNo");//待结算费用单据号 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String cardNo = request.getParameter("cardNo");//医保卡号 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String channel = request.getParameter("channel");//支付方式 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String chargeNo = request.getParameter("chargeNo");//支付平台流水号 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String chargeTime = request.getParameter("chargeTime");//支付平台交易成功时间 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String idNo = request.getParameter("idNo");//证件号码 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String idType = request.getParameter("idType");//证件类型 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String insuranceAmount = request.getParameter("insuranceAmount");//医保支付金额 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String outChargeNo = request.getParameter("outChargeNo");//接入应用业务流水号 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String outChargeTime = request.getParameter("outChargeTime");//接入应用时间 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String selfPayAmount = request.getParameter("selfPayAmount");//自付金额 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String sign = request.getParameter("sign"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String signType = request.getParameter("signType"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String timestamp = request.getParameter("timestamp"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String totalAmount = request.getParameter("totalAmount");//交易总金额 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String tradeStatus = request.getParameter("tradeStatus");//交易状态 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String userId = request.getParameter("userId");//用户openID 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String userName = request.getParameter("userName");//用户名字 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String result = pay.chargeQuery(outChargeNo, getAccessToken());//业务出参 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            JSONObject param = new JSONObject(result); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String requestParam = param.getString("responseContent"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            JSONObject responseContents = new JSONObject(requestParam);//医保结构体 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String miRegisterNo = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String miCollectDate = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String miCollectTime = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String miSettleNo = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String miCollectStatus = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String miRegisterStatus = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String cadresPay = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String miTotalFee = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String healthCarePay = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String heathPay = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String accountPay = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            String selfPay = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            if (responseContents != null) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																               miRegisterNo = responseContents.getString("miRegisterNo");//医保签约号 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                 miCollectDate = responseContents.getString("miCollectDate");//扣费日期 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                 miCollectTime = responseContents.getString("miCollectTime");//扣费时间 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                 miSettleNo = responseContents.getString("miSettleNo");//扣费单据号 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                 miCollectStatus = responseContents.getString("miCollectStatus");//扣费状态 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                 miRegisterStatus = responseContents.getString("miRegisterStatus");//登记状态 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                 cadresPay = responseContents.getString("cadresPay");//政府补贴支付 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                 miTotalFee = responseContents.getString("miTotalFee");//扣费总额 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                 healthCarePay = responseContents.getString("healthCarePay");//医保统筹支付 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                 heathPay = responseContents.getString("heathPay");//健康账户支付 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                 accountPay = responseContents.getString("accountPay");//医保账户支付 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                 selfPay = responseContents.getString("selfPay");//个人现金支付 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//                判断是否需要更新数据 needUpload为0不需要更新 
															 | 
															
															 | 
															
																//                判断是否需要更新数据 needUpload为0不需要更新 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            WlyyCharge charge = chargeDao.getUploadStatus(outChargeNo); 
															 | 
															
															 | 
															
																            WlyyCharge charge = chargeDao.getUploadStatus(outChargeNo); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            if (charge!=null&&!("0".equals(charge.getNeedUpload()))){ 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                pay.updateData(outChargeNo, chargeNo,chargeTime,totalAmount,insuranceAmount,selfPayAmount,billNo,miRegisterNo); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            if (charge != null && !("0".equals(charge.getNeedUpload()))) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                pay.updateData(outChargeNo, chargeNo, chargeTime, totalAmount, insuranceAmount, selfPayAmount, billNo, miRegisterNo); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            } 
															 | 
															
															 | 
															
																            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            return write(200, "请求成功!"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } catch (Exception e) { 
															 | 
															
															 | 
															
																        } catch (Exception e) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            return error(-1, e.getMessage()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            isSuccess = false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            response.getWriter().write(e.getMessage()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } 
															 | 
															
															 | 
															
																        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        //                记录log日志到数据库 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        logService.saveHttpLog(isSuccess, config.getReturnUrl(), "支付页面跳转", "POST", null, "", responses, error, logService.onepayType); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    } 
															 | 
															
															 | 
															
																    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    /** 
															 | 
															
															 | 
															
																    /** 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -303,17 +345,21 @@ public class OnePayController extends WeixinBaseController { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     * @throws IOException 
															 | 
															
															 | 
															
																     * @throws IOException 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     * @throws PayException 
															 | 
															
															 | 
															
																     * @throws PayException 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     */ 
															 | 
															
															 | 
															
																     */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    @RequestMapping(value = "/receiveNotify", method = RequestMethod.POST) 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    @ApiOperation("异步回调数据更改") 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																    @RequestMapping(value = "/receiveNotify") 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    public void receiveNotify(HttpServletRequest request, HttpServletResponse response) throws IOException, PayException { 
															 | 
															
															 | 
															
																    public void receiveNotify(HttpServletRequest request, HttpServletResponse response) throws IOException, PayException { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        Boolean isSuccess = false; 
															 | 
															
															 | 
															
																        Boolean isSuccess = false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        String error= ""; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        String error = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        String responses = ""; 
															 | 
															
															 | 
															
																        String responses = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        response.setContentType("text/html;charset=utf-8"); 
															 | 
															
															 | 
															
																        response.setContentType("text/html;charset=utf-8"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        String appId = "1BHEOI11C00J7B2CA8C0000071FA53E1"; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        String appSecret = "1BHEOH8HB0006E0A0A0A00002DB28BC5"; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        InputStream inputStream = request.getInputStream(); 
															 | 
															
															 | 
															
																        InputStream inputStream = request.getInputStream(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        String params = StreamUtils.copyToString(inputStream, Charset.forName("UTF-8")); 
															 | 
															
															 | 
															
																        String params = StreamUtils.copyToString(inputStream, Charset.forName("UTF-8")); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        JSONObject json = new JSONObject(params); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        String appId = json.getString("appId"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        HospitalMapping hospital = mappingDao.findByAppId(appId); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        String appSecret = hospital.getAppSecret(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																//        String appSecret = json.getString("appId"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        LOGGER.info("回调参数:{}", params); 
															 | 
															
															 | 
															
																        LOGGER.info("回调参数:{}", params); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        if (StringUtil.isEmpty(params)) { 
															 | 
															
															 | 
															
																        if (StringUtil.isEmpty(params)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            response.getWriter().write("empty"); 
															 | 
															
															 | 
															
																            response.getWriter().write("empty"); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -324,69 +370,75 @@ public class OnePayController extends WeixinBaseController { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        OnepayDefaultClient client = new OnepayDefaultClient("", appId, appSecret, encryptRes.getSignType(), encryptRes.getEncryptType()); 
															 | 
															
															 | 
															
																        OnepayDefaultClient client = new OnepayDefaultClient("", appId, appSecret, encryptRes.getSignType(), encryptRes.getEncryptType()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        try { 
															 | 
															
															 | 
															
																        try { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//            已经封装的加解密及签名验证 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            RequestParams requestParams = JSON.parseObject(params, RequestParams.class); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            ResponseParams<com.alibaba.fastjson.JSONObject> res =  client.execute(requestParams); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            responses = JSON.toJSONString(res); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            if (OnepayDefaultClient.isSuccessful(res)) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                isSuccess = true; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String param = request.getParameter("param");//业务出参 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                JSONObject requestParam = new JSONObject(param); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String chargeNo = requestParam.getString("chargeNo"); //支付平台流水号 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String chargeTime = requestParam.getString("chargeTime");//支付平台交易成功时间 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String outChargeNo = requestParam.getString("outChargeNo");//接入应用业务流水号 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String outChargeTime = requestParam.getString("outChargeTime");//接入应用时间 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String channel = requestParam.getString("channel");//支付方式 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String billNo = requestParam.getString("billNo");//待结算费用单据号 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String cardNo = requestParam.getString("cardNo");//医保卡号 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String totalAmount = requestParam.getString("totalAmount");//交易总金额 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String insuranceAmount = requestParam.getString("insuranceAmount");//医保支付金额 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String selfPayAmount = requestParam.getString("selfPayAmount");//自付金额 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String userId = requestParam.getString("userId");//用户openID 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String userName = requestParam.getString("userName");//用户名字 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String idType = requestParam.getString("idType");//证件类型 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String idNo = requestParam.getString("idNo");//证件号码 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String tradeStatus = requestParam.getString("tradeStatus");//交易状态 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String responseContent = request.getParameter("responseContent");//医保结构体 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                JSONObject responseContents = new JSONObject(responseContent); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String miRegisterNo = responseContents.getString("miRegisterNo");//医保签约号 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String miCollectDate = responseContents.getString("miCollectDate");//扣费日期 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String miCollectTime = responseContents.getString("miCollectTime");//扣费时间 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String miSettleNo = responseContents.getString("miSettleNo");//扣费单据号 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String miCollectStatus = responseContents.getString("miCollectStatus");//扣费状态 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String miRegisterStatus = responseContents.getString("miRegisterStatus");//登记状态 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String cadresPay = responseContents.getString("cadresPay");//政府补贴支付 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String miTotalFee = responseContents.getString("miTotalFee");//扣费总额 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String healthCarePay = responseContents.getString("healthCarePay");//医保统筹支付 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            LOGGER.info("解密前:{}", JSON.toJSONString(encryptRes)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            ResponseParams<?> decryptRes = client.decryptNotifyResponse(encryptRes); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            LOGGER.info("解密后:{}", JSON.toJSONString(decryptRes)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            boolean isDecrypt = ("-1".equals(decryptRes.getRespCode()) ? false : true); // 是否解密失败 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            if (!isDecrypt) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                response.getWriter().write("DECRYPT FAILURE"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            } else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                boolean isVerify = client.verifyResponseSign(decryptRes); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                LOGGER.info("验签结果:{}", isVerify); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                if (!isVerify) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    response.getWriter().write("FAILURE"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                } else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																//					业务逻辑代码 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    isSuccess = true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    responses = JSON.toJSONString(decryptRes); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    JSONObject requestParams = new JSONObject(responses); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    JSONObject requestParam = requestParams.getJSONObject("param");//业务出参 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String chargeNo = requestParam.getString("chargeNo"); //支付平台流水号 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String chargeTime = requestParam.getString("chargeTime");//支付平台交易成功时间 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String outChargeNo = requestParam.getString("outChargeNo");//接入应用业务流水号 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String outChargeTime = requestParam.getString("outChargeTime");//接入应用时间 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String channel = requestParam.getString("channel");//支付方式 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String billNo = requestParam.getString("billNo");//待结算费用单据号 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String cardNo = requestParam.getString("cardNo");//医保卡号 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String totalAmount = requestParam.getString("totalAmount");//交易总金额 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String insuranceAmount = requestParam.getString("insuranceAmount");//医保支付金额 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String selfPayAmount = requestParam.getString("selfPayAmount");//自付金额 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String userId = requestParam.getString("userId");//用户openID 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String userName = requestParam.getString("userName");//用户名字 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String idType = requestParam.getString("idType");//证件类型 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String idNo = requestParam.getString("idNo");//证件号码 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String tradeStatus = requestParam.getString("tradeStatus");//交易状态 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    String miRegisterNo = "";//医保签约号 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    if (requestParams.has("responseContent") && (requestParams.getJSONObject("responseContent") != null)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        JSONObject responseContents = requestParams.getJSONObject("responseContent");//医保结构体 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        miRegisterNo = responseContents.getString("miRegisterNo");//医保签约号 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        String miCollectDate = responseContents.getString("miCollectDate");//扣费日期 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        String miCollectTime = responseContents.getString("miCollectTime");//扣费时间 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        String miSettleNo = responseContents.getString("miSettleNo");//扣费单据号 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        String miCollectStatus = responseContents.getString("miCollectStatus");//扣费状态 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        String miRegisterStatus = responseContents.getString("miRegisterStatus");//登记状态 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        String cadresPay = responseContents.getString("cadresPay");//政府补贴支付 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        String miTotalFee = responseContents.getString("miTotalFee");//扣费总额 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        String healthCarePay = responseContents.getString("healthCarePay");//医保统筹支付 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//                responseContents.getString("healthPay"); 
															 | 
															
															 | 
															
																//                responseContents.getString("healthPay"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String heathPay = responseContents.getString("heathPay");//健康账户支付 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String accountPay = responseContents.getString("accountPay");//医保账户支付 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                String selfPay = responseContents.getString("selfPay");//个人现金支付 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        String heathPay = responseContents.getString("heathPay");//健康账户支付 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        String accountPay = responseContents.getString("accountPay");//医保账户支付 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        String selfPay = responseContents.getString("selfPay");//个人现金支付 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																//                判断是否需要更新数据 needUpload为0不需要更新 
															 | 
															
															 | 
															
																//                判断是否需要更新数据 needUpload为0不需要更新 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                WlyyCharge charge = chargeDao.getUploadStatus(outChargeNo); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                if (charge!=null&&!("0".equals(charge.getNeedUpload()))){ 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                    pay.updateData(outChargeNo, chargeNo,chargeTime,totalAmount,insuranceAmount,selfPayAmount,billNo,miRegisterNo); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    WlyyCharge charge = chargeDao.getUploadStatus(outChargeNo); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    if (charge != null && !("0".equals(charge.getNeedUpload()))) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        pay.updateData(outChargeNo, chargeNo, chargeTime, totalAmount, insuranceAmount, selfPayAmount, billNo, miRegisterNo); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                    response.getWriter().write("SUCCESS"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                } 
															 | 
															
															 | 
															
																                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            }else { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                isSuccess = false; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                error = "请求失败,返回结果:" + res.getRespCode() + "," + res.getRespMsg(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            } 
															 | 
															
															 | 
															
																            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } catch (Exception ex) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            isSuccess = false; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            StringWriter sw = new StringWriter(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            PrintWriter pw = new PrintWriter(sw); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            ex.printStackTrace(pw); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            error = sw.toString(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            response.getWriter().write(ex.getMessage()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        } catch (Exception e) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            response.getWriter().write(e.getMessage()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } 
															 | 
															
															 | 
															
																        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        //                记录log日志到数据库 
															 | 
															
															 | 
															
																        //                记录log日志到数据库 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                logService.saveHttpLog(isSuccess, config.getReceiveNotify(), "异步支付通知", "POST", null, params, responses, error, logService.onepayType); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        logService.saveHttpLog(isSuccess, config.getReceiveNotify(), "异步支付通知", "POST", null, params, responses, error, logService.onepayType); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    } 
															 | 
															
															 | 
															
																    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																} 
															 | 
															
															 | 
															
																} 
															 |