|
@@ -3,16 +3,20 @@ package com.java110.job.adapt.returnMoney.wechat;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.java110.core.client.FtpUploadTemplate;
|
|
import com.java110.core.client.FtpUploadTemplate;
|
|
|
import com.java110.core.client.OssUploadTemplate;
|
|
import com.java110.core.client.OssUploadTemplate;
|
|
|
|
|
+import com.java110.core.factory.GenerateCodeFactory;
|
|
|
import com.java110.core.log.LoggerFactory;
|
|
import com.java110.core.log.LoggerFactory;
|
|
|
import com.java110.dto.file.FileDto;
|
|
import com.java110.dto.file.FileDto;
|
|
|
|
|
+import com.java110.dto.onlinePayRefund.OnlinePayRefundDto;
|
|
|
import com.java110.dto.wechat.OnlinePayDto;
|
|
import com.java110.dto.wechat.OnlinePayDto;
|
|
|
import com.java110.dto.wechat.SmallWeChatDto;
|
|
import com.java110.dto.wechat.SmallWeChatDto;
|
|
|
import com.java110.dto.system.Business;
|
|
import com.java110.dto.system.Business;
|
|
|
|
|
+import com.java110.intf.acct.IOnlinePayRefundV1InnerServiceSMO;
|
|
|
import com.java110.intf.acct.IOnlinePayV1InnerServiceSMO;
|
|
import com.java110.intf.acct.IOnlinePayV1InnerServiceSMO;
|
|
|
import com.java110.intf.fee.IReturnPayFeeInnerServiceSMO;
|
|
import com.java110.intf.fee.IReturnPayFeeInnerServiceSMO;
|
|
|
import com.java110.intf.order.IOrderInnerServiceSMO;
|
|
import com.java110.intf.order.IOrderInnerServiceSMO;
|
|
|
import com.java110.intf.store.ISmallWechatV1InnerServiceSMO;
|
|
import com.java110.intf.store.ISmallWechatV1InnerServiceSMO;
|
|
|
import com.java110.job.adapt.DatabusAdaptImpl;
|
|
import com.java110.job.adapt.DatabusAdaptImpl;
|
|
|
|
|
+import com.java110.po.onlinePayRefund.OnlinePayRefundPo;
|
|
|
import com.java110.po.wechat.OnlinePayPo;
|
|
import com.java110.po.wechat.OnlinePayPo;
|
|
|
import com.java110.utils.cache.MappingCache;
|
|
import com.java110.utils.cache.MappingCache;
|
|
|
import com.java110.utils.constant.MappingConstant;
|
|
import com.java110.utils.constant.MappingConstant;
|
|
@@ -86,6 +90,9 @@ public class ReturnPayFeeMoneyAdapt extends DatabusAdaptImpl {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private OssUploadTemplate ossUploadTemplate;
|
|
private OssUploadTemplate ossUploadTemplate;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private IOnlinePayRefundV1InnerServiceSMO onlinePayRefundV1InnerServiceSMOImpl;
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public void execute(Business business, List<Business> businesses) {
|
|
public void execute(Business business, List<Business> businesses) {
|
|
|
JSONObject data = business.getData();
|
|
JSONObject data = business.getData();
|
|
@@ -141,9 +148,21 @@ public class ReturnPayFeeMoneyAdapt extends DatabusAdaptImpl {
|
|
|
parameters.put("mch_id", mchPassword);//商户号
|
|
parameters.put("mch_id", mchPassword);//商户号
|
|
|
parameters.put("sub_mch_id", onlinePayDtos.get(0).getMchId());//商户号
|
|
parameters.put("sub_mch_id", onlinePayDtos.get(0).getMchId());//商户号
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // todo 查询退费明细
|
|
|
|
|
+ OnlinePayRefundDto onlinePayRefundDto = new OnlinePayRefundDto();
|
|
|
|
|
+ onlinePayRefundDto.setPayId(onlinePayDtos.get(0).getPayId());
|
|
|
|
|
+ onlinePayRefundDto.setState(OnlinePayDto.STATE_WT);
|
|
|
|
|
+ List<OnlinePayRefundDto> onlinePayRefundDtos = onlinePayRefundV1InnerServiceSMOImpl.queryOnlinePayRefunds(onlinePayRefundDto);
|
|
|
|
|
+ String tranNo = GenerateCodeFactory.getGeneratorId("11");
|
|
|
|
|
+ if(onlinePayRefundDtos != null && onlinePayRefundDtos.size() >0){
|
|
|
|
|
+ tranNo = onlinePayRefundDtos.get(0).getRefundId();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
parameters.put("nonce_str", PayUtil.makeUUID(32));//随机数
|
|
parameters.put("nonce_str", PayUtil.makeUUID(32));//随机数
|
|
|
parameters.put("out_trade_no", onlinePayDtos.get(0).getOrderId());//商户订单号
|
|
parameters.put("out_trade_no", onlinePayDtos.get(0).getOrderId());//商户订单号
|
|
|
- parameters.put("out_refund_no", onlinePayDtos.get(0).getPayId());//我们自己设定的退款申请号,约束为UK
|
|
|
|
|
|
|
+ parameters.put("out_refund_no", tranNo);//我们自己设定的退款申请号,约束为UK
|
|
|
parameters.put("total_fee", PayUtil.moneyToIntegerStr(Double.parseDouble(onlinePayDtos.get(0).getTotalFee())));//订单金额 单位为分!!!这里稍微注意一下
|
|
parameters.put("total_fee", PayUtil.moneyToIntegerStr(Double.parseDouble(onlinePayDtos.get(0).getTotalFee())));//订单金额 单位为分!!!这里稍微注意一下
|
|
|
parameters.put("refund_fee", PayUtil.moneyToIntegerStr(Double.parseDouble(onlinePayDtos.get(0).getRefundFee())));//退款金额 单位为分!!!
|
|
parameters.put("refund_fee", PayUtil.moneyToIntegerStr(Double.parseDouble(onlinePayDtos.get(0).getRefundFee())));//退款金额 单位为分!!!
|
|
|
parameters.put("sign", PayUtil.createSign(parameters, payPassword));
|
|
parameters.put("sign", PayUtil.createSign(parameters, payPassword));
|
|
@@ -184,18 +203,36 @@ public class ReturnPayFeeMoneyAdapt extends DatabusAdaptImpl {
|
|
|
}
|
|
}
|
|
|
Map<String, String> resMap = PayUtil.xmlStrToMap(jsonStr);
|
|
Map<String, String> resMap = PayUtil.xmlStrToMap(jsonStr);
|
|
|
if ("SUCCESS".equals(resMap.get("return_code")) && "SUCCESS".equals(resMap.get("result_code"))) {
|
|
if ("SUCCESS".equals(resMap.get("return_code")) && "SUCCESS".equals(resMap.get("result_code"))) {
|
|
|
- doUpdateOnlinePay(onlinePayDtos.get(0).getOrderId(), OnlinePayDto.STATE_CT, "退款完成");
|
|
|
|
|
|
|
+ doUpdateOnlinePay(onlinePayDtos.get(0).getPayId(), OnlinePayDto.STATE_CT, "退款完成");
|
|
|
} else {
|
|
} else {
|
|
|
- doUpdateOnlinePay(onlinePayDtos.get(0).getOrderId(), OnlinePayDto.STATE_FT, resMap.get("return_msg"));
|
|
|
|
|
|
|
+ doUpdateOnlinePay(onlinePayDtos.get(0).getPayId(), OnlinePayDto.STATE_FT, resMap.get("return_msg"));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void doUpdateOnlinePay(String orderId, String state, String message) {
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ private void doUpdateOnlinePay(String payId, String state, String message) {
|
|
|
OnlinePayPo onlinePayPo = new OnlinePayPo();
|
|
OnlinePayPo onlinePayPo = new OnlinePayPo();
|
|
|
onlinePayPo.setMessage(message.length() > 1000 ? message.substring(0, 1000) : message);
|
|
onlinePayPo.setMessage(message.length() > 1000 ? message.substring(0, 1000) : message);
|
|
|
- onlinePayPo.setOrderId(orderId);
|
|
|
|
|
|
|
+ onlinePayPo.setPayId(payId);
|
|
|
onlinePayPo.setState(state);
|
|
onlinePayPo.setState(state);
|
|
|
onlinePayV1InnerServiceSMOImpl.updateOnlinePay(onlinePayPo);
|
|
onlinePayV1InnerServiceSMOImpl.updateOnlinePay(onlinePayPo);
|
|
|
|
|
+
|
|
|
|
|
+ // todo 查询退费明细
|
|
|
|
|
+ OnlinePayRefundDto onlinePayRefundDto = new OnlinePayRefundDto();
|
|
|
|
|
+ onlinePayRefundDto.setPayId(payId);
|
|
|
|
|
+ onlinePayRefundDto.setState(OnlinePayDto.STATE_WT);
|
|
|
|
|
+ List<OnlinePayRefundDto> onlinePayRefundDtos = onlinePayRefundV1InnerServiceSMOImpl.queryOnlinePayRefunds(onlinePayRefundDto);
|
|
|
|
|
+
|
|
|
|
|
+ if(onlinePayRefundDtos == null || onlinePayRefundDtos.size() < 1){
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ OnlinePayRefundPo onlinePayRefundPo = new OnlinePayRefundPo();
|
|
|
|
|
+ onlinePayRefundPo.setRefundId(onlinePayRefundDtos.get(0).getRefundId());
|
|
|
|
|
+ onlinePayRefundPo.setMessage(message.length() > 1000 ? message.substring(0, 1000) : message);
|
|
|
|
|
+ onlinePayRefundPo.setState(state);
|
|
|
|
|
+ onlinePayRefundV1InnerServiceSMOImpl.updateOnlinePayRefund(onlinePayRefundPo);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private byte[] getPkcs12(String fileName) {
|
|
private byte[] getPkcs12(String fileName) {
|