chenchaod pirms 1 dienas
vecāks
revīzija
69ae6279bd

+ 150
- 114
zhywpt-service-ats/src/main/java/cn/com/taiji/ats/manager/AbstractCommManager.java Parādīt failu

@@ -1,51 +1,121 @@
package cn.com.taiji.ats.manager;

import java.io.IOException;
import java.util.concurrent.Callable;
import java.time.LocalDateTime;
import javax.servlet.http.HttpServletRequest;

import org.apache.http.NoHttpResponseException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import com.netflix.client.ClientException;
import cn.com.taiji.common.manager.AbstractManager;
import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.manager.function.ExceptionBiConsumer;
import cn.com.taiji.common.manager.function.ExceptionFunction;
import cn.com.taiji.common.manager.net.http.binclient.ApiRequestException;
import cn.com.taiji.common.model.BaseModel;
import cn.com.taiji.common.model.file.FileProtocolSystemError;
import cn.com.taiji.common.pub.json.JsonTools;
import cn.com.taiji.common.web.util.WebTools;
import cn.com.taiji.core.manager.comm.client.IOFunction;
import cn.com.taiji.core.manager.comm.client.feign.FeignClientManager;
import cn.com.taiji.core.model.comm.protocol.*;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import com.netflix.client.ClientException;
import feign.RetryableException;
import org.apache.http.NoHttpResponseException;
import org.springframework.beans.factory.annotation.Autowired;

import cn.com.taiji.common.manager.AbstractManager;
import cn.com.taiji.common.manager.net.http.binclient.ApiRequestException;
import cn.com.taiji.core.manager.comm.client.feign.FeignClientManager;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;

@Service
public abstract class AbstractCommManager extends AbstractManager {
public static LocalDateTime TIME1990 = LocalDateTime.parse("1990-01-01T00:00:00");

@Autowired
protected FeignClientManager feignClientManager;


/**
* <pre>
* 重复3次提交请求,会将调接口错误的响应转换成前端的响应
* </pre>
*/
public <RS extends AbstractSignTypeResponse> RS jsonPostRepeat(AbstractSignTypeRequest<RS> req, String ifCode,
String accessToken) throws ManagerException {
return convertException(req, ifCode, r -> jsonPostRepeat(r, 3, ifCode, accessToken));
}

/**
* <pre>
* 重复3次提交请求,会将调接口错误的响应转换成前端的响应
* </pre>
*/
public <RS extends AbstractSignTypeResponse> RS jsonPostRepeat(AbstractSignTypeRequest<RS> req)
throws ManagerException {
return convertException(req, req.getServiceCommand().getIfCode(), r -> jsonPostRepeat(r, 3, null, null));
}

/**
* <pre>
* 重复3次提交请求,会将调接口错误的响应转换成前端的响应
* </pre>
*/
public <RS> RS jsonPostRepeat(AbstractOldSystemRequest<RS> req, String accessToken) throws ManagerException {
return convertException(req, req.getIfCode(), r -> jsonPostOldSystemRepeat(r, 3, accessToken));
}



/**
* 把异常吃掉的方法
*/
protected <V, E extends Exception> V doRepeatSafe(ExceptionFunction<Integer, V, E> call, int repeat,
ExceptionBiConsumer<Integer, Exception, E> exceptionHandler) {
int i = 0;

while (i < repeat) {
try {
return call.apply(i);
} catch (Exception e) {
logger.error("第{}次执行Exception:{}", i + 1, e.getMessage());
logger.warn("", e);
if (exceptionHandler != null) {
try {
exceptionHandler.accept(i, e);
} catch (Exception var6) {
logger.error("", e);
}
}

++i;
}
}

return null;
}

/**
* <pre>
* 重复提交业务请求
* 1、IO异常重试请求,如果一直IO异常返回null
* 1、IO异常重试请求,如果多次IO错误抛出异常
* 2、ApiRequestException 707返回new 创建的response
* 3、ApiRequestException 其它错误抛异常
* </pre>
*/
public <RS extends AbstractSignTypeResponse> RS jsonPostRepeat(AbstractSignTypeRequest<RS> req, int repeat) {
private <RS extends AbstractSignTypeResponse> RS jsonPostRepeat(AbstractSignTypeRequest<RS> req, int repeat,
String ifCode, String accessToken) throws IOException {
for (int i = 0; i < repeat; i++) {
try {
return jsonPost(req);
return feignClientManager.jsonPost(req, req.getResponseType(), ifCode, accessToken);
} catch (NoHttpResponseException e) {
logger.error("第 {} NoHttpResponseException:{}", i + 1, e.getMessage());
if (i >= repeat - 1) {
throw e;
}
} catch (IOException e) {
logger.error("第 {} 次执行Exception:{}", i + 1, e.getMessage());
// if (logManager != null) {
// logManager.addConsoleLog(FeeBusinessType.EXCEPTION, req.getFilename(), "error", e.getMessage());
// }
if (i >= repeat - 1) {
throw e;
}
} catch (ApiRequestException e) {
if (e.getErrCode() == 707) {
// 707压住异常
@@ -61,42 +131,60 @@ public abstract class AbstractCommManager extends AbstractManager {
return null;
}

public <RS extends AbstractSignTypeResponse> RS jsonPost(AbstractSignTypeRequest<RS> req) throws IOException {
Class<RS> clazz = req.getResponseType();
return feignClientManager.jsonPost(req, clazz);
private <RE extends AbstractOldSystemRequest<RS>, RS> RS jsonPostOldSystemRepeat(RE req, int repeat,
String accessToken) throws IOException {
for (int i = 0; i < repeat; i++) {
try {
return feignClientManager.jsonPost(req, accessToken);
} catch (NoHttpResponseException e) {
logger.error("第 {} NoHttpResponseException:{}", i + 1, e.getMessage());
if (i >= repeat - 1) {
throw e;
}
} catch (IOException e) {
logger.error("第 {} 次执行Exception:{}", i + 1, e.getMessage());
if (i >= repeat - 1) {
throw e;
}
} catch (ApiRequestException e) {
logger.error("第 {} 次执行ApiRequestException:{}", i + 1, e.getMessage());
if (i >= repeat - 1) {
throw e;
}
}
}
return null;
}

@Deprecated
public <RS> RS jsonPostRepeat(AbstractReqIdTypeRequest req, Class<RS> clazz, String ifCode, String accessToken)
throws ManagerException {
return convertException(req, ifCode, r -> jsonPostReqIdRepeat(r, clazz, 3, ifCode, accessToken));
}

/**
* <pre>
* 重复3次提交请求,会将调接口错误的响应转换成前端的响应
* </pre>
*/
public <RS> RS jsonPostRepeat(AbstractOldSystemRequest<RS> req, String accessToken) throws ManagerException {
return convertException(req, req.getIfCode(), r -> jsonPostOldSystemRepeat(r, 3, accessToken));
}

/**
* 当不想自己捕获异常时、当你不对异常做什么处理时可调用该方法
*
* @param businessId
* 业务id
*/
public <V> V doSafe(Callable<V> call, String businessId) {
try {
return call.call();
} catch (Exception e) {
logger.error("", e);
// if (logManager != null) {
// logManager.addConsoleLog(FeeBusinessType.EXCEPTION, businessId, "error", e.getMessage());
// }
return null;
private <RE extends AbstractReqIdTypeRequest, RS> RS jsonPostReqIdRepeat(RE req, Class<RS> clazz, int repeat,
String ifCode, String accessToken) throws IOException {
for (int i = 0; i < repeat; i++) {
try {
return feignClientManager.jsonPost(req, clazz, ifCode, accessToken);
} catch (NoHttpResponseException e) {
logger.error("第 {} NoHttpResponseException:{}", i + 1, e.getMessage());
if (i >= repeat - 1) {
throw e;
}
} catch (IOException e) {
logger.error("第 {} 次执行Exception:{}", i + 1, e.getMessage());
if (i >= repeat - 1) {
throw e;
}
} catch (ApiRequestException e) {
if (e.getErrCode() == 707) {
// 707压住异常
try {
return clazz.getDeclaredConstructor().newInstance();
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
throw e;
}
}
return null;
}

/**
@@ -127,34 +215,10 @@ public abstract class AbstractCommManager extends AbstractManager {
}
}

private <RE extends AbstractOldSystemRequest<RS>, RS> RS jsonPostOldSystemRepeat(RE req, int repeat,
String accessToken) throws IOException {
for (int i = 0; i < repeat; i++) {
try {
return feignClientManager.jsonPost(req, accessToken);
} catch (NoHttpResponseException e) {
logger.error("第 {} NoHttpResponseException:{}", i + 1, e.getMessage());
if (i >= repeat - 1) {
throw e;
}
} catch (IOException e) {
logger.error("第 {} 次执行Exception:{}", i + 1, e.getMessage());
if (i >= repeat - 1) {
throw e;
}
} catch (ApiRequestException e) {
logger.error("第 {} 次执行ApiRequestException:{}", i + 1, e.getMessage());
if (i >= repeat - 1) {
throw e;
}
}
}
return null;
}
private int location = -1;

private void convertApiRequestException(ApiRequestException e, String ifCode) throws ManagerException {
String uri = getRequestUri();
logger.info("调用接口Api业务失败,Controller的url:{}", uri);

StackTraceElement[] stackTrace = e.getStackTrace();
if (stackTrace != null) {
if (location == -1) {
@@ -201,17 +265,6 @@ public abstract class AbstractCommManager extends AbstractManager {
throw new ManagerException("未知错误:" + jsonRes.getErrorMsg());
}

private String getRequestUri() {
try {
ServletRequestAttributes requestAttributes =
(ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
assert requestAttributes != null;
HttpServletRequest request = requestAttributes.getRequest();
return WebTools.getUri(request);
} catch (Exception e) {
return "";
}
}
private int getMethodLocation(StackTraceElement[] stackTrace) {
for (int i = 0; i < stackTrace.length; i++) {
if (!stackTrace[i].getClassName().contains("AbstractCommManager")
@@ -221,6 +274,7 @@ public abstract class AbstractCommManager extends AbstractManager {
}
return -1;
}

private SignJsonResponse toJsonResponse(ApiRequestException e) {
String responseJson = e.getMessage().substring(0, e.getMessage().length() - 4);
try {
@@ -231,33 +285,15 @@ public abstract class AbstractCommManager extends AbstractManager {
return null;
}

private <RE extends AbstractReqIdTypeRequest,RS> RS jsonPostReqIdRepeat(RE req,Class<RS> clazz, int repeat, String ifCode, String accessToken)
throws IOException {
for (int i = 0; i < repeat; i++) {
try {
return feignClientManager.jsonPost(req, clazz, ifCode, accessToken);
} catch (NoHttpResponseException e) {
logger.error("第 {} NoHttpResponseException:{}", i + 1, e.getMessage());
if (i >= repeat - 1) {
throw e;
}
} catch (IOException e) {
logger.error("第 {} 次执行Exception:{}", i + 1, e.getMessage());
if (i >= repeat - 1) {
throw e;
}
} catch (ApiRequestException e) {
if (e.getErrCode() == 707) {
// 707压住异常
try {
return clazz.getDeclaredConstructor().newInstance();
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
throw e;
}
private String getRequestUri() {
try {
ServletRequestAttributes requestAttributes =
(ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
assert requestAttributes != null;
HttpServletRequest request = requestAttributes.getRequest();
return WebTools.getUri(request);
} catch (Exception e) {
return "";
}
return null;
}
}

+ 19
- 19
zhywpt-service-ats/src/main/java/cn/com/taiji/ats/manager/request/WxMapRequest.java Parādīt failu

@@ -1,19 +1,19 @@
package cn.com.taiji.ats.manager.request;
import cn.com.taiji.core.model.comm.protocol.AbstractReqIdTypeRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @Author ChenChao
* @Date 2024/10/6 15:42
* @Description
*/
@Data
@EqualsAndHashCode(callSuper=false)
public class WxMapRequest extends AbstractReqIdTypeRequest {
private String url;
private String method; //目前支持GET、POST
private Object data;
}
//package cn.com.taiji.ats.manager.request;
//
//import cn.com.taiji.core.model.comm.protocol.AbstractReqIdTypeRequest;
//import lombok.Data;
//import lombok.EqualsAndHashCode;
//
///**
// * @Author ChenChao
// * @Date 2024/10/6 15:42
// * @Description
// */
//@Data
//@EqualsAndHashCode(callSuper=false)
//public class WxMapRequest extends AbstractReqIdTypeRequest {
//
// private String url;
// private String method; //目前支持GET、POST
// private Object data;
//}

+ 0
- 5
zhywpt-service-ats/src/main/java/cn/com/taiji/ats/manager/tools/wx/WxSendRequestUtil.java Parādīt failu

@@ -19,7 +19,6 @@ import org.springframework.stereotype.Component;
import com.alibaba.fastjson2.JSON;

import cn.com.taiji.ats.manager.AbstractCommManager;
import cn.com.taiji.ats.manager.request.WxMapRequest;
import cn.com.taiji.common.manager.ManagerException;


@@ -43,10 +42,6 @@ public class WxSendRequestUtil extends AbstractCommManager {
String accessToken = wxRequestAccessTokenUtil.getStableAccessToken(mpAppid, mpSecret, false, MP_ACCESS_STABLE_TOKEN_PREFIX);
//方法二、走中台的http调用接口
// Map<String, Object> responseBody = ifztServiceManager.httpApi(requestMethod, url, postParamBody);
WxMapRequest wxMapRequest = new WxMapRequest();
wxMapRequest.setUrl(url);
wxMapRequest.setMethod(requestMethod.name());
wxMapRequest.setData(postParamBody);
// 访问微信服务
String resJson = HttpClientUtil.sendPost(url,JSON.toJSONString(postParamBody),accessToken);
// Map<String, Object> responseBody = jsonPostRepeat(wxMapRequest, HashMap.class, ifztNetwork, null);

+ 100
- 72
zhywpt-service-ats/src/test/java/cn/com/taiji/ats/manager/demo/TestFeignClientRequest.java Parādīt failu

@@ -1,75 +1,103 @@
//package cn.com.taiji.ats.manager.demo;
//
//import cn.com.taiji.ats.Application;
//import cn.com.taiji.ats.manager.weixin.CreatePayOrderV3Manager;
//import cn.com.taiji.ats.manager.AbstractCommManager;
//import cn.com.taiji.common.manager.net.http.ServiceHandleException;
//import cn.com.taiji.core.entity.dict.pay.TradeType;
//import cn.com.taiji.core.model.comm.protocol.ats.AtsCreatPayOrderV3Request;
//import cn.com.taiji.core.model.comm.protocol.ats.AtsCreatPayOrderV3Response;
//import org.junit.jupiter.api.Test;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.boot.test.mock.mockito.MockBean;
//
//import javax.annotation.Resource;
//
//@SpringBootTest(classes = Application.class)
//public class TestFeignClientRequest extends AbstractCommManager {
//
//// @Test
//// public void testSampleRequest() {
//// TypeSampleRequest req = new TypeSampleRequest();
//// try {
//// logger.info("格式校验异常 req:" + req.toJson(true));
//// jsonPostRepeat(req, 3);
//// } catch (ApiRequestException e) {
//// logger.error("", e);
//// }
//// req = new TypeSampleRequest();
//// req.setCardId("cardId" + new Random().nextInt(1000000));
//// req.setReqStr("hello");
//// req.setValid(true);
//// try {
//// logger.info("业务校验异常 req:" + req.toJson(true));
//// jsonPostRepeat(req, 3);
//// } catch (ApiRequestException e) {
//// logger.error("", e);
//// }
//// req = new TypeSampleRequest();
//// req.setCardId("cardId" + new Random().nextInt(1000000));
//// req.setReqStr("hello");
//// req.setValid(false);
//// logger.info("成功 req:" + req.toJson(true));
//// TypeSampleResponse res = jsonPostRepeat(req, 1);
//// logger.info("res:" + res.toJson(true));
////
//// }
// @Autowired
//// @Resource
//// @MockBean
// private CreatePayOrderV3Manager createPayOrderV3Manager;
// @Test
// public void test1() {
// AtsCreatPayOrderV3Request request = new AtsCreatPayOrderV3Request();
// request.setApiV3Key("yCocgAjiGMqQEfFE4SN4woJYSSfq07fd");
// request.setAppid("wx008c60533388527a");
// request.setMchid("1495316212");//1535705621
//// request.setPrivateKey("MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCpU2Z2fk0yDxsj6fYuxFhuqWqZ4HsHpWcxATjjNKgge7aFdSacBZBoO5ZTeHj2zSy1Atx8A0SiJ8FjM39wJFl97C8xcvGZYnIM0xxQsZnCwEkCpYrPUvwx5Fs7gumzmvnNetV8Mux2gzmneQayfrVM8TVkRptLYOsPAupuvyZ6Ygpn8Omd+ZSUkCI9KFm5cY16Uzi9SbUc0dF46NrhujDabvf9IEn6sGaWqkCv+LMU5h2jL79KrgjpMHvvu58i4pMM4SxeV06u8x7T/CRxA+Jwj8FGNv9Og7VUylmZVyISIDwUZz5wYCsr/XEPHt26WWriqUlm0gpV1DaZrIHkkQztAgMBAAECggEAX0Unn4AM2x+Yu6pF86ZRw2HbMt0VHAY6e14erefQuQYiehCiOqL+z0bHnAtqtCJZBzem6rfEBCCuNKyjBWvOVoVvQDlWKmEznnehtN1YkDU0XyLZaTFd6Ix9sIxGBeIqryxvtcPJPB01cT8tP3z/cV0+Fz+K3OyZFQck9E7kzXI1Vc3Dcx6ZGPRmkFyfjgxV2kTQzfQasoYK6rZjQwzQuXyHhLZx3iQuk61Ta8gqJ9O+2Y93koe6i6wUfF2yHgwAGgAuDa5Twx02XtRmTzILedFyLezwaV7Xg3y5KPFzt2u8w6nHjSi7tzTFPeW+QMMzmjsPqegDAfLAK+hW3lWtgQKBgQDf0ErISiCXYCQRw7TaF9J4vlecY/PQENEO8S+1tK5TJdmfsFULT0wS9W1QrmYlq6aeMBYbGsbxy+1+dqOGrkt7ICRXJaLXpVaPW1jaOXZtDs8NR3oCkF/4ePt0X7G7CKHrkjErHhdElTi6PTtyNdRDK0xhiQG2GMueqrxG2HHsnQKBgQDBrSKvVqNgisNntZfgzwM8LYDC+NdsrCKL2GaOgyzb0J9kCcVMRdmDGqLm+R6K6W+pH6mJ9UjZFGmagrqowFxJ93uWGce2sNnhdmy9wgbEpyh3ddZIm+BVTRTUjSy8d1eoMoVPNx+dO/hgqHZS047buhf7EBgUvfVnRnsFXN+okQKBgCjn3uMgeThxf+YnSMSbmgIrd8PDmOosSKlcd4XUUhAsWMwQ5Fo+0f6dEK+wUEcOSlObIk8t47KJvQxiDp0s+eq1Ay9SV6LmOx3UajboTba9ACbDK4+QZ5n4Mq0gWFGA0GdHvujMhSApzcZsLpM/N15XaYxiCAgKHB0Rw3uHT7sZAoGAEhF25OiuQTlw1WIJkz18zcZo9seEQW0lo+pCVxVBwBgMZqbKszzo9+QqQmYHRWpVsm9zv50UeLwAxhtgEpIvie7+ppgtG4wQJ4qGxoUtYHc/vTVPEmMIYKzaPqIVBFgV42kjKqq31lFb8JiGwV9fOnx39EIiHP1Dwai/nVZ2vyECgYEAuJQyqO1QPBG70E3gAy1yQxLYce473V9mizPEAjhV/oBlIOlrT4JpvwKoCuRdOoluDtYOHJpHk3hrSoboMuCl9BIECQIt03/xfaQbJ7YQu2SNf3ADrd6A+r8286aKBXjI9X9oSfwAgXnHQftGKDLqt6OrEyCAl+gsM3/R7eKsOH0=");
// request.setTradeType(TradeType.NATIVE);
// request.setCreateType(1);
// request.setDescription("测试");
// request.setOutTradeNo("123456789");
// request.setNotifyUrl("https://skx.mynatapp.cc/qtucpaymgt/wxv3/notify/");
// request.setTotal(1);
// request.setCurrency("CNY");
// request.setOpenid("oQj1Z5QX3YLzRl5Z0JJYlXQ_1HY8");
package cn.com.taiji.ats.manager.demo;

import cn.com.taiji.ats.Application;
import cn.com.taiji.ats.manager.AbstractCommManager;
import cn.com.taiji.ats.manager.weixin.CreatePayOrderV2Manager;
import cn.com.taiji.ats.manager.weixin.QueryPayResultV2Manager;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.dict.pay.TradeType;
import cn.com.taiji.core.model.comm.protocol.ats.weiXin.*;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;


@SpringBootTest(classes = Application.class)
public class TestFeignClientRequest extends AbstractCommManager {

// @Test
// public void testSampleRequest() {
// TypeSampleRequest req = new TypeSampleRequest();
// try {
// AtsCreatPayOrderV3Response orderV3Response = createPayOrderV3Manager.serviceHandle(request);
// } catch (ServiceHandleException e) {
//
// logger.info("2313");
// logger.info("格式校验异常 req:" + req.toJson(true));
// jsonPostRepeat(req, 3);
// } catch (ApiRequestException e) {
// logger.error("", e);
// }
// System.out.println("234567");
// req = new TypeSampleRequest();
// req.setCardId("cardId" + new Random().nextInt(1000000));
// req.setReqStr("hello");
// req.setValid(true);
// try {
// logger.info("业务校验异常 req:" + req.toJson(true));
// jsonPostRepeat(req, 3);
// } catch (ApiRequestException e) {
// logger.error("", e);
// }
// req = new TypeSampleRequest();
// req.setCardId("cardId" + new Random().nextInt(1000000));
// req.setReqStr("hello");
// req.setValid(false);
// logger.info("成功 req:" + req.toJson(true));
// TypeSampleResponse res = jsonPostRepeat(req, 1);
// logger.info("res:" + res.toJson(true));
//
// }
//}
@Autowired
private CreatePayOrderV2Manager createPayOrderV2Manager;

@Test
public void testV2() {

AtsCreatPayOrderV2Request request = new AtsCreatPayOrderV2Request();
request.setAppId("wx8fba957179c1329a");
request.setMchId("1680098284");
request.setBody("测试");
request.setOutTradeNo("12345678910");
request.setTotalFee(1);
request.setSpbillCreateIp("127.0.0.1");
request.setNotifyUrl("https://skx.mynatapp.cc/qtucpaymgt/wxv3/notify/");
request.setTradeType(TradeType.NATIVE);
request.setProductId("12345678910_20250517");
// request.setOpenid("oQj1Z5QX3YLzRl5Z0JJYlXQ_1HY8");
request.setMchKey("202FBA21E4B7F55BE060A8C0157A36E9");
request.setCreateType(1);
// request.setSubAppId("wx8fba957179c1329a");
// request.setSubMchId("1680098284");
// request.setCreateType(2);
try {

AtsCreatPayOrderV2Response response = createPayOrderV2Manager.serviceHandle(request);
logger.info(response.toJson());
} catch (ServiceHandleException e) {
e.printStackTrace();
logger.error(e.getMessage());
}
}

@Autowired
private QueryPayResultV2Manager queryPayResultV2Manager;
@Test
public void testV2Result() {

AtsQueryPayResultV2Request request = new AtsQueryPayResultV2Request();
request.setAppId("wx8fba957179c1329a");
request.setMchId("1680098284");
request.setOutTradeNo("12345678910");
// request.setOpenid("oQj1Z5QX3YLzRl5Z0JJYlXQ_1HY8");
request.setMchKey("202FBA21E4B7F55BE060A8C0157A36E9");
request.setCreateType(1);
// request.setSubAppId("wx8fba957179c1329a");
// request.setSubMchId("1680098284");
// request.setCreateType(2);
try {
AtsQueryPayResultV2Response response = queryPayResultV2Manager.serviceHandle(request);
logger.info(response.toJson());
} catch (ServiceHandleException e) {
e.printStackTrace();
logger.error(e.getMessage());
}
}


}

+ 133
- 0
zhywpt-service-ats/src/test/java/cn/com/taiji/ats/manager/demo/WeiXinTest.java Parādīt failu

@@ -0,0 +1,133 @@
package cn.com.taiji.ats.manager.demo;

import cn.com.taiji.ats.Application;
import cn.com.taiji.ats.manager.AbstractCommManager;
import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.core.entity.dict.pay.TradeType;
import cn.com.taiji.core.model.comm.protocol.ats.weiXin.*;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

/**
* @Author:ChenChao
* @Date:2025/6/6 11:36
* @Filename:WeiXinTest
* @description: 微信测试
*/
@SpringBootTest(classes = Application.class)
public class WeiXinTest extends AbstractCommManager {

// CREATEPAYORDERV2("V2统一下单", "creatOrderV2", AtsCreatPayOrderV2Request.class),
@Test
public void AtsCreatPayOrderV2Request() {
AtsCreatPayOrderV2Request request = new AtsCreatPayOrderV2Request();
request.setAppId("wx8fba957179c1329a");
request.setMchId("1680098284");
request.setBody("测试");
request.setOutTradeNo("12345678911");
request.setTotalFee(1);
request.setSpbillCreateIp("127.0.0.1");
request.setNotifyUrl("https://skx.mynatapp.cc/qtucpaymgt/wxv3/notify/");
request.setTradeType(TradeType.NATIVE);
request.setProductId("12345678910_20250517");
// request.setOpenid("oQj1Z5QX3YLzRl5Z0JJYlXQ_1HY8");
request.setMchKey("202FBA21E4B7F55BE060A8C0157A36E9");
request.setCreateType(1);
// request.setSubAppId("wx8fba957179c1329a");
// request.setSubMchId("1680098284");
// request.setCreateType(2);
try {
AtsCreatPayOrderV2Response response = jsonPostRepeat(request);
logger.info("V2统一下单结果:{}", response.toJson(true));
} catch (ManagerException e) {
logger.error("V2统一下单异常:{}", e.getMessage());
}

}
// QUERYPAYRESULTV2("查询V2支付结果", "queryPayResultV2", AtsQueryPayResultV2Request.class),
@Test
public void AtsQueryPayResultV2Request() {
AtsQueryPayResultV2Request request = new AtsQueryPayResultV2Request();

}
// CREATEPAYORDERV3("V3统一下单", "creatOrderV3",AtsCreatPayOrderV3Request .class),
@Test
public void AtsCreatPayOrderV3Request() {
AtsCreatPayOrderV3Request request = new AtsCreatPayOrderV3Request();
request.setAppid("wx008c60533388527a");
request.setApiV3Key("yCocgAjiGMqQEfFE4SN4woJYSSfq07fd");
request.setPrivateKey("MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCpU2Z2fk0yDxsj6fYuxFhuqWqZ4HsHpWcxATjjNKgge7aFdSacBZBoO5ZTeHj2zSy1Atx8A0SiJ8FjM39wJFl97C8xcvGZYnIM0xxQsZnCwEkCpYrPUvwx5Fs7gumzmvnNetV8Mux2gzmneQayfrVM8TVkRptLYOsPAupuvyZ6Ygpn8Omd+ZSUkCI9KFm5cY16Uzi9SbUc0dF46NrhujDabvf9IEn6sGaWqkCv+LMU5h2jL79KrgjpMHvvu58i4pMM4SxeV06u8x7T/CRxA+Jwj8FGNv9Og7VUylmZVyISIDwUZz5wYCsr/XEPHt26WWriqUlm0gpV1DaZrIHkkQztAgMBAAECggEAX0Unn4AM2x+Yu6pF86ZRw2HbMt0VHAY6e14erefQuQYiehCiOqL+z0bHnAtqtCJZBzem6rfEBCCuNKyjBWvOVoVvQDlWKmEznnehtN1YkDU0XyLZaTFd6Ix9sIxGBeIqryxvtcPJPB01cT8tP3z/cV0+Fz+K3OyZFQck9E7kzXI1Vc3Dcx6ZGPRmkFyfjgxV2kTQzfQasoYK6rZjQwzQuXyHhLZx3iQuk61Ta8gqJ9O+2Y93koe6i6wUfF2yHgwAGgAuDa5Twx02XtRmTzILedFyLezwaV7Xg3y5KPFzt2u8w6nHjSi7tzTFPeW+QMMzmjsPqegDAfLAK+hW3lWtgQKBgQDf0ErISiCXYCQRw7TaF9J4vlecY/PQENEO8S+1tK5TJdmfsFULT0wS9W1QrmYlq6aeMBYbGsbxy+1+dqOGrkt7ICRXJaLXpVaPW1jaOXZtDs8NR3oCkF/4ePt0X7G7CKHrkjErHhdElTi6PTtyNdRDK0xhiQG2GMueqrxG2HHsnQKBgQDBrSKvVqNgisNntZfgzwM8LYDC+NdsrCKL2GaOgyzb0J9kCcVMRdmDGqLm+R6K6W+pH6mJ9UjZFGmagrqowFxJ93uWGce2sNnhdmy9wgbEpyh3ddZIm+BVTRTUjSy8d1eoMoVPNx+dO/hgqHZS047buhf7EBgUvfVnRnsFXN+okQKBgCjn3uMgeThxf+YnSMSbmgIrd8PDmOosSKlcd4XUUhAsWMwQ5Fo+0f6dEK+wUEcOSlObIk8t47KJvQxiDp0s+eq1Ay9SV6LmOx3UajboTba9ACbDK4+QZ5n4Mq0gWFGA0GdHvujMhSApzcZsLpM/N15XaYxiCAgKHB0Rw3uHT7sZAoGAEhF25OiuQTlw1WIJkz18zcZo9seEQW0lo+pCVxVBwBgMZqbKszzo9+QqQmYHRWpVsm9zv50UeLwAxhtgEpIvie7+ppgtG4wQJ4qGxoUtYHc/vTVPEmMIYKzaPqIVBFgV42kjKqq31lFb8JiGwV9fOnx39EIiHP1Dwai/nVZ2vyECgYEAuJQyqO1QPBG70E3gAy1yQxLYce473V9mizPEAjhV/oBlIOlrT4JpvwKoCuRdOoluDtYOHJpHk3hrSoboMuCl9BIECQIt03/xfaQbJ7YQu2SNf3ADrd6A+r8286aKBXjI9X9oSfwAgXnHQftGKDLqt6OrEyCAl+gsM3/R7eKsOH0=");
request.setSerialNo("64A5FAD5B64073087D3285DB6CEDC35FCE35A476");
request.setMchid("1535705621");
request.setCreateType(1);

request.setTradeType(TradeType.NATIVE);
request.setDescription("测试");
request.setOutTradeNo("123456789");
request.setNotifyUrl("https://skx.mynatapp.cc/qtucpaymgt/wxv3/notify/");
request.setTotal(1);
request.setCurrency("CNY");
request.setOpenid("oQj1Z5QX3YLzRl5Z0JJYlXQ_1HY8");

try {
AtsCreatPayOrderV3Response response = jsonPostRepeat(request);
logger.info("V3统一下单结果:{}", response.toJson(true));
} catch (ManagerException e) {
logger.error("V3统一下单异常:{}", e.getMessage());
}

}
// QUERYPAYRESULTV3("查询V3支付结果", "queryPayResultV3",AtsQueryPayResultV3Request .class),
@Test
public void AtsQueryPayResultV3Request() {
AtsQueryPayResultV3Request request = new AtsQueryPayResultV3Request();

}
// REFUNDV3("微信V3退款申请", "refundV3", AtsRefundV3Request.class),
@Test
public void AtsRefundV3Request() {
AtsRefundV3Request request = new AtsRefundV3Request();

}
// REFUNDQUERYV3("微信V3退款查询", "refundV3Query", AtsQueryRefundV3Request.class),
@Test
public void AtsQueryRefundV3Request() {
AtsQueryRefundV3Request request = new AtsQueryRefundV3Request();

}
// REFUNDV2("微信V2退款申请", "refundV2", AtsRefundV2Request.class),
@Test
public void AtsRefundV2Request() {
AtsRefundV2Request request = new AtsRefundV2Request();

}
// REFUNDQUERYV2("微信V2退款查询", "refundV2Query", AtsQueryRefundV2Request.class),
@Test
public void AtsQueryRefundV2Request() {
AtsQueryRefundV2Request request = new AtsQueryRefundV2Request();


}
// VEHICLEUSERSTATE("微信车主状态查询及获取签约参数", "vehicleUserState", AtsVehicleUserStateRequest.class),
@Test
public void AtsVehicleUserStateRequest() {
AtsVehicleUserStateRequest request = new AtsVehicleUserStateRequest();
request.setAppId("wxcb1388c809fe25a9");
request.setSubAppId("wx008c60533388527a");
request.setMchId("1500877591");
request.setSubMchId("1515327001");
request.setSignKey("beijingwuxiangancekejiyouxiangon");
request.setPlateNumber("贵Z10035");
request.setSubOpenId("3gthr6743");
try {
AtsVehicleUserStateResponse response = jsonPostRepeat(request);
logger.info("微信车主状态查询及获取签约参数结果:{}", response.toJson(true));
} catch (ManagerException e) {
logger.error("微信车主状态查询及获取签约参数异常:{}", e.getMessage());
}
}




}

+ 36
- 36
zhywpt-service-ats/src/test/java/cn/com/taiji/ats/manager/wx/TestWxMpIsSubscribedManager.java Parādīt failu

@@ -1,36 +1,36 @@
package cn.com.taiji.ats.manager.wx;
import cn.com.taiji.ats.manager.handler.wx.WxMessageManager;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.model.comm.protocol.ats.weiXin.WxMpIsSubscribedRequest;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import cn.com.taiji.ats.Application;
import cn.com.taiji.ats.manager.AbstractCommManager;
/**
* @Auther: humh
* @Description:
* @Date: 2025/5/12 10:58
* @email: huminghao@mail.taiji.com.cn
* @version: 1.0
*/
@SpringBootTest(classes = Application.class)
public class TestWxMpIsSubscribedManager extends AbstractCommManager {
@Autowired
private WxMessageManager wxMessageManager;
@Test
public void test() throws ServiceHandleException {
WxMpIsSubscribedRequest request = new WxMpIsSubscribedRequest();
request.setClientId("bfc4040bda90473d8ceab246555361a3");
request.setOpenId("ogb3at_BW9zRd0GRPrBsNjthwGeA");
wxMessageManager.isSubscribed(request);
}
}
//package cn.com.taiji.ats.manager.wx;
//
//import cn.com.taiji.ats.manager.handler.wx.WxMessageManager;
//import cn.com.taiji.common.manager.net.http.ServiceHandleException;
//import cn.com.taiji.core.model.comm.protocol.ats.weiXin.WxMpIsSubscribedRequest;
//import org.junit.jupiter.api.Test;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.context.SpringBootTest;
//
//import cn.com.taiji.ats.Application;
//import cn.com.taiji.ats.manager.AbstractCommManager;
//
//
///**
// * @Auther: humh
// * @Description:
// * @Date: 2025/5/12 10:58
// * @email: huminghao@mail.taiji.com.cn
// * @version: 1.0
// */
//@SpringBootTest(classes = Application.class)
//public class TestWxMpIsSubscribedManager extends AbstractCommManager {
//
// @Autowired
// private WxMessageManager wxMessageManager;
//
// @Test
// public void test() throws ServiceHandleException {
// WxMpIsSubscribedRequest request = new WxMpIsSubscribedRequest();
// request.setClientId("bfc4040bda90473d8ceab246555361a3");
// request.setOpenId("ogb3at_BW9zRd0GRPrBsNjthwGeA");
// wxMessageManager.isSubscribed(request);
// }
//
//
//}

Notiek ielāde…
Atcelt
Saglabāt