| 
					
				 | 
			
			
				@ -11,6 +11,7 @@ import com.ylzinfo.onepay.sdk.HisOnepayClient; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.ylzinfo.onepay.sdk.domain.ResponseParams; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.ylzinfo.onepay.sdk.domain.ext.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.ylzinfo.onepay.sdk.utils.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.collections.map.HashedMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Service; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -346,4 +347,198 @@ public class YlzPayService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logService.saveHttpLog(isSuccess, "hop.mmpay.sicard.url", "互联网医院支付地址", "POST", null,JSON.toJSONString(jsonObject), object, error,logService.pushType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//============================================预交金充值 start====================================================== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 预交金充值支付 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param operatorId 操作员编码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param operatorName  操作员姓名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param cardType 卡类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param accountType 账户类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param cardNo 卡号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param idNo 身份证号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param depositType 充值方式 WX_PUB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param amount 充值金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param outChargeNo 商户充值业务流水号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param userName 用户姓名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param openId 微信公共号支付需入参openId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String recharge(String operatorId,String operatorName,String cardType,String accountType,String cardNo,String idNo,String depositType,String amount,String outChargeNo,String openId,String userName,String notifyUrl){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Boolean isSuccess = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String jsonObject = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        RechargeParams param = new RechargeParams(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String error = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            OauthYlzConfigDO oauthYlzConfigDO = oauthYlzConfigDao.findById("ylz_pay_config"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(oauthYlzConfigDO==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return "未找到支付配置文件"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String appId = oauthYlzConfigDO.getAppId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String appSecret = oauthYlzConfigDO.getAppKey(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String onepayUrl = oauthYlzConfigDO.getUrl(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String signType=oauthYlzConfigDO.getSignType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String encryptType = oauthYlzConfigDO.getEncType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HisOnepayClient onepayClient = new HisOnepayClient(onepayUrl, appId, appSecret, signType, encryptType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setOperatorId(operatorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setOperatorName(operatorName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setCardType(cardType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setAccountType(accountType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setCardNo(cardNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setIdNo(idNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setDepositType(depositType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setAmount(amount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setOutChargeNo(outChargeNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setUserName(userName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, String> extra = new HashedMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(StringUtils.isNoneBlank(openId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                extra.put("openId",openId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						/*	String value = systemDictDao.findByDictNameAndCode("RETURN_URL","RETURN_URL"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							extra.put("returnUrl",value);*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            extra.put("notifyUrl", notifyUrl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setExtra(extra); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            ResponseParams<RechargeResult> respnse = onepayClient.recharge(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (respnse.getRespCode().equals("000000")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jsonObject = JSON.toJSONString(respnse); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                isSuccess = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jsonObject = JSON.toJSONString(respnse); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                error = "请求失败,返回结果:" + respnse.getRespCode() + "," + respnse.getRespMsg(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (respnse!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            isSuccess = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringWriter sw = new StringWriter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            PrintWriter pw = new PrintWriter(sw); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(pw); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            error = sw.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logService.saveHttpLog(isSuccess, "hop.trade.recharge", "互联网预交金充值", "POST", null,JSON.toJSONString(param), jsonObject, error,logService.shoppatType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return jsonObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 预交金退款 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param operatorId 操作者id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param operatorName 操作者名字 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param cardType 卡类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param accountType 账号类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param cardNo 卡号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param idNo 身份证号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param amount 退款金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param outChargeNo 原充值订单号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param userName 用户名字 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param withdrawMode 退款方式         0 现金退回1 原路退回2 银企转账3 医保自费退回 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param traceNo 平台交易跟踪号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param outRefundNo 退款订单号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String refund(String operatorId,String operatorName,String cardType,String accountType,String cardNo,String idNo,String amount,String outChargeNo,String userName,String withdrawMode,String traceNo,String outRefundNo,String hisCustId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Boolean isSuccess = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String jsonObject = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        RefundParams param = new RefundParams(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String error = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            OauthYlzConfigDO oauthYlzConfigDO = oauthYlzConfigDao.findById("ylz_pay_config"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(oauthYlzConfigDO==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return "未找到支付配置文件"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String appId = oauthYlzConfigDO.getAppId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String appSecret = oauthYlzConfigDO.getAppKey(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String onepayUrl = oauthYlzConfigDO.getUrl(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String signType=oauthYlzConfigDO.getSignType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String encryptType = oauthYlzConfigDO.getEncType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HisOnepayClient onepayClient = new HisOnepayClient(onepayUrl, appId, appSecret, signType, encryptType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setOperatorId(operatorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setOperatorName(operatorName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setOutChargeNo(outChargeNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setCardType(cardType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setCardNo(cardNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setAccountType(accountType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setAmount(amount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setWithdrawMode(withdrawMode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setOutChargeNo(outChargeNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setTraceNo(traceNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setOutRefundNo(outRefundNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setHisCustId(hisCustId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setIdNo(idNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setUserName(userName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            ResponseParams<RefundResult> respnse = onepayClient.refund(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (respnse.getRespCode().equals("000000")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jsonObject = JSON.toJSONString(respnse); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jsonObject = JSON.toJSONString(respnse); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                isSuccess = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                error = "请求失败,返回结果:" + respnse.getRespCode() + "," + respnse.getRespMsg(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            isSuccess = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringWriter sw = new StringWriter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            PrintWriter pw = new PrintWriter(sw); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(pw); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            error = sw.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logService.saveHttpLog(isSuccess, "hop.trade.refund", "互联网预交金退款", "POST", null,JSON.toJSONString(param), jsonObject, error, logService.shoppatType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return jsonObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 预交金查询余额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param operatorId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param operatorName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param termNo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param tradeType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param outTradeNo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param traceNo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String ylzTradeQuery(String operatorId,String operatorName,String termNo,String tradeType,String outTradeNo,String traceNo){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Boolean isSuccess = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String jsonObject = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        TradeQueryParams param = new TradeQueryParams(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String error = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            OauthYlzConfigDO oauthYlzConfigDO = oauthYlzConfigDao.findById("ylz_pay_config"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(oauthYlzConfigDO==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return "未找到支付配置文件"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String appId = oauthYlzConfigDO.getAppId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String appSecret = oauthYlzConfigDO.getAppKey(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String onepayUrl = oauthYlzConfigDO.getUrl(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String signType=oauthYlzConfigDO.getSignType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String encryptType = oauthYlzConfigDO.getEncType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HisOnepayClient onepayClient = new HisOnepayClient(onepayUrl, appId, appSecret, signType, encryptType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setOperatorId(operatorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setOperatorName(operatorName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setTradeType(tradeType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setOutTradeNo(outTradeNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.setTraceNo(traceNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            ResponseParams<TradeQueryResult> respnse = onepayClient.tradeQuery(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (respnse.getRespCode().equals("000000")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jsonObject = JSON.toJSONString(respnse); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                isSuccess = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jsonObject = JSON.toJSONString(respnse); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                error = "请求失败,返回结果:" + respnse.getRespCode() + "," + respnse.getRespMsg(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            isSuccess = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringWriter sw = new StringWriter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            PrintWriter pw = new PrintWriter(sw); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(pw); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            error = sw.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logService.saveHttpLog(isSuccess, "hop.trade.query", "互联网预交金查询", "POST", null,JSON.toJSONString(param), jsonObject, error,logService.shoppatType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return jsonObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//============================================预交金充值 end====================================================== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |