|
|
@@ -19,9 +19,13 @@ import com.github.microservice.types.payment.PaymentType;
|
|
|
import com.zhongshu.card.client.model.pay.ChinaumsSenselessUserSignInfoModel;
|
|
|
import com.zhongshu.card.client.model.pay.UnionApplySignParam;
|
|
|
import com.zhongshu.card.client.type.ContractState;
|
|
|
+import com.zhongshu.card.client.type.ShareOrderType;
|
|
|
+import com.zhongshu.card.client.utils.DateUtils;
|
|
|
import com.zhongshu.card.server.core.dao.pay.ChinaumsSenselessUserSignInfoDao;
|
|
|
+import com.zhongshu.card.server.core.dao.pay.ShareOrderDao;
|
|
|
import com.zhongshu.card.server.core.domain.pay.ChinaumsSenselessUserSignInfo;
|
|
|
import com.zhongshu.card.server.core.domain.pay.PayAccount;
|
|
|
+import com.zhongshu.card.server.core.domain.pay.ShareOrder;
|
|
|
import com.zhongshu.card.server.core.service.base.SuperService;
|
|
|
import com.zhongshu.card.server.core.service.paySetting.OrgPayAccountService;
|
|
|
import com.zhongshu.card.server.core.util.BeanUtils;
|
|
|
@@ -58,6 +62,9 @@ public class ChinaumsSenselessPayService extends SuperService {
|
|
|
@Autowired
|
|
|
TransactionLogService transactionLogService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ ShareOrderDao shareOrderDao;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 银联申请签约
|
|
|
@@ -279,15 +286,27 @@ public class ChinaumsSenselessPayService extends SuperService {
|
|
|
request.setTotalAmount(total.toBigInteger().toString());
|
|
|
request.setAttachedData(remark);
|
|
|
|
|
|
+ String shareOrderNo = projectConf.getSysSourceNo() + DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyyMMddHHmmssSSS) + CommonUtil.randomCode(7);
|
|
|
|
|
|
VaFld vaFld = new VaFld();
|
|
|
SatInfo satInfo = new SatInfo();
|
|
|
satInfo.setMerId(orgConf.getMchId());
|
|
|
satInfo.setFeeBear("Y");
|
|
|
satInfo.setSatAmt(total.toBigInteger().toString());
|
|
|
+ satInfo.setMerOrderId(shareOrderNo);
|
|
|
vaFld.setSatInfo(List.of(satInfo));
|
|
|
request.setVaFld(vaFld);
|
|
|
|
|
|
+ //TODO 放到扩展字段里,然后收到回调的时候再处理
|
|
|
+ ShareOrder shareOrder = new ShareOrder();
|
|
|
+ shareOrder.setOrderNo(orderNo);
|
|
|
+ shareOrder.setOid(oid);
|
|
|
+ shareOrder.setProjectOid(projectOid);
|
|
|
+ shareOrder.setAmount(total.toBigInteger().longValue());
|
|
|
+ shareOrder.setShareOrderType(ShareOrderType.Pay);
|
|
|
+ shareOrder.setShareOrderNo(shareOrderNo);
|
|
|
+ shareOrderDao.save(shareOrder);
|
|
|
+
|
|
|
payProductParameter.setMeta(BeanUtil.bean2Map(request));
|
|
|
com.github.microservice.pay.client.ret.ResultContent<Object> collectionResultContent = senselessPayService.collection(payProductParameter);
|
|
|
return ResultContent.buildContent(collectionResultContent.getContent());
|
|
|
@@ -310,24 +329,40 @@ public class ChinaumsSenselessPayService extends SuperService {
|
|
|
return ResultContent.buildFail(projectAccountModelResultContent.getMsg());
|
|
|
}
|
|
|
|
|
|
+ ChinaumsSenselessConf projectConf = (ChinaumsSenselessConf) projectAccountModelResultContent.getContent().getConf();
|
|
|
|
|
|
PayProductParameter<Object> payProductParameter = new PayProductParameter<>();
|
|
|
payProductParameter.setAccountName(projectAccountName);
|
|
|
ChinaSenselessRefundRequest request = new ChinaSenselessRefundRequest();
|
|
|
request.setMchntOrderId(orderNo);
|
|
|
-
|
|
|
request.setRefundAmount(total.toString());
|
|
|
request.setTargetOrderId(refundOrderNo);
|
|
|
request.setSysSource(JsonUtil.toJson(Map.of("userId", userId, "oid", oid, "projectOid", projectOid)));
|
|
|
|
|
|
+ ShareOrder shareOrder = shareOrderDao.findTopByOrderNoAndProjectOidAndOidAndShareOrderType(orderNo, projectOid, oid, ShareOrderType.Pay);
|
|
|
+ String shareOrderNo = projectConf.getSysSourceNo() + DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyyMMddHHmmssSSS) + CommonUtil.randomCode(7);
|
|
|
+
|
|
|
+
|
|
|
VaFld vaFld = new VaFld();
|
|
|
SatInfo satInfo = new SatInfo();
|
|
|
satInfo.setMerId(orgConf.getMchId());
|
|
|
// satInfo.setFeeBear("Y");
|
|
|
satInfo.setRefundAmt(total.toBigInteger().toString());
|
|
|
+ satInfo.setRefundOrderId(shareOrderNo);
|
|
|
+ satInfo.setOriMerOrderId(shareOrder.getShareOrderNo());
|
|
|
vaFld.setSatInfo(List.of(satInfo));
|
|
|
request.setVaFld(vaFld);
|
|
|
|
|
|
+ //TODO 放到扩展字段里,然后收到回调的时候再处理
|
|
|
+ ShareOrder refundShareOrder = new ShareOrder();
|
|
|
+ shareOrder.setOrderNo(orderNo);
|
|
|
+ shareOrder.setOid(oid);
|
|
|
+ shareOrder.setProjectOid(projectOid);
|
|
|
+ shareOrder.setAmount(total.toBigInteger().longValue());
|
|
|
+ shareOrder.setShareOrderType(ShareOrderType.Refund);
|
|
|
+ shareOrder.setShareOrderNo(shareOrderNo);
|
|
|
+ shareOrderDao.save(refundShareOrder);
|
|
|
+
|
|
|
payProductParameter.setMeta(BeanUtil.bean2Map(request));
|
|
|
com.github.microservice.pay.client.ret.ResultContent<Object> refundResultContent = senselessPayService.refund(payProductParameter);
|
|
|
return ResultContent.buildContent(refundResultContent.getContent());
|