feat:新增230909-线下来账退款

main
wb2476 2024-12-13 14:09:12 +08:00
parent bdcf0b504a
commit c3a4123a63
5 changed files with 234 additions and 1 deletions

View File

@ -14,7 +14,6 @@ import lombok.experimental.Accessors;
*/
@Data
@Accessors(chain = true)
public class OrderDetailAddResponse implements ApiResponse {
/**
* 000000

View File

@ -180,4 +180,18 @@ public class PayService {
HttpResponse<OfflineRechargeDetailUnmatchedQueryResponse> httpResponse = apiClient.post(url, headers, request.toJsonRequest(), OfflineRechargeDetailUnmatchedQueryResponse.class);
return httpResponse.getServiceResponse();
}
/**
* 230909-线退
*
* @author H.T
* @since 2024/12/13
*/
public OfflineRechargeRefundResponse refund(OfflineRechargeRefundRequest request) {
String url = "/offline-recharge/refund";
HttpHeaders headers = new HttpHeaders();
headers.addHeader(API_VERSION, V_2);
HttpResponse<OfflineRechargeRefundResponse> httpResponse = apiClient.post(url, headers, request.toJsonRequest(), OfflineRechargeRefundResponse.class);
return httpResponse.getServiceResponse();
}
}

View File

@ -0,0 +1,98 @@
package com.czcb.scfs.api.service.v2.pay.model;
import com.czcb.scfs.api.core.ApiRequest;
import com.czcb.scfs.api.core.agrs.TransType;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* 230909-线退
*
* @author H.T
* @since 2024-12-05
*/
@Data
@Accessors(chain = true)
@TransType("230909")
public class OfflineRechargeRefundRequest implements ApiRequest {
/**
*
*/
@SerializedName("channel_no")
private String channelNo;
/**
*
*/
@SerializedName("app_no")
private String appNo;
/**
*
*/
@SerializedName("serial_no")
private String serialNo;
/**
*
*/
@SerializedName("trans_date")
private String transDate;
/**
*
*/
@SerializedName("trans_tradetime")
private String transTradeTime;
/**
*
*/
@SerializedName("original_serialno")
private String originalSerialNo;
/**
*
*/
@SerializedName("opp_account_no")
private String oppAccountNo;
/**
*
*/
@SerializedName("opp_account_name")
private String oppAccountName;
/**
*
*/
@SerializedName("opp_bank_no")
private String oppBankNo;
/**
*
*/
@SerializedName("opp_bank_name")
private String oppBankName;
/**
*
*/
@SerializedName("trans_amount")
private BigDecimal transAmount;
/**
*
*/
@SerializedName("pay_path")
private String payPath;
/**
*
*/
@SerializedName("remark")
private String remark;
}

View File

@ -0,0 +1,46 @@
package com.czcb.scfs.api.service.v2.pay.model;
import com.czcb.scfs.api.core.ApiResponse;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 230909-线退
*
* @author H.T
* @since 2024-12-05
*/
@Data
@Accessors(chain = true)
public class OfflineRechargeRefundResponse implements ApiResponse {
/**
* 000000
*/
@SerializedName("recode")
private String recode;
/**
*
*/
@SerializedName("recode_info")
private String recodeInfo;
/**
*
*/
@SerializedName("sys_serial_no")
private String sysSerialNo;
/**
* YYYY-MM-DD
*/
@SerializedName("sys_date")
private String sysDate;
/**
* YYYY-MM-DD hh:mm:ss
*/
@SerializedName("sys_time")
private String sysTime;
}

View File

@ -1110,5 +1110,81 @@ class PayServiceTest {
Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo());
}
@Test
void refundTest() {
OfflineRechargeRefundRequest request = new OfflineRechargeRefundRequest();
extractedOfflineRechargeRefundRequestParams(request);
extractedOfflineRechargeRefundRequestAssertions(request);
System.out.println(Json.toJson(request));
String requestJson = Json.toJson(request);
Assertions.assertEquals("{\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\",\"original_serialno\":\"setOriginalSerialNo\",\"opp_account_no\":\"setOppAccountNo\",\"opp_account_name\":\"setOppAccountName\",\"opp_bank_no\":\"setOppBankNo\",\"opp_bank_name\":\"setOppBankName\",\"trans_amount\":100.0,\"pay_path\":\"setPayPath\",\"remark\":\"setRemark\"}", requestJson);
OfflineRechargeRefundResponse response = new OfflineRechargeRefundResponse();
extractedOfflineRechargeRefundResponseParams(response);
extractedOfflineRechargeRefundResponseAssertions(response);
System.out.println(Json.toJson(response));
String responseJson = Json.toJson(response);
Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", responseJson);
HttpResponse<OfflineRechargeRefundResponse> httpResponse = MockHttpResponse.create("/offline-recharge/refund", response, OfflineRechargeRefundResponse.class);
Mockito.when(apiClient.post(
Mockito.eq("/offline-recharge/refund"),
Mockito.any(HttpHeaders.class),
Mockito.any(RequestBody.class),
Mockito.eq(OfflineRechargeRefundResponse.class)))
.thenReturn(httpResponse);
OfflineRechargeRefundResponse result = service.refund(request);
System.out.println(Json.toJson(result));
String resultJson = Json.toJson(result);
Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", resultJson);
}
void extractedOfflineRechargeRefundRequestParams(OfflineRechargeRefundRequest request) {
request.setPayPath("setPayPath");
request.setRemark("setRemark");
request.setOppAccountName("setOppAccountName");
request.setOriginalSerialNo("setOriginalSerialNo");
request.setTransTradeTime("setTransTradeTime");
request.setChannelNo("setChannelNo");
request.setAppNo("setAppNo");
request.setTransDate("setTransDate");
request.setOppAccountNo("setOppAccountNo");
request.setOppBankNo("setOppBankNo");
request.setOppBankName("setOppBankName");
request.setTransAmount(BigDecimal.valueOf(100.00));
request.setSerialNo("setSerialNo");
}
void extractedOfflineRechargeRefundRequestAssertions(OfflineRechargeRefundRequest request) {
Assertions.assertEquals("setPayPath", request.getPayPath());
Assertions.assertEquals("setRemark", request.getRemark());
Assertions.assertEquals("setOppAccountName", request.getOppAccountName());
Assertions.assertEquals("setOriginalSerialNo", request.getOriginalSerialNo());
Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime());
Assertions.assertEquals("setChannelNo", request.getChannelNo());
Assertions.assertEquals("setAppNo", request.getAppNo());
Assertions.assertEquals("setTransDate", request.getTransDate());
Assertions.assertEquals("setOppAccountNo", request.getOppAccountNo());
Assertions.assertEquals("setOppBankNo", request.getOppBankNo());
Assertions.assertEquals("setOppBankName", request.getOppBankName());
Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getTransAmount());
Assertions.assertEquals("setSerialNo", request.getSerialNo());
}
void extractedOfflineRechargeRefundResponseParams(OfflineRechargeRefundResponse response) {
response.setRecode("setRecode");
response.setSysSerialNo("setSysSerialNo");
response.setSysDate("setSysDate");
response.setSysTime("setSysTime");
response.setRecodeInfo("setRecodeInfo");
}
void extractedOfflineRechargeRefundResponseAssertions(OfflineRechargeRefundResponse response) {
Assertions.assertEquals("setRecode", response.getRecode());
Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo());
Assertions.assertEquals("setSysDate", response.getSysDate());
Assertions.assertEquals("setSysTime", response.getSysTime());
Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo());
}
}