feat:新增230909-线下来账退款
parent
bdcf0b504a
commit
c3a4123a63
|
|
@ -14,7 +14,6 @@ import lombok.experimental.Accessors;
|
|||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
|
||||
public class OrderDetailAddResponse implements ApiResponse {
|
||||
/**
|
||||
* 000000:表示成功
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue