From 28e7d3937f819a3486b22bfa1c84aee172aaccb4 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期一, 17 一月 2022 17:46:42 +0800
Subject: [PATCH] 优化代码
---
service-job/src/main/java/com/java110/job/adapt/fee/ReturnPayFeeToPlutusAdapt.java | 44 +++++++++++++++++++++++++++-----------------
1 files changed, 27 insertions(+), 17 deletions(-)
diff --git a/service-job/src/main/java/com/java110/job/adapt/fee/ReturnPayFeeToPlutusAdapt.java b/service-job/src/main/java/com/java110/job/adapt/fee/ReturnPayFeeToPlutusAdapt.java
index 086e9f7..df3ffb6 100644
--- a/service-job/src/main/java/com/java110/job/adapt/fee/ReturnPayFeeToPlutusAdapt.java
+++ b/service-job/src/main/java/com/java110/job/adapt/fee/ReturnPayFeeToPlutusAdapt.java
@@ -4,8 +4,9 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.core.client.FtpUploadTemplate;
import com.java110.core.client.OssUploadTemplate;
+import com.java110.core.factory.CommunitySettingFactory;
import com.java110.core.factory.PlutusFactory;
-import com.java110.dto.file.FileDto;
+import com.java110.core.log.LoggerFactory;
import com.java110.dto.onlinePay.OnlinePayDto;
import com.java110.dto.smallWeChat.SmallWeChatDto;
import com.java110.entity.order.Business;
@@ -18,17 +19,14 @@
import com.java110.utils.cache.MappingCache;
import com.java110.utils.constant.WechatConstant;
import com.java110.utils.util.BeanConvertUtil;
-import com.java110.utils.util.OSSUtil;
import com.java110.utils.util.PayUtil;
import com.java110.utils.util.StringUtil;
import org.bouncycastle.util.encoders.Base64;
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;
-import java.util.ArrayList;
import java.util.List;
/**
@@ -69,7 +67,7 @@
@Autowired
private RestTemplate outRestTemplate;
- public static final String wechatReturnUrl = "https://api.mch.weixin.qq.com/secapi/pay/refund";
+ public static final String wechatReturnUrl = "https://api.plutuspay.com/open/v2/refund";
private static Logger logger = LoggerFactory.getLogger(ReturnPayFeeMoneyAdapt.class);
@@ -116,14 +114,23 @@
SmallWeChatDto smallWeChatDto = new SmallWeChatDto();
smallWeChatDto.setMchId(onlinePayDtos.get(0).getMchId());
smallWeChatDto.setAppId(onlinePayDtos.get(0).getAppId());
-// List<SmallWeChatDto> smallWeChatDtos = smallWeChatInnerServiceSMOImpl.querySmallWeChats(smallWeChatDto);
-// if (smallWeChatDto == null || smallWeChatDtos.size() <= 0) {
-// payPassword = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, "key");
-// certData = MappingCache.getRemark(WechatConstant.WECHAT_DOMAIN, "cert");
-// } else {
-// payPassword = smallWeChatDtos.get(0).getPayPassword();
-// certData = smallWeChatDtos.get(0).getRemarks();
-// }
+ List<SmallWeChatDto> smallWeChatDtos = smallWeChatInnerServiceSMOImpl.querySmallWeChats(smallWeChatDto);
+ String privateKey = "";
+ String devId = "";
+ String payPassword = "";
+ String publicKey = "";
+ if (smallWeChatDtos == null || smallWeChatDtos.size() < 1) {
+ privateKey = MappingCache.getRemark(WechatConstant.WECHAT_DOMAIN, "PLUTUS_PRIVATE_KEY");
+ devId = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, "PLUTUS_DEV_ID");
+ payPassword = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, "key");
+ publicKey = MappingCache.getRemark(WechatConstant.WECHAT_DOMAIN, "PLUTUS_PUBLIC_KEY");
+ } else {
+ privateKey = CommunitySettingFactory.getRemark(smallWeChatDtos.get(0).getObjId(), "PLUTUS_PRIVATE_KEY");
+ devId = CommunitySettingFactory.getValue(smallWeChatDto.getObjId(), "PLUTUS_DEV_ID");
+ payPassword = smallWeChatDtos.get(0).getPayPassword();
+ publicKey = CommunitySettingFactory.getRemark(smallWeChatDtos.get(0).getObjId(), "PLUTUS_PUBLIC_KEY");
+ }
+
JSONObject parameters = new JSONObject();
parameters.put("sn", onlinePayDtos.get(0).getMchId());//鍟嗘埛鍙�
@@ -131,7 +138,8 @@
parameters.put("outRefundId", onlinePayDtos.get(0).getPayId());//鎴戜滑鑷繁璁惧畾鐨勯��娆剧敵璇峰彿锛岀害鏉熶负UK
parameters.put("refundAmount", PayUtil.moneyToIntegerStr(Double.parseDouble(onlinePayDtos.get(0).getTotalFee())));//璁㈠崟閲戦 鍗曚綅涓哄垎锛侊紒锛佽繖閲岀◢寰敞鎰忎竴涓�
- String param = PlutusFactory.Encryption(parameters.toJSONString());
+
+ String param = PlutusFactory.Encryption(parameters.toJSONString(), privateKey, payPassword, devId);
System.out.println(param);
String str = PlutusFactory.post(wechatReturnUrl, param);
@@ -142,16 +150,18 @@
String signature = json.getString("signature");
String content = json.getString("content");
+
//楠岀
- Boolean verify = PlutusFactory.verify256(content, org.bouncycastle.util.encoders.Base64.decode(signature));
+ Boolean verify = PlutusFactory.verify256(content, Base64.decode(signature), publicKey);
//楠岀鎴愬姛
if (!verify) {
throw new IllegalArgumentException("鏀粯澶辫触绛惧悕澶辫触");
}
//瑙e瘑
- byte[] bb = PlutusFactory.decrypt(Base64.decode(content), PlutusFactory.SECRET_KEY);
+ byte[] bb = PlutusFactory.decrypt(Base64.decode(content), payPassword);
//鏈嶅姟鍣ㄨ繑鍥炲唴瀹�
String paramOut = new String(bb);
+ System.out.println(paramOut);
JSONObject paramObj = JSONObject.parseObject(paramOut);
@@ -165,7 +175,7 @@
private void doUpdateOnlinePay(String orderId, String state, String message) {
OnlinePayPo onlinePayPo = new OnlinePayPo();
- onlinePayPo.setMessage(message.length() > 1000 ? message.substring(0, 1000) : message);
+ onlinePayPo.setMessage(!StringUtil.isEmpty(message) && message.length() > 1000 ? message.substring(0, 1000) : message);
onlinePayPo.setOrderId(orderId);
onlinePayPo.setState(state);
onlinePayV1InnerServiceSMOImpl.updateOnlinePay(onlinePayPo);
--
Gitblit v1.8.0