Commit 2470716b by chongli

Merge branch 'f-6.6.8' of 192.168.10.6:caosy/fun-golf-service into f-6.6.8

parents 5b52dd30 53ed4623
......@@ -17,10 +17,10 @@ import com.ctrip.fun.golf.domain.payment.PaymentResult;
*/
public class PaymentResponseDao extends GenericHibernateDao<PaymentResult, Integer> {
/**
* 通过外部编号和服务名称查找对应的PaymentResult
* 通过外部编号outTradeId,操作类型tradeType和操作状态status,查找对应的PaymentResult
*
* @param outTradeId String
* @param serviceName
* @param serviceName
* @param status
* @return PaymentResult
*/
......@@ -32,8 +32,23 @@ public class PaymentResponseDao extends GenericHibernateDao<PaymentResult, Integ
criteria.add(Restrictions.eq("status", status));
return criteria.list();
}
/**
* 通过外部编号outTradeId,服务名称serviceName 查找对应的PaymentResult
*
* @param outTradeId String
* @param serviceName
* @return PaymentResult
*/
@SuppressWarnings("unchecked")
public List<PaymentResult> queryServiceName(String outTradeId, String serviceName) {
Criteria criteria = this.getCriteria();
criteria.add(Restrictions.eq("outTradeId", outTradeId));
criteria.add(Restrictions.eq("serviceName", serviceName));
return criteria.list();
}
/**
* 通过ctradeId和服务名称查找对应的PaymentResult
* 通过ctradeId和操作类型tradeType 查找对应的PaymentResult
*
* @param outTradeId String
* @param serviceName
......
......@@ -297,24 +297,38 @@ public abstract class AbstractPaymentService<T extends AbstractOrder> extends Co
}
/**
* 获取cTradeId
*
* createpayorderV3 返回ctradeid=我们收单行的requestid
* 通知(Notify)的 ctradeid=我们收单行的orderid
* requestid=我们收单行的requestid
*
* 查询接口(QUERY_PAY_STATUS)
* 不带V3的 是用收单行的orderid
* 带V3的 是用收单行的 requestid
* 退款 用收单行的 requestid
* 取消订单 也是收单行的requestid
* V3的 预授权 完成/取消
* @param order
* @return ctradeId String
*/
private String getCtradeId(String outTradeId, String serviceName) {
String queryServiceName = "";
String cTradeId = "";
if (REFUND.equals(serviceName)) {
queryServiceName = PAY;
queryServiceName = PAYMENT_REQUEST;
} else if (PREAUTH_FINISH.equals(serviceName)) {
queryServiceName = PAY;
queryServiceName = PAYMENT_REQUEST;
} else if (PREAUTH_CANCEL.equals(serviceName)) {
queryServiceName = PREAUTH_FINISH;
} else if (QUERY_PAY_STATUS.equals(serviceName)) {
//TODO 当前 使用的查询接口是老的接口
return "0";
} else if (CANCEL_ORDER.equals(serviceName)) {
return "";
queryServiceName = PAYMENT_REQUEST;
}
List<PaymentResult> paymentResults = this.getPaymentResponseDao().query(outTradeId, queryServiceName, SUCCESS);
String cTradeId = "";
List<PaymentResult> paymentResults = this.getPaymentResponseDao().queryServiceName(outTradeId, queryServiceName);
if (paymentResults != null && paymentResults.size() >= 1) {
cTradeId = paymentResults.get(0).getCtradeId();
} else {
......@@ -464,6 +478,7 @@ public abstract class AbstractPaymentService<T extends AbstractOrder> extends Co
paymentResult.setPayToken(createPayOrderResponseBean.getPayToken());
paymentResult.setResultCode(createPayOrderResponseBean.getResultCode());
paymentResult.setOutTradeId(outTradeId);
paymentResult.setCtradeId(createPayOrderResponseBean.getcTradeId());
this.setHeadProperties(paymentResult, createPayOrderResponseBean.getHead());
this.getPaymentResponseDao().save(paymentResult);
}
......
......@@ -19,6 +19,7 @@ import com.ctrip.fun.common.core.util.RSA;
import com.ctrip.fun.common.vo.payment.AbstractPaymentBean;
import com.ctrip.fun.common.vo.payment.NotifyRequestBean;
import com.ctrip.fun.common.vo.payment.PaymentHeader;
import com.ctrip.fun.common.vo.payment.QueryPayStatusResponseBean;
import com.ctrip.fun.golf.dao.payment.PaymentResponseDao;
import com.ctrip.fun.golf.domain.payment.PaymentResult;
......@@ -44,6 +45,8 @@ public abstract class CorePaymentService {
public static final String QUERY_PAY_STATUS = "QueryPayStatus";
public static final String NOTIFY = "Notify";
public static final String PAY = "Pay";
public static final String SUCCESS = "success";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment