From e85d80650f2e9908cdfd5d873ece182273538622 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期三, 29 三月 2023 23:06:56 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity
---
service-job/src/main/java/com/java110/job/adapt/fee/ReturnPayFeeMoneyAdapt.java | 72 ++++++++++++++++++++----------------
1 files changed, 40 insertions(+), 32 deletions(-)
diff --git a/service-job/src/main/java/com/java110/job/adapt/fee/ReturnPayFeeMoneyAdapt.java b/service-job/src/main/java/com/java110/job/adapt/fee/ReturnPayFeeMoneyAdapt.java
index 210ed2f..34e2600 100644
--- a/service-job/src/main/java/com/java110/job/adapt/fee/ReturnPayFeeMoneyAdapt.java
+++ b/service-job/src/main/java/com/java110/job/adapt/fee/ReturnPayFeeMoneyAdapt.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.core.client.FtpUploadTemplate;
import com.java110.core.client.OssUploadTemplate;
+import com.java110.core.log.LoggerFactory;
import com.java110.dto.file.FileDto;
import com.java110.dto.onlinePay.OnlinePayDto;
import com.java110.dto.smallWeChat.SmallWeChatDto;
@@ -10,10 +11,11 @@
import com.java110.intf.acct.IOnlinePayV1InnerServiceSMO;
import com.java110.intf.fee.IReturnPayFeeInnerServiceSMO;
import com.java110.intf.order.IOrderInnerServiceSMO;
-import com.java110.intf.store.ISmallWeChatInnerServiceSMO;
+import com.java110.intf.store.ISmallWechatV1InnerServiceSMO;
import com.java110.job.adapt.DatabusAdaptImpl;
import com.java110.po.onlinePay.OnlinePayPo;
import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.MappingConstant;
import com.java110.utils.constant.WechatConstant;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.OSSUtil;
@@ -29,7 +31,6 @@
import org.apache.http.ssl.SSLContexts;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
@@ -40,13 +41,26 @@
import java.util.*;
/**
- * 閫�璐瑰鏍搁�氳繃鍚� 閫氱煡 閾惰仈鏀粯骞冲彴閫�娆惧鐞�
+ * 閫�璐瑰鏍搁�氳繃鍚� 閫氱煡 寰俊鏀粯骞冲彴閫�娆惧鐞�
*
* @author fqz
* @Date 2021-08-19 10:12
*/
@Component(value = "returnPayFeeMoneyAdapt")
public class ReturnPayFeeMoneyAdapt extends DatabusAdaptImpl {
+
+ //寰俊鏀粯
+ public static final String DOMAIN_WECHAT_PAY = "WECHAT_PAY";
+
+ // 寰俊鏈嶅姟鍟嗘敮浠樺紑鍏�
+ public static final String WECHAT_SERVICE_PAY_SWITCH = "WECHAT_SERVICE_PAY_SWITCH";
+
+ //寮�鍏砄N鎵撳紑
+ public static final String WECHAT_SERVICE_PAY_SWITCH_ON = "ON";
+
+ private static final String WECHAT_SERVICE_APP_ID = "SERVICE_APP_ID";
+
+ private static final String WECHAT_SERVICE_MCH_ID = "SERVICE_MCH_ID";
@Autowired
private IReturnPayFeeInnerServiceSMO returnPayFeeInnerServiceSMOImpl;
@@ -57,10 +71,8 @@
@Autowired
private IOnlinePayV1InnerServiceSMO onlinePayV1InnerServiceSMOImpl;
-
@Autowired
- private ISmallWeChatInnerServiceSMO smallWeChatInnerServiceSMOImpl;
-
+ private ISmallWechatV1InnerServiceSMO smallWechatV1InnerServiceSMOImpl;
@Autowired
private RestTemplate outRestTemplate;
@@ -75,18 +87,15 @@
@Autowired
private OssUploadTemplate ossUploadTemplate;
-
@Override
public void execute(Business business, List<Business> businesses) {
JSONObject data = business.getData();
OnlinePayPo oaWorkflowDataPo = BeanConvertUtil.covertBean(data, OnlinePayPo.class);
-
try {
doPayFeeMoney(oaWorkflowDataPo);
} catch (Exception e) {
e.printStackTrace();
}
-
}
/**
@@ -95,57 +104,62 @@
* @param oaWorkflowDataPo
*/
public void doPayFeeMoney(OnlinePayPo oaWorkflowDataPo) throws Exception {
-
//鏌ヨ灏忓尯淇℃伅
OnlinePayDto onlinePayDto = new OnlinePayDto();
onlinePayDto.setPayId(oaWorkflowDataPo.getPayId());
onlinePayDto.setState(OnlinePayDto.STATE_WT);
List<OnlinePayDto> onlinePayDtos = onlinePayV1InnerServiceSMOImpl.queryOnlinePays(onlinePayDto);
-
if (onlinePayDtos == null || onlinePayDtos.size() < 1) {
return;
}
-
String payPassword = "";
String certData = "";
-
+ String mchPassword = "";
SmallWeChatDto smallWeChatDto = new SmallWeChatDto();
smallWeChatDto.setMchId(onlinePayDtos.get(0).getMchId());
smallWeChatDto.setAppId(onlinePayDtos.get(0).getAppId());
- List<SmallWeChatDto> smallWeChatDtos = smallWeChatInnerServiceSMOImpl.querySmallWeChats(smallWeChatDto);
+ List<SmallWeChatDto> smallWeChatDtos = smallWechatV1InnerServiceSMOImpl.querySmallWechats(smallWeChatDto);
if (smallWeChatDto == null || smallWeChatDtos.size() <= 0) {
- payPassword = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, "key");
- certData = MappingCache.getRemark(WechatConstant.WECHAT_DOMAIN, "cert");
+ payPassword = MappingCache.getValue(MappingConstant.WECHAT_STORE_DOMAIN, "key");
+ certData = MappingCache.getRemark(MappingConstant.WECHAT_STORE_DOMAIN, "cert");
+ mchPassword = MappingCache.getValue(MappingConstant.WECHAT_STORE_DOMAIN, "mchId");
} else {
payPassword = smallWeChatDtos.get(0).getPayPassword();
- certData = smallWeChatDtos.get(0).getRemarks();
-
+ certData = smallWeChatDtos.get(0).getCertPath();
+ mchPassword = smallWeChatDtos.get(0).getMchId();
+ if(StringUtil.isEmpty(certData)){
+ certData = MappingCache.getRemark(MappingConstant.WECHAT_STORE_DOMAIN, "cert");
+ }
}
+
SortedMap<String, String> parameters = new TreeMap<String, String>();
+ String paySwitch = MappingCache.getValue(DOMAIN_WECHAT_PAY, WECHAT_SERVICE_PAY_SWITCH);
parameters.put("appid", onlinePayDtos.get(0).getAppId());//appid
parameters.put("mch_id", onlinePayDtos.get(0).getMchId());//鍟嗘埛鍙�
+ if (WECHAT_SERVICE_PAY_SWITCH_ON.equals(paySwitch)) {
+ mchPassword = MappingCache.getValue(DOMAIN_WECHAT_PAY, WECHAT_SERVICE_MCH_ID);
+ parameters.put("mch_id", mchPassword);//鍟嗘埛鍙�
+ parameters.put("sub_mch_id", onlinePayDtos.get(0).getMchId());//鍟嗘埛鍙�
+ }
parameters.put("nonce_str", PayUtil.makeUUID(32));//闅忔満鏁�
- parameters.put("out_trade_no", onlinePayDtos.get(0).getMchId());//鍟嗘埛璁㈠崟鍙�
+ parameters.put("out_trade_no", onlinePayDtos.get(0).getOrderId());//鍟嗘埛璁㈠崟鍙�
parameters.put("out_refund_no", onlinePayDtos.get(0).getPayId());//鎴戜滑鑷繁璁惧畾鐨勯��娆剧敵璇峰彿锛岀害鏉熶负UK
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("sign", PayUtil.createSign(parameters, payPassword));
String xmlData = PayUtil.mapToXml(parameters);
-
-
KeyStore keyStore = KeyStore.getInstance("PKCS12");
ByteArrayInputStream inputStream = new ByteArrayInputStream(getPkcs12(certData));
try {
//杩欓噷鍐欏瘑鐮�..榛樿鏄綘鐨凪CHID
- keyStore.load(inputStream, onlinePayDtos.get(0).getMchId().toCharArray());
+ keyStore.load(inputStream, mchPassword.toCharArray());
} finally {
inputStream.close();
}
-
SSLContext sslcontext = SSLContexts.custom()
//杩欓噷涔熸槸鍐欏瘑鐮佺殑
- .loadKeyMaterial(keyStore, onlinePayDtos.get(0).getMchId().toCharArray())
+ .loadKeyMaterial(keyStore, mchPassword.toCharArray())
.build();
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
sslcontext,
@@ -169,15 +183,12 @@
} finally {
httpclient.close();
}
-
Map<String, String> resMap = PayUtil.xmlStrToMap(jsonStr);
-
if ("SUCCESS".equals(resMap.get("return_code")) && "SUCCESS".equals(resMap.get("result_code"))) {
doUpdateOnlinePay(onlinePayDtos.get(0).getOrderId(), OnlinePayDto.STATE_CT, "閫�娆惧畬鎴�");
} else {
doUpdateOnlinePay(onlinePayDtos.get(0).getOrderId(), OnlinePayDto.STATE_FT, resMap.get("return_msg"));
}
-
}
private void doUpdateOnlinePay(String orderId, String state, String message) {
@@ -190,11 +201,9 @@
private byte[] getPkcs12(String fileName) {
List<FileDto> fileDtos = new ArrayList<>();
-
byte[] context = null;
- String ftpPath = MappingCache.getValue(FtpUploadTemplate.FTP_DOMAIN, FtpUploadTemplate.FTP_PATH);
-
- String ossSwitch = MappingCache.getValue(OSSUtil.DOMAIN, OSSUtil.OSS_SWITCH);
+ String ftpPath = "hc/";
+ String ossSwitch = MappingCache.getValue(MappingConstant.FILE_DOMAIN, OSSUtil.OSS_SWITCH);
if (StringUtil.isEmpty(ossSwitch) || !OSSUtil.OSS_SWITCH_OSS.equals(ossSwitch)) {
String ftpServer = MappingCache.getValue(FtpUploadTemplate.FTP_DOMAIN, FtpUploadTemplate.FTP_SERVER);
int ftpPort = Integer.parseInt(MappingCache.getValue(FtpUploadTemplate.FTP_DOMAIN, FtpUploadTemplate.FTP_PORT));
@@ -208,7 +217,6 @@
0, "",
"");
}
-
return context;
}
}
--
Gitblit v1.8.0