|
|
@@ -7,6 +7,9 @@ import com.github.microservice.app.stream.StreamHelper;
|
|
|
import com.github.microservice.models.requestModel.SuperResponseModel;
|
|
|
import com.github.microservice.models.type.PaymentType;
|
|
|
import com.github.microservice.net.ResultContent;
|
|
|
+import com.github.microservice.stream.PaymentStreamType;
|
|
|
+import com.github.microservice.stream.model.OrderStateModel;
|
|
|
+import com.github.microservice.types.RefundStatus;
|
|
|
import com.zhongshu.card.client.model.org.UserCountModel;
|
|
|
import com.zhongshu.card.client.service.feign.OrganizationFeignService;
|
|
|
import com.zhongshu.card.client.service.feign.UserFeignService;
|
|
|
@@ -25,19 +28,23 @@ import com.github.microservice.types.unionFrictionlessPayType.UnionUserOpenType;
|
|
|
import com.zhongshu.payment.client.payModel.unionFrictionlessPay.paymentModel.SignInParam;
|
|
|
import com.zhongshu.payment.client.payModel.unionFrictionlessPay.paymentModel.UserRescissionParam;
|
|
|
import com.zhongshu.payment.client.payModel.unionFrictionlessPay.paymentModel.UserSignQueryParam;
|
|
|
+import com.zhongshu.payment.server.core.dao.RechargeRecordDao;
|
|
|
import com.zhongshu.payment.server.core.dao.unionFrictionlessPay.UnionUserOpenInfoDao;
|
|
|
import com.zhongshu.payment.server.core.domain.unionFrictionlessPay.UnionUserOpenInfo;
|
|
|
+import com.zhongshu.payment.server.core.domain.wallet.RechargeRecord;
|
|
|
import com.zhongshu.payment.server.core.service.org.CollectionIdService;
|
|
|
import com.zhongshu.payment.server.core.service.pay.SuperPayService;
|
|
|
import com.zhongshu.payment.server.core.service.pay.impl.unionFrictionlessPay.config.UnionFrictionlessPayApiConfig;
|
|
|
import com.zhongshu.payment.server.core.service.pay.impl.unionFrictionlessPay.config.UnionFrictionlessPayConfig;
|
|
|
import com.zhongshu.payment.server.core.service.pay.impl.unionFrictionlessPay.config.UnionPaymentConfig;
|
|
|
import com.zhongshu.payment.server.core.utils.AesUtils;
|
|
|
+import com.zhongshu.payment.server.core.utils.CommonUtil;
|
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
@@ -80,6 +87,9 @@ public class UnionFrictionlessPayMainService extends SuperPayService {
|
|
|
@Autowired
|
|
|
UnionFrictionlessPayConfig payConfig;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ RechargeRecordDao rechargeRecordDao;
|
|
|
+
|
|
|
/**
|
|
|
* 发起签约
|
|
|
*
|
|
|
@@ -190,7 +200,7 @@ public class UnionFrictionlessPayMainService extends SuperPayService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 签约状态查询
|
|
|
+ * 签约状态查询 /v1/inip/sign/uac/entrust-pay/sign-query
|
|
|
*
|
|
|
* @param contractNo
|
|
|
* @return
|
|
|
@@ -221,13 +231,16 @@ public class UnionFrictionlessPayMainService extends SuperPayService {
|
|
|
return ResultContent.buildSuccess(signQueryResponse);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
- * 创建订单并申请扣款
|
|
|
+ * 创建订单并申请扣款 /v1/netpay/uac/senseless-pay
|
|
|
*
|
|
|
* @param param
|
|
|
* @return
|
|
|
*/
|
|
|
public ResultContent createAndPayOrder(CreateOrderParam param) {
|
|
|
+ // 查询是否签约
|
|
|
+
|
|
|
SenselessPayParam senselessPayParam = new SenselessPayParam();
|
|
|
senselessPayParam.setRequestTimestamp(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.FORMAT_LONG));
|
|
|
|
|
|
@@ -241,6 +254,49 @@ public class UnionFrictionlessPayMainService extends SuperPayService {
|
|
|
return ResultContent.buildSuccess();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询卡列表 /v1/inip/sign/uac/card-list-query
|
|
|
+ *
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ResultContent cardListQuery(CreateOrderParam param) {
|
|
|
+ // 查询是否签约
|
|
|
+
|
|
|
+ CardListQueryParam requestParam = new CardListQueryParam();
|
|
|
+ requestParam.setRequestTimestamp(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.FORMAT_LONG));
|
|
|
+
|
|
|
+ String url = payApiConfig.getUrl(UnionFrictionlessPayApiConfig.cardListQuery);
|
|
|
+ SuperResponseModel requestAPI = unionRequestService.requestUnionAPI(url, requestParam, SenselessPayResponse.class);
|
|
|
+ if (requestAPI.isFailed()) {
|
|
|
+ return ResultContent.buildFail(requestAPI.getMsg());
|
|
|
+ }
|
|
|
+ CardListQueryResponse response = (CardListQueryResponse) requestAPI;
|
|
|
+
|
|
|
+ return ResultContent.buildSuccess();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 交易查询 /v1/netpay/query
|
|
|
+ *
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ResultContent netPayQuery(CreateOrderParam param) {
|
|
|
+ // 查询是否签约
|
|
|
+ NetPayQueryParam requestParam = new NetPayQueryParam();
|
|
|
+ requestParam.setRequestTimestamp(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.FORMAT_LONG));
|
|
|
+
|
|
|
+ String url = payApiConfig.getUrl(UnionFrictionlessPayApiConfig.netPayQuery);
|
|
|
+ SuperResponseModel requestAPI = unionRequestService.requestUnionAPI(url, requestParam, SenselessPayResponse.class);
|
|
|
+ if (requestAPI.isFailed()) {
|
|
|
+ return ResultContent.buildFail(requestAPI.getMsg());
|
|
|
+ }
|
|
|
+ NetPayQueryResponse response = (NetPayQueryResponse) requestAPI;
|
|
|
+
|
|
|
+ return ResultContent.buildSuccess(response);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 创建订单并申请扣款
|
|
|
*
|
|
|
@@ -262,12 +318,21 @@ public class UnionFrictionlessPayMainService extends SuperPayService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 云闪付 申请退款
|
|
|
+ * 云闪付 申请退款 /v1/netpay/refund
|
|
|
*
|
|
|
* @param param
|
|
|
* @return
|
|
|
*/
|
|
|
public ResultContent uacRefund(CreateOrderParam param) {
|
|
|
+ String outTradeNo = param.getOutTradeNo();
|
|
|
+ // 查询全卡订单相关数据,组装请求数据
|
|
|
+
|
|
|
+ RechargeRecord rechargeRecord = rechargeRecordDao.findByOutTradeNo(outTradeNo);
|
|
|
+ if (ObjectUtils.isEmpty(rechargeRecord)) {
|
|
|
+ return ResultContent.buildFail("没有相关订单数据");
|
|
|
+ }
|
|
|
+ // 流水 全卡订单和支付中心订单用 outTradeNo 关联
|
|
|
+
|
|
|
UacRefundParam senselessPayParam = new UacRefundParam();
|
|
|
senselessPayParam.setRequestTimestamp(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.FORMAT_LONG));
|
|
|
|
|
|
@@ -277,17 +342,33 @@ public class UnionFrictionlessPayMainService extends SuperPayService {
|
|
|
return ResultContent.buildFail(requestAPI.getMsg());
|
|
|
}
|
|
|
UacRefundResponse response = (UacRefundResponse) requestAPI;
|
|
|
+ String refundStatus = response.getRefundStatus();
|
|
|
+ rechargeRecord.setRefundStatus(CommonUtil.getEnumByName(RefundStatus.class, refundStatus));
|
|
|
+ rechargeRecord.setRefundResponse(response);
|
|
|
+ rechargeRecordDao.save(rechargeRecord);
|
|
|
|
|
|
- return ResultContent.buildSuccess();
|
|
|
+ //
|
|
|
+ OrderStateModel orderStateModel = new OrderStateModel();
|
|
|
+ orderStateModel.setOutTradeNo(outTradeNo);
|
|
|
+ orderStateModel.setOrderState(rechargeRecord.getRechargeState());
|
|
|
+ streamHelper.send(PaymentStreamType.PayStateStream.name(), orderStateModel);
|
|
|
+
|
|
|
+ return ResultContent.buildSuccess(response);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 云闪付 申请退款
|
|
|
+ * 云闪付 申请退款查询 v1/netpay/refund-query
|
|
|
*
|
|
|
* @param param
|
|
|
* @return
|
|
|
*/
|
|
|
public ResultContent uacRefundQuery(CreateOrderParam param) {
|
|
|
+ String outTradeNo = param.getOutTradeNo();
|
|
|
+ RechargeRecord rechargeRecord = rechargeRecordDao.findByOutTradeNo(outTradeNo);
|
|
|
+ if (ObjectUtils.isEmpty(rechargeRecord)) {
|
|
|
+ return ResultContent.buildFail("没有相关订单数据");
|
|
|
+ }
|
|
|
+
|
|
|
UacRefundQueryParam requestParam = new UacRefundQueryParam();
|
|
|
requestParam.setRequestTimestamp(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.FORMAT_LONG));
|
|
|
|