|
@ -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;
|
|
@ -343,7 +344,201 @@ public class YlzPayService {
|
|
|
e.printStackTrace(pw);
|
|
|
error = sw.toString();
|
|
|
}
|
|
|
logService.saveHttpLog(isSuccess, "hop.mmpay.msg.push", "互联网医院消息推送", "POST", null,JSON.toJSONString(jsonObject), object, error,logService.pushType);
|
|
|
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======================================================
|
|
|
}
|