Conflicts:
	base-webapp/pom.xml
	pom.xml
This commit is contained in:
lvleigang 2024-09-14 14:21:36 +08:00
commit cafd94c94f
30 changed files with 5522 additions and 6 deletions

View File

@ -23,11 +23,11 @@
<artifactId>fw-bip</artifactId>
<version>${revision}</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.hzya.frame</groupId>-->
<!-- <artifactId>fw-cbs</artifactId>-->
<!-- <version>${revision}</version>-->
<!-- </dependency>-->
<dependency>
<groupId>com.hzya.frame</groupId>
<artifactId>fw-cbs</artifactId>
<version>${revision}</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.hzya.frame</groupId>-->
<!-- <artifactId>fw-dd</artifactId>-->

48
fw-cbs/pom.xml Normal file
View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>kangarooDataCenterV3</artifactId>
<groupId>com.hzya.frame</groupId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>fw-cbs</artifactId>
<packaging>jar</packaging>
<version>${revision}</version>
<dependencies>
<dependency>
<groupId>com.hzya.frame</groupId>
<artifactId>base-service</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector-java}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>none</mainClass> <!-- 取消查找本项目下的Main方法为了解决Unable to find main class的问题 -->
<classifier>execute</classifier> <!-- 为了解决依赖模块找不到此模块中的类或属性 -->
<skip>true</skip>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,32 @@
package com.hzya.frame.cbs8.dto.req;
import java.util.List;
/**
* @Description 代发代扣请求参数
* @Author xiangerlin
* @Date 2024/6/18 16:20
**/
public class AgentPayRequestDTO {
//代发表头
private PaymentApplySubmitReqDTO paymentApplySubmitReqDTO;
//代发明细
private List<PaymentApplyAgentDTO> paymentApplyAgentDTO;
public PaymentApplySubmitReqDTO getPaymentApplySubmitReqDTO() {
return paymentApplySubmitReqDTO;
}
public void setPaymentApplySubmitReqDTO(PaymentApplySubmitReqDTO paymentApplySubmitReqDTO) {
this.paymentApplySubmitReqDTO = paymentApplySubmitReqDTO;
}
public List<PaymentApplyAgentDTO> getPaymentApplyAgentDTO() {
return paymentApplyAgentDTO;
}
public void setPaymentApplyAgentDTO(List<PaymentApplyAgentDTO> paymentApplyAgentDTO) {
this.paymentApplyAgentDTO = paymentApplyAgentDTO;
}
}

View File

@ -0,0 +1,20 @@
package com.hzya.frame.cbs8.dto.req;
/**
* @Description 代发代扣详情查询请求参数
* @Author xiangerlin
* @Date 2024/6/18 17:40
**/
public class AgentPayResultRequestDTO {
//申请单编号 代发代扣支付接口会返回这个单号的
private String busNum;
public String getBusNum() {
return busNum;
}
public void setBusNum(String busNum) {
this.busNum = busNum;
}
}

View File

@ -0,0 +1,134 @@
package com.hzya.frame.cbs8.dto.req;
import java.util.List;
/**
* @Description 电子回单查询请求参数
* @Author xiangerlin
* @Date 2024/1/4 17:08
**/
public class ElecRequestDTO {
// 开始日期
private String startDate;
// 结束日期
private String endDate;
// 账号
private String accountNo;
// 币种列表
private List<String> currencyList;
// 银行类型列表
private List<String> bankTypeList;
// 回单文件状态 1-已取回 0-未取回
private String billStatus;
// 借贷 1- 2-
private String loanType;
// 单位编码列表
private List<String> unitCodeList;
// 对账码列表
private List<String> checkCodeList;
// ERP业务参考号
private String settleBusinessReferenceCode;
public ElecRequestDTO(String settleBusinessReferenceCode) {
this.settleBusinessReferenceCode = settleBusinessReferenceCode;
}
public ElecRequestDTO(String startDate, String endDate, String settleBusinessReferenceCode) {
this.startDate = startDate;
this.endDate = endDate;
this.settleBusinessReferenceCode = settleBusinessReferenceCode;
}
public ElecRequestDTO() {
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
public String getAccountNo() {
return accountNo;
}
public void setAccountNo(String accountNo) {
this.accountNo = accountNo;
}
public List<String> getCurrencyList() {
return currencyList;
}
public void setCurrencyList(List<String> currencyList) {
this.currencyList = currencyList;
}
public List<String> getBankTypeList() {
return bankTypeList;
}
public void setBankTypeList(List<String> bankTypeList) {
this.bankTypeList = bankTypeList;
}
public String getBillStatus() {
return billStatus;
}
public void setBillStatus(String billStatus) {
this.billStatus = billStatus;
}
public String getLoanType() {
return loanType;
}
public void setLoanType(String loanType) {
this.loanType = loanType;
}
public List<String> getUnitCodeList() {
return unitCodeList;
}
public void setUnitCodeList(List<String> unitCodeList) {
this.unitCodeList = unitCodeList;
}
public List<String> getCheckCodeList() {
return checkCodeList;
}
public void setCheckCodeList(List<String> checkCodeList) {
this.checkCodeList = checkCodeList;
}
public String getSettleBusinessReferenceCode() {
return settleBusinessReferenceCode;
}
public void setSettleBusinessReferenceCode(String settleBusinessReferenceCode) {
this.settleBusinessReferenceCode = settleBusinessReferenceCode;
}
}

View File

@ -0,0 +1,272 @@
package com.hzya.frame.cbs8.dto.req;
/**
* @Description 经办支付请求DTO
* @Author xiangerlin
* @Date 2024/1/3 09:02
**/
public class PayRequestDTO {
private String referenceNum;//业务参考号必填
private String busType;//业务类型 必填
private String amount;//金额 必填
private String currency;//币种编码必填
private String payAccount;//付款账号非集中支付模式必填
private String revAccount;//收款账号 必填
private String revAccountName;//收款方户名 必填
private String revBankType;//收款银行类型编码必填
private String revBankName;//收款开户行名称
private String cnapsCode;//联行号 必填
private String purpose;//支付用途 必填
private String innerAccount;//内部账号
private String revBankArea;//收款银行地区名称
private String revProvince;//收款人省
private String revCity;//收款人市
private String bankNum;//收款地区码银行号
private String summary;//该笔支付备注
private String expectTime;//期望支付时间
private String personalFlag;//公私标记 1对私 0对公
private String urgentTag;//加急1加急0不加2特急
private String realTimeTag;//是否实时 1实时0落地
private String cityFlag;//同城标志 0同城1异地
private String payChannel;//支付渠道
private String busiStep;//业务步数 集中支付需要传1其他不用传
private String applyUnitCode;//申请人单位号集中支付必传
private String displayApplyUnitCode;//申请人单位号前端显示集中支付如果传了会将其转化为applyUnitCode
private String erpExtend1;//客户备用字段1
private String erpExtend2;//客户备用字段2
private String erpExtend3;//客户备用字段3
public String getReferenceNum() {
return referenceNum;
}
public void setReferenceNum(String referenceNum) {
this.referenceNum = referenceNum;
}
public String getBusType() {
return busType;
}
public void setBusType(String busType) {
this.busType = busType;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getPayAccount() {
return payAccount;
}
public void setPayAccount(String payAccount) {
this.payAccount = payAccount;
}
public String getRevAccount() {
return revAccount;
}
public void setRevAccount(String revAccount) {
this.revAccount = revAccount;
}
public String getRevAccountName() {
return revAccountName;
}
public void setRevAccountName(String revAccountName) {
this.revAccountName = revAccountName;
}
public String getRevBankType() {
return revBankType;
}
public void setRevBankType(String revBankType) {
this.revBankType = revBankType;
}
public String getRevBankName() {
return revBankName;
}
public void setRevBankName(String revBankName) {
this.revBankName = revBankName;
}
public String getCnapsCode() {
return cnapsCode;
}
public void setCnapsCode(String cnapsCode) {
this.cnapsCode = cnapsCode;
}
public String getPurpose() {
return purpose;
}
public void setPurpose(String purpose) {
this.purpose = purpose;
}
public String getInnerAccount() {
return innerAccount;
}
public void setInnerAccount(String innerAccount) {
this.innerAccount = innerAccount;
}
public String getRevBankArea() {
return revBankArea;
}
public void setRevBankArea(String revBankArea) {
this.revBankArea = revBankArea;
}
public String getRevProvince() {
return revProvince;
}
public void setRevProvince(String revProvince) {
this.revProvince = revProvince;
}
public String getRevCity() {
return revCity;
}
public void setRevCity(String revCity) {
this.revCity = revCity;
}
public String getBankNum() {
return bankNum;
}
public void setBankNum(String bankNum) {
this.bankNum = bankNum;
}
public String getSummary() {
return summary;
}
public void setSummary(String summary) {
this.summary = summary;
}
public String getExpectTime() {
return expectTime;
}
public void setExpectTime(String expectTime) {
this.expectTime = expectTime;
}
public String getPersonalFlag() {
return personalFlag;
}
public void setPersonalFlag(String personalFlag) {
this.personalFlag = personalFlag;
}
public String getUrgentTag() {
return urgentTag;
}
public void setUrgentTag(String urgentTag) {
this.urgentTag = urgentTag;
}
public String getRealTimeTag() {
return realTimeTag;
}
public void setRealTimeTag(String realTimeTag) {
this.realTimeTag = realTimeTag;
}
public String getCityFlag() {
return cityFlag;
}
public void setCityFlag(String cityFlag) {
this.cityFlag = cityFlag;
}
public String getPayChannel() {
return payChannel;
}
public void setPayChannel(String payChannel) {
this.payChannel = payChannel;
}
public String getBusiStep() {
return busiStep;
}
public void setBusiStep(String busiStep) {
this.busiStep = busiStep;
}
public String getApplyUnitCode() {
return applyUnitCode;
}
public void setApplyUnitCode(String applyUnitCode) {
this.applyUnitCode = applyUnitCode;
}
public String getDisplayApplyUnitCode() {
return displayApplyUnitCode;
}
public void setDisplayApplyUnitCode(String displayApplyUnitCode) {
this.displayApplyUnitCode = displayApplyUnitCode;
}
public String getErpExtend1() {
return erpExtend1;
}
public void setErpExtend1(String erpExtend1) {
this.erpExtend1 = erpExtend1;
}
public String getErpExtend2() {
return erpExtend2;
}
public void setErpExtend2(String erpExtend2) {
this.erpExtend2 = erpExtend2;
}
public String getErpExtend3() {
return erpExtend3;
}
public void setErpExtend3(String erpExtend3) {
this.erpExtend3 = erpExtend3;
}
}

View File

@ -0,0 +1,44 @@
package com.hzya.frame.cbs8.dto.req;
import java.util.List;
/**
* @Description 查询交易结果请求参数
* @Author xiangerlin
* @Date 2024/1/3 09:46
**/
public class PayResultRequestDTO {
public PayResultRequestDTO() {
}
public PayResultRequestDTO(String referenceNum) {
this.referenceNum = referenceNum;
}
private String referenceNum;//业务参考号必填
private List<String> statusList;//状态
private List<String> payStatusList;//支付状态
public String getReferenceNum() {
return referenceNum;
}
public void setReferenceNum(String referenceNum) {
this.referenceNum = referenceNum;
}
public List<String> getStatusList() {
return statusList;
}
public void setStatusList(List<String> statusList) {
this.statusList = statusList;
}
public List<String> getPayStatusList() {
return payStatusList;
}
public void setPayStatusList(List<String> payStatusList) {
this.payStatusList = payStatusList;
}
}

View File

@ -0,0 +1,132 @@
package com.hzya.frame.cbs8.dto.req;
/**
* @Description 代发代扣明细
* @Author xiangerlin
* @Date 2024/6/18 13:45
**/
public class PaymentApplyAgentDTO {
//每笔明细金额
private String dtlAmount;
//收款账号
private String dtlRevAccount;
//联行号 同行可不传跨行必传
private String dtlCnapsCode;
//收款账户名称
private String dtlRevName;
//收款开户行 ,如果传的联行号能匹配到对应到开户行cbs8会自动带出
private String dtlRevBankName;
//是否跨行 Y跨行 N同行
private String dtlBankFlag;
//明细用途
private String dtlPurpose;
//明细摘要
private String dtlRemark;
//收款账号银行号地区码
private String dtlRevBankArea;
//收款开户地
private String dtlRevBankCity;
//明细序号从1开始递增
private int dtlSeqNum;
//备用字段 一共6个
private String dtlExtend1;
public String getDtlAmount() {
return dtlAmount;
}
public void setDtlAmount(String dtlAmount) {
this.dtlAmount = dtlAmount;
}
public String getDtlRevAccount() {
return dtlRevAccount;
}
public void setDtlRevAccount(String dtlRevAccount) {
this.dtlRevAccount = dtlRevAccount;
}
public String getDtlCnapsCode() {
return dtlCnapsCode;
}
public void setDtlCnapsCode(String dtlCnapsCode) {
this.dtlCnapsCode = dtlCnapsCode;
}
public String getDtlRevName() {
return dtlRevName;
}
public void setDtlRevName(String dtlRevName) {
this.dtlRevName = dtlRevName;
}
public String getDtlRevBankName() {
return dtlRevBankName;
}
public void setDtlRevBankName(String dtlRevBankName) {
this.dtlRevBankName = dtlRevBankName;
}
public String getDtlBankFlag() {
return dtlBankFlag;
}
public void setDtlBankFlag(String dtlBankFlag) {
this.dtlBankFlag = dtlBankFlag;
}
public String getDtlPurpose() {
return dtlPurpose;
}
public void setDtlPurpose(String dtlPurpose) {
this.dtlPurpose = dtlPurpose;
}
public String getDtlRemark() {
return dtlRemark;
}
public void setDtlRemark(String dtlRemark) {
this.dtlRemark = dtlRemark;
}
public String getDtlRevBankArea() {
return dtlRevBankArea;
}
public void setDtlRevBankArea(String dtlRevBankArea) {
this.dtlRevBankArea = dtlRevBankArea;
}
public String getDtlRevBankCity() {
return dtlRevBankCity;
}
public void setDtlRevBankCity(String dtlRevBankCity) {
this.dtlRevBankCity = dtlRevBankCity;
}
public int getDtlSeqNum() {
return dtlSeqNum;
}
public void setDtlSeqNum(int dtlSeqNum) {
this.dtlSeqNum = dtlSeqNum;
}
public String getDtlExtend1() {
return dtlExtend1;
}
public void setDtlExtend1(String dtlExtend1) {
this.dtlExtend1 = dtlExtend1;
}
}

View File

@ -0,0 +1,245 @@
package com.hzya.frame.cbs8.dto.req;
/**
* @Description 批量代发代扣 203代发 201代扣
* @Author xiangerlin
* @Date 2024/6/18 11:58
**/
public class PaymentApplySubmitReqDTO {
//业务参考号
private String referenceNum;
/**
* 业务类型
* 201-代扣
* 203-代发
* 代发工资传203
*/
private String busType;
//总金额 小数位2位
private String amount;
//币种
private String currency;
//付款账号
private String payAccount;
//用途
private String purpose;
// 以上是必填字段
//备注
private String summary;
//期望支付时间
private String expectTime;
//公私标识 1对私 0对公
private String personalFlag;
//加急标志 1加急 0不加急
private String urgentTag;
//是否实时 1实时 0落地
private String realTimeTag;
/**
* 同城标志 0同城 1异地
* /付账号所属同一个城市为同城否则为异地
*/
private String cityFlag;
//银行备用字段 一共8个
private String bankExtend1;
private String bankExtend2;
private String bankExtend3;
private String bankExtend4;
private String bankExtend5;
private String bankExtend6;
private String bankExtend7;
private String bankExtend8;
//客户备用字段1
private String erpExtend1;
//客户备用字段1
private String erpExtend2;
//客户备用字段1
private String erpExtend3;
public String getReferenceNum() {
return referenceNum;
}
public void setReferenceNum(String referenceNum) {
this.referenceNum = referenceNum;
}
public String getBusType() {
return busType;
}
public void setBusType(String busType) {
this.busType = busType;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getPayAccount() {
return payAccount;
}
public void setPayAccount(String payAccount) {
this.payAccount = payAccount;
}
public String getPurpose() {
return purpose;
}
public void setPurpose(String purpose) {
this.purpose = purpose;
}
public String getSummary() {
return summary;
}
public void setSummary(String summary) {
this.summary = summary;
}
public String getExpectTime() {
return expectTime;
}
public void setExpectTime(String expectTime) {
this.expectTime = expectTime;
}
public String getPersonalFlag() {
return personalFlag;
}
public void setPersonalFlag(String personalFlag) {
this.personalFlag = personalFlag;
}
public String getUrgentTag() {
return urgentTag;
}
public void setUrgentTag(String urgentTag) {
this.urgentTag = urgentTag;
}
public String getRealTimeTag() {
return realTimeTag;
}
public void setRealTimeTag(String realTimeTag) {
this.realTimeTag = realTimeTag;
}
public String getCityFlag() {
return cityFlag;
}
public void setCityFlag(String cityFlag) {
this.cityFlag = cityFlag;
}
public String getBankExtend1() {
return bankExtend1;
}
public void setBankExtend1(String bankExtend1) {
this.bankExtend1 = bankExtend1;
}
public String getErpExtend1() {
return erpExtend1;
}
public void setErpExtend1(String erpExtend1) {
this.erpExtend1 = erpExtend1;
}
public String getErpExtend2() {
return erpExtend2;
}
public void setErpExtend2(String erpExtend2) {
this.erpExtend2 = erpExtend2;
}
public String getErpExtend3() {
return erpExtend3;
}
public void setErpExtend3(String erpExtend3) {
this.erpExtend3 = erpExtend3;
}
public String getBankExtend2() {
return bankExtend2;
}
public void setBankExtend2(String bankExtend2) {
this.bankExtend2 = bankExtend2;
}
public String getBankExtend3() {
return bankExtend3;
}
public void setBankExtend3(String bankExtend3) {
this.bankExtend3 = bankExtend3;
}
public String getBankExtend4() {
return bankExtend4;
}
public void setBankExtend4(String bankExtend4) {
this.bankExtend4 = bankExtend4;
}
public String getBankExtend5() {
return bankExtend5;
}
public void setBankExtend5(String bankExtend5) {
this.bankExtend5 = bankExtend5;
}
public String getBankExtend6() {
return bankExtend6;
}
public void setBankExtend6(String bankExtend6) {
this.bankExtend6 = bankExtend6;
}
public String getBankExtend7() {
return bankExtend7;
}
public void setBankExtend7(String bankExtend7) {
this.bankExtend7 = bankExtend7;
}
public String getBankExtend8() {
return bankExtend8;
}
public void setBankExtend8(String bankExtend8) {
this.bankExtend8 = bankExtend8;
}
}

View File

@ -0,0 +1,164 @@
package com.hzya.frame.cbs8.dto.req;
import java.util.List;
/**
* @Description 查询境内交易明细参数
* @Author xiangerlin
* @Date 2024/1/3 09:55
**/
public class TransactionDetailReqDTO {
private int currentPage;//当前页码 从1开始
private int pageSize;//本次查询的记录数最大1000条
private String startDate;//开始日期
private String endDate;//结束日期
private String dateType;//日期类型0交易日期1起息日期
private List<String> accountNoList;//账户列表
private List<String> bankTypeList;//银行类型列表
private List<String> currencyList;//币种列表
private String detailedSources;//明细来源
private String currentFlag;//明细类型
private String loanType;//借贷类型 1 2
private List<String> accountNatureList;//账户性质列表
private String bankSerialNumber;//银行流水号
private String transactionSerialNumber;//交易流水号
private List<String> unitCodeList ;//单位编码列表
private String erpSerialNumber ;//erp业务参考号
public TransactionDetailReqDTO() {
}
public TransactionDetailReqDTO(String startDate, String endDate) {
this.startDate = startDate;
this.endDate = endDate;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
public String getDateType() {
return dateType;
}
public void setDateType(String dateType) {
this.dateType = dateType;
}
public List<String> getAccountNoList() {
return accountNoList;
}
public void setAccountNoList(List<String> accountNoList) {
this.accountNoList = accountNoList;
}
public List<String> getBankTypeList() {
return bankTypeList;
}
public void setBankTypeList(List<String> bankTypeList) {
this.bankTypeList = bankTypeList;
}
public List<String> getCurrencyList() {
return currencyList;
}
public void setCurrencyList(List<String> currencyList) {
this.currencyList = currencyList;
}
public String getDetailedSources() {
return detailedSources;
}
public void setDetailedSources(String detailedSources) {
this.detailedSources = detailedSources;
}
public String getCurrentFlag() {
return currentFlag;
}
public void setCurrentFlag(String currentFlag) {
this.currentFlag = currentFlag;
}
public String getLoanType() {
return loanType;
}
public void setLoanType(String loanType) {
this.loanType = loanType;
}
public List<String> getAccountNatureList() {
return accountNatureList;
}
public void setAccountNatureList(List<String> accountNatureList) {
this.accountNatureList = accountNatureList;
}
public String getBankSerialNumber() {
return bankSerialNumber;
}
public void setBankSerialNumber(String bankSerialNumber) {
this.bankSerialNumber = bankSerialNumber;
}
public String getTransactionSerialNumber() {
return transactionSerialNumber;
}
public void setTransactionSerialNumber(String transactionSerialNumber) {
this.transactionSerialNumber = transactionSerialNumber;
}
public List<String> getUnitCodeList() {
return unitCodeList;
}
public void setUnitCodeList(List<String> unitCodeList) {
this.unitCodeList = unitCodeList;
}
public String getErpSerialNumber() {
return erpSerialNumber;
}
public void setErpSerialNumber(String erpSerialNumber) {
this.erpSerialNumber = erpSerialNumber;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}

View File

@ -0,0 +1,280 @@
package com.hzya.frame.cbs8.dto.res;
/**
* @Description 代发代扣查询详情
* @Author xiangerlin
* @Date 2024/6/19 09:02
**/
public class AgentPayQueryDTO {
// 申请单编号
private String busNum;
// 代发/代扣明细序号
private String dtlSeqNum;
// 金额
private String dtlAmount; // 考虑到金额计算精度建议使用BigDecimal
// 收款人名称
private String dtlRevName;
// 收款人账号
private String dtlRevAccount;
// 收款人开户行
private String dtlRevBankName;
// 银行号
private String dtlBankNum;
// 联行号
private String dtlCnapsCode;
// 是否跨行Y开户行是招商银行N开户行是他行为空默认为招行
private String dtlBankFlag;
// 地区名称
private String dtlRevBankArea;
// 注释
private String dtlRemark;
// 状态
private String dtlStatus;
// 错误信息
private String dtlErrorMessage;
// 他行开户地
private String dtlRevBankCity;
// 备用字段1-6
private String dtlExtend1;
private String dtlExtend2;
private String dtlExtend3;
private String dtlExtend4;
private String dtlExtend5;
private String dtlExtend6;
// ERP备注1-3
private String dtlErpComment1;
private String dtlErpComment2;
private String dtlErpComment3;
// 用途
private String dtlPurpose;
// 银行支付时间
private String dtlPayTime;
// 实际扣款金额
private String dtlActualAmount;
public String getBusNum() {
return busNum;
}
public void setBusNum(String busNum) {
this.busNum = busNum;
}
public String getDtlSeqNum() {
return dtlSeqNum;
}
public void setDtlSeqNum(String dtlSeqNum) {
this.dtlSeqNum = dtlSeqNum;
}
public String getDtlAmount() {
return dtlAmount;
}
public void setDtlAmount(String dtlAmount) {
this.dtlAmount = dtlAmount;
}
public String getDtlRevName() {
return dtlRevName;
}
public void setDtlRevName(String dtlRevName) {
this.dtlRevName = dtlRevName;
}
public String getDtlRevAccount() {
return dtlRevAccount;
}
public void setDtlRevAccount(String dtlRevAccount) {
this.dtlRevAccount = dtlRevAccount;
}
public String getDtlRevBankName() {
return dtlRevBankName;
}
public void setDtlRevBankName(String dtlRevBankName) {
this.dtlRevBankName = dtlRevBankName;
}
public String getDtlBankNum() {
return dtlBankNum;
}
public void setDtlBankNum(String dtlBankNum) {
this.dtlBankNum = dtlBankNum;
}
public String getDtlCnapsCode() {
return dtlCnapsCode;
}
public void setDtlCnapsCode(String dtlCnapsCode) {
this.dtlCnapsCode = dtlCnapsCode;
}
public String getDtlBankFlag() {
return dtlBankFlag;
}
public void setDtlBankFlag(String dtlBankFlag) {
this.dtlBankFlag = dtlBankFlag;
}
public String getDtlRevBankArea() {
return dtlRevBankArea;
}
public void setDtlRevBankArea(String dtlRevBankArea) {
this.dtlRevBankArea = dtlRevBankArea;
}
public String getDtlRemark() {
return dtlRemark;
}
public void setDtlRemark(String dtlRemark) {
this.dtlRemark = dtlRemark;
}
public String getDtlStatus() {
return dtlStatus;
}
public void setDtlStatus(String dtlStatus) {
this.dtlStatus = dtlStatus;
}
public String getDtlErrorMessage() {
return dtlErrorMessage;
}
public void setDtlErrorMessage(String dtlErrorMessage) {
this.dtlErrorMessage = dtlErrorMessage;
}
public String getDtlRevBankCity() {
return dtlRevBankCity;
}
public void setDtlRevBankCity(String dtlRevBankCity) {
this.dtlRevBankCity = dtlRevBankCity;
}
public String getDtlExtend1() {
return dtlExtend1;
}
public void setDtlExtend1(String dtlExtend1) {
this.dtlExtend1 = dtlExtend1;
}
public String getDtlExtend2() {
return dtlExtend2;
}
public void setDtlExtend2(String dtlExtend2) {
this.dtlExtend2 = dtlExtend2;
}
public String getDtlExtend3() {
return dtlExtend3;
}
public void setDtlExtend3(String dtlExtend3) {
this.dtlExtend3 = dtlExtend3;
}
public String getDtlExtend4() {
return dtlExtend4;
}
public void setDtlExtend4(String dtlExtend4) {
this.dtlExtend4 = dtlExtend4;
}
public String getDtlExtend5() {
return dtlExtend5;
}
public void setDtlExtend5(String dtlExtend5) {
this.dtlExtend5 = dtlExtend5;
}
public String getDtlExtend6() {
return dtlExtend6;
}
public void setDtlExtend6(String dtlExtend6) {
this.dtlExtend6 = dtlExtend6;
}
public String getDtlErpComment1() {
return dtlErpComment1;
}
public void setDtlErpComment1(String dtlErpComment1) {
this.dtlErpComment1 = dtlErpComment1;
}
public String getDtlErpComment2() {
return dtlErpComment2;
}
public void setDtlErpComment2(String dtlErpComment2) {
this.dtlErpComment2 = dtlErpComment2;
}
public String getDtlErpComment3() {
return dtlErpComment3;
}
public void setDtlErpComment3(String dtlErpComment3) {
this.dtlErpComment3 = dtlErpComment3;
}
public String getDtlPurpose() {
return dtlPurpose;
}
public void setDtlPurpose(String dtlPurpose) {
this.dtlPurpose = dtlPurpose;
}
public String getDtlPayTime() {
return dtlPayTime;
}
public void setDtlPayTime(String dtlPayTime) {
this.dtlPayTime = dtlPayTime;
}
public String getDtlActualAmount() {
return dtlActualAmount;
}
public void setDtlActualAmount(String dtlActualAmount) {
this.dtlActualAmount = dtlActualAmount;
}
}

View File

@ -0,0 +1,450 @@
package com.hzya.frame.cbs8.dto.res;
import java.util.List;
/**
* @Description 代发代扣 返回参数对象
* @Author xiangerlin
* @Date 2024/6/19 08:53
**/
public class AgentPayResultResDTO {
// 支付的业务类型
private String busType;
// 申请单编号
private String busNum;
// 付款账户
private String payAccount;
// 付款账户名称
private String payAccountName;
// 付款账户开户行
private String payBankName;
// 付款银行类型
private String payBankType;
// 币种
private String currency;
// 金额
private String amount;
// 收款账户
private String revAccount;
// 收款账户名称
private String revAccountName;
// 收款开户行
private String revBankName;
// 收款银行类型
private String revBankType;
// 收款人省
private String revProvince;
// 对账码集合假设为String列表
private List<String> checkCodeList;
// 收款人市
private String revCity;
// 支付渠道
private String payChannel;
// 付款单提示信息/银行返回信息
private String errorMsg;
// 支付申请状态
private String status;
// 经办人ID
private String createBy;
// 经办人名称
private String createByName;
// 用途
private String purpose;
// 摘要/备注
private String summary;
// 期望支付时间
private String expectTime;
// 支付时间
private String payDate;
// 支付状态
private String payStatus;
// 客户备用字段1
private String erpExtend1;
// 客户备用字段2
private String erpExtend2;
// 客户备用字段3
private String erpExtend3;
// 计划流水号
private String planNumber;
// 资金预算编号
private String planItemCode;
// 预算项名称
private String planItemName;
// 预算所属单位编码
private String planUnitCode;
// 预算所属单位名称
private String planUnitName;
// 单位编码前端展示
private String displayUnitCode;
// 预算单位编码前端展示
private String displayPlanUnitCode;
// 经办用户单位编码前端展示
private String displayOperaterOrgCode;
// 付方单位编码前端展示
private String displayPayOrgCode;
// 客商编号
private String revCustomerCode;
// 结算方式
private String payType;
//代发代扣详情
private List<AgentPayQueryDTO> agentDetails;
public String getBusType() {
return busType;
}
public void setBusType(String busType) {
this.busType = busType;
}
public String getBusNum() {
return busNum;
}
public void setBusNum(String busNum) {
this.busNum = busNum;
}
public String getPayAccount() {
return payAccount;
}
public void setPayAccount(String payAccount) {
this.payAccount = payAccount;
}
public String getPayAccountName() {
return payAccountName;
}
public void setPayAccountName(String payAccountName) {
this.payAccountName = payAccountName;
}
public String getPayBankName() {
return payBankName;
}
public void setPayBankName(String payBankName) {
this.payBankName = payBankName;
}
public String getPayBankType() {
return payBankType;
}
public void setPayBankType(String payBankType) {
this.payBankType = payBankType;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
public String getRevAccount() {
return revAccount;
}
public void setRevAccount(String revAccount) {
this.revAccount = revAccount;
}
public String getRevAccountName() {
return revAccountName;
}
public void setRevAccountName(String revAccountName) {
this.revAccountName = revAccountName;
}
public String getRevBankName() {
return revBankName;
}
public void setRevBankName(String revBankName) {
this.revBankName = revBankName;
}
public String getRevBankType() {
return revBankType;
}
public void setRevBankType(String revBankType) {
this.revBankType = revBankType;
}
public String getRevProvince() {
return revProvince;
}
public void setRevProvince(String revProvince) {
this.revProvince = revProvince;
}
public List<String> getCheckCodeList() {
return checkCodeList;
}
public void setCheckCodeList(List<String> checkCodeList) {
this.checkCodeList = checkCodeList;
}
public String getRevCity() {
return revCity;
}
public void setRevCity(String revCity) {
this.revCity = revCity;
}
public String getPayChannel() {
return payChannel;
}
public void setPayChannel(String payChannel) {
this.payChannel = payChannel;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public String getCreateByName() {
return createByName;
}
public void setCreateByName(String createByName) {
this.createByName = createByName;
}
public String getPurpose() {
return purpose;
}
public void setPurpose(String purpose) {
this.purpose = purpose;
}
public String getSummary() {
return summary;
}
public void setSummary(String summary) {
this.summary = summary;
}
public String getExpectTime() {
return expectTime;
}
public void setExpectTime(String expectTime) {
this.expectTime = expectTime;
}
public String getPayDate() {
return payDate;
}
public void setPayDate(String payDate) {
this.payDate = payDate;
}
public String getPayStatus() {
return payStatus;
}
public void setPayStatus(String payStatus) {
this.payStatus = payStatus;
}
public String getErpExtend1() {
return erpExtend1;
}
public void setErpExtend1(String erpExtend1) {
this.erpExtend1 = erpExtend1;
}
public String getErpExtend2() {
return erpExtend2;
}
public void setErpExtend2(String erpExtend2) {
this.erpExtend2 = erpExtend2;
}
public String getErpExtend3() {
return erpExtend3;
}
public void setErpExtend3(String erpExtend3) {
this.erpExtend3 = erpExtend3;
}
public String getPlanNumber() {
return planNumber;
}
public void setPlanNumber(String planNumber) {
this.planNumber = planNumber;
}
public String getPlanItemCode() {
return planItemCode;
}
public void setPlanItemCode(String planItemCode) {
this.planItemCode = planItemCode;
}
public String getPlanItemName() {
return planItemName;
}
public void setPlanItemName(String planItemName) {
this.planItemName = planItemName;
}
public String getPlanUnitCode() {
return planUnitCode;
}
public void setPlanUnitCode(String planUnitCode) {
this.planUnitCode = planUnitCode;
}
public String getPlanUnitName() {
return planUnitName;
}
public void setPlanUnitName(String planUnitName) {
this.planUnitName = planUnitName;
}
public String getDisplayUnitCode() {
return displayUnitCode;
}
public void setDisplayUnitCode(String displayUnitCode) {
this.displayUnitCode = displayUnitCode;
}
public String getDisplayPlanUnitCode() {
return displayPlanUnitCode;
}
public void setDisplayPlanUnitCode(String displayPlanUnitCode) {
this.displayPlanUnitCode = displayPlanUnitCode;
}
public String getDisplayOperaterOrgCode() {
return displayOperaterOrgCode;
}
public void setDisplayOperaterOrgCode(String displayOperaterOrgCode) {
this.displayOperaterOrgCode = displayOperaterOrgCode;
}
public String getDisplayPayOrgCode() {
return displayPayOrgCode;
}
public void setDisplayPayOrgCode(String displayPayOrgCode) {
this.displayPayOrgCode = displayPayOrgCode;
}
public String getRevCustomerCode() {
return revCustomerCode;
}
public void setRevCustomerCode(String revCustomerCode) {
this.revCustomerCode = revCustomerCode;
}
public String getPayType() {
return payType;
}
public void setPayType(String payType) {
this.payType = payType;
}
public List<AgentPayQueryDTO> getAgentDetails() {
return agentDetails;
}
public void setAgentDetails(List<AgentPayQueryDTO> agentDetails) {
this.agentDetails = agentDetails;
}
}

View File

@ -0,0 +1,458 @@
package com.hzya.frame.cbs8.dto.res;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import java.util.List;
/**
* @Description data节点
* @Author xiangerlin
* @Date 2024/1/2 09:26
**/
public class CbsResDataDTO {
private List<JSONObject> list;//明细数据
//------- 交易明细字段-----
private int endRow;
private Boolean hasNextPage;//是否有下一页
private Boolean hasPreviousPage;//是否有前一页
@JSONField(name = "isFirstPage")
private Boolean hasFirstPage;
@JSONField(name = "isLastPage")
private Boolean hasLastPage;
private int navigateFirstPage;
private int navigateLastPage;
private int navigatePages;
private int nextPage;
private int pageNum;
private int pageSize;
private int pages;
private int prePage;
private int size;
private int startRow;
private int total;
//------- 交易明细字段-----
//------经办支付返回参数------
private String busNum;//申请单编号
private String errorCode;//错误编码
private String errorMsg;//错误信息
private String freezeFlowNum;//内部户冻结流水号
private String recordNum;//批量经办序号
private String referenceNum;//业务参考号
private Boolean successed;//是否成功
//------经办支付返回参数------
//------查询交易结果返回参数-------
private String busType;//支付业务类型
private String payAccount;//付款账号
private String payAccountName;//付款户名
private String payBankName;//付款开户行名称
private String payBankType;//付款银行类型
private String currency;//币种
private String amount;//金额
private String revAccount;//收款账户
private String revAccountName;//收款账户名
private String revBankName;//收款开户行
private String revBankType;//收款银行类型
private String payChannel;//支付渠道
private String status;//支付申请单状态
private String payStatus;//支付状态
private String payDate;//支付时间
private String planNumber;//计划流水号
private String planItemCode;//资金预算编号
private String planItemName;//预算名称
private String erpExtend1;//客户备用字段1
private String erpExtend2;//客户备用字段1
private String erpExtend3;//客户备用字段1
//------查询交易结果返回参数-------
public List<JSONObject> getList() {
return list;
}
public void setList(List<JSONObject> list) {
this.list = list;
}
public int getEndRow() {
return endRow;
}
public void setEndRow(int endRow) {
this.endRow = endRow;
}
public Boolean getHasNextPage() {
return hasNextPage;
}
public void setHasNextPage(Boolean hasNextPage) {
this.hasNextPage = hasNextPage;
}
public Boolean getHasPreviousPage() {
return hasPreviousPage;
}
public void setHasPreviousPage(Boolean hasPreviousPage) {
this.hasPreviousPage = hasPreviousPage;
}
public Boolean getHasFirstPage() {
return hasFirstPage;
}
public void setHasFirstPage(Boolean hasFirstPage) {
this.hasFirstPage = hasFirstPage;
}
public Boolean getHasLastPage() {
return hasLastPage;
}
public void setHasLastPage(Boolean hasLastPage) {
this.hasLastPage = hasLastPage;
}
public int getNavigateFirstPage() {
return navigateFirstPage;
}
public void setNavigateFirstPage(int navigateFirstPage) {
this.navigateFirstPage = navigateFirstPage;
}
public int getNavigateLastPage() {
return navigateLastPage;
}
public void setNavigateLastPage(int navigateLastPage) {
this.navigateLastPage = navigateLastPage;
}
public int getNavigatePages() {
return navigatePages;
}
public void setNavigatePages(int navigatePages) {
this.navigatePages = navigatePages;
}
public int getNextPage() {
return nextPage;
}
public void setNextPage(int nextPage) {
this.nextPage = nextPage;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPages() {
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
public int getPrePage() {
return prePage;
}
public void setPrePage(int prePage) {
this.prePage = prePage;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public int getStartRow() {
return startRow;
}
public void setStartRow(int startRow) {
this.startRow = startRow;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public String getBusNum() {
return busNum;
}
public void setBusNum(String busNum) {
this.busNum = busNum;
}
public String getErrorCode() {
return errorCode;
}
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
public String getFreezeFlowNum() {
return freezeFlowNum;
}
public void setFreezeFlowNum(String freezeFlowNum) {
this.freezeFlowNum = freezeFlowNum;
}
public String getRecordNum() {
return recordNum;
}
public void setRecordNum(String recordNum) {
this.recordNum = recordNum;
}
public String getReferenceNum() {
return referenceNum;
}
public void setReferenceNum(String referenceNum) {
this.referenceNum = referenceNum;
}
public Boolean getSuccessed() {
return successed;
}
public void setSuccessed(Boolean successed) {
this.successed = successed;
}
public String getBusType() {
return busType;
}
public void setBusType(String busType) {
this.busType = busType;
}
public String getPayAccount() {
return payAccount;
}
public void setPayAccount(String payAccount) {
this.payAccount = payAccount;
}
public String getPayAccountName() {
return payAccountName;
}
public void setPayAccountName(String payAccountName) {
this.payAccountName = payAccountName;
}
public String getPayBankName() {
return payBankName;
}
public void setPayBankName(String payBankName) {
this.payBankName = payBankName;
}
public String getPayBankType() {
return payBankType;
}
public void setPayBankType(String payBankType) {
this.payBankType = payBankType;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
public String getRevAccount() {
return revAccount;
}
public void setRevAccount(String revAccount) {
this.revAccount = revAccount;
}
public String getRevAccountName() {
return revAccountName;
}
public void setRevAccountName(String revAccountName) {
this.revAccountName = revAccountName;
}
public String getRevBankName() {
return revBankName;
}
public void setRevBankName(String revBankName) {
this.revBankName = revBankName;
}
public String getRevBankType() {
return revBankType;
}
public void setRevBankType(String revBankType) {
this.revBankType = revBankType;
}
public String getPayChannel() {
return payChannel;
}
public void setPayChannel(String payChannel) {
this.payChannel = payChannel;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getPayStatus() {
return payStatus;
}
public void setPayStatus(String payStatus) {
this.payStatus = payStatus;
}
public String getPayDate() {
return payDate;
}
public void setPayDate(String payDate) {
this.payDate = payDate;
}
public String getPlanNumber() {
return planNumber;
}
public void setPlanNumber(String planNumber) {
this.planNumber = planNumber;
}
public String getPlanItemCode() {
return planItemCode;
}
public void setPlanItemCode(String planItemCode) {
this.planItemCode = planItemCode;
}
public String getPlanItemName() {
return planItemName;
}
public void setPlanItemName(String planItemName) {
this.planItemName = planItemName;
}
public String getErpExtend1() {
return erpExtend1;
}
public void setErpExtend1(String erpExtend1) {
this.erpExtend1 = erpExtend1;
}
public String getErpExtend2() {
return erpExtend2;
}
public void setErpExtend2(String erpExtend2) {
this.erpExtend2 = erpExtend2;
}
public String getErpExtend3() {
return erpExtend3;
}
public void setErpExtend3(String erpExtend3) {
this.erpExtend3 = erpExtend3;
}
/**
* 把json字符串转换成指定范型的list
* @param json
* @param list
* @param clazz
* @param <T>
*/
private static <T> void adaptAndAddToList(String json, List<Object> list, Class<T> clazz) {
JSONObject jsonObject = JSON.parseObject(json);
if (jsonObject.containsKey("list")) {
JSONArray listArray = jsonObject.getJSONArray("list");
for (Object item : listArray) {
JSONObject itemObject = (JSONObject) item;
// 适配不同类型的节点
list.add(JSON.toJavaObject(itemObject, clazz));
}
}
}
}

View File

@ -0,0 +1,44 @@
package com.hzya.frame.cbs8.dto.res;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import java.util.List;
/**
* @Description cbs响应DTO
* @Author xiangerlin
* @Date 2024/1/2 09:25
**/
public class CbsResponseDTO {
//private List<CbsResDataDTO> data;//数据
private List<JSONObject> data;//数据
private String code;//0表示成功
private String msg;//消息
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public List<JSONObject> getData() {
return data;
}
public void setData(List<JSONObject> data) {
this.data = data;
}
}

View File

@ -0,0 +1,305 @@
package com.hzya.frame.cbs8.dto.res;
/**
* @Description 电子回单查询返回参数
* @Author xiangerlin
* @Date 2024/1/4 17:13
**/
public class ElecResponseDTO {
// 账号
private String accountNo;
// 账号名称
private String accountName;
// 银行类型
private String bankType;
// 银行类型名称
private String bankTypeName;
// 开户行
private String openingBank;
// 交易日期
private String transactionDate;
// 电子回单文件状态
private String electronicBillStatus;
// 电子回单文件名称
private String billFileName;
// 回单文件下载地址
private String bucketFileUrl;
// 回单文件名称
private String bucketFileName;
// 回单类型
private String electronicBillType;
// 银行流水号
private String bankSerialNumber;
// 回单编号
private String printInstanceNumber;
// 币种
private String currency;
// 币种名称
private String currencyName;
// 借贷类型
private String loanType;
// 交易金额
private String transactionAmount;
// 对方账号
private String oppositeAccount;
// 对方账户名
private String oppositeAccountName;
// 对方开户地
private String oppositeOpeningPlace;
// 对方开户行
private String oppositeOpeningBank;
// 摘要
private String digest;
// 用途
private String purpose;
// 账户性质
private String accountNatureCode;
// 对账码
private String checkCode;
// 单位编码
private String unitCode;
// ERP业务参考号
private String settleBusinessReferenceCode;
public String getAccountNo() {
return accountNo;
}
public void setAccountNo(String accountNo) {
this.accountNo = accountNo;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getBankType() {
return bankType;
}
public void setBankType(String bankType) {
this.bankType = bankType;
}
public String getBankTypeName() {
return bankTypeName;
}
public void setBankTypeName(String bankTypeName) {
this.bankTypeName = bankTypeName;
}
public String getOpeningBank() {
return openingBank;
}
public void setOpeningBank(String openingBank) {
this.openingBank = openingBank;
}
public String getTransactionDate() {
return transactionDate;
}
public void setTransactionDate(String transactionDate) {
this.transactionDate = transactionDate;
}
public String getElectronicBillStatus() {
return electronicBillStatus;
}
public void setElectronicBillStatus(String electronicBillStatus) {
this.electronicBillStatus = electronicBillStatus;
}
public String getBillFileName() {
return billFileName;
}
public void setBillFileName(String billFileName) {
this.billFileName = billFileName;
}
public String getBucketFileUrl() {
return bucketFileUrl;
}
public void setBucketFileUrl(String bucketFileUrl) {
this.bucketFileUrl = bucketFileUrl;
}
public String getBucketFileName() {
return bucketFileName;
}
public void setBucketFileName(String bucketFileName) {
this.bucketFileName = bucketFileName;
}
public String getElectronicBillType() {
return electronicBillType;
}
public void setElectronicBillType(String electronicBillType) {
this.electronicBillType = electronicBillType;
}
public String getBankSerialNumber() {
return bankSerialNumber;
}
public void setBankSerialNumber(String bankSerialNumber) {
this.bankSerialNumber = bankSerialNumber;
}
public String getPrintInstanceNumber() {
return printInstanceNumber;
}
public void setPrintInstanceNumber(String printInstanceNumber) {
this.printInstanceNumber = printInstanceNumber;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getCurrencyName() {
return currencyName;
}
public void setCurrencyName(String currencyName) {
this.currencyName = currencyName;
}
public String getLoanType() {
return loanType;
}
public void setLoanType(String loanType) {
this.loanType = loanType;
}
public String getTransactionAmount() {
return transactionAmount;
}
public void setTransactionAmount(String transactionAmount) {
this.transactionAmount = transactionAmount;
}
public String getOppositeAccount() {
return oppositeAccount;
}
public void setOppositeAccount(String oppositeAccount) {
this.oppositeAccount = oppositeAccount;
}
public String getOppositeAccountName() {
return oppositeAccountName;
}
public void setOppositeAccountName(String oppositeAccountName) {
this.oppositeAccountName = oppositeAccountName;
}
public String getOppositeOpeningPlace() {
return oppositeOpeningPlace;
}
public void setOppositeOpeningPlace(String oppositeOpeningPlace) {
this.oppositeOpeningPlace = oppositeOpeningPlace;
}
public String getOppositeOpeningBank() {
return oppositeOpeningBank;
}
public void setOppositeOpeningBank(String oppositeOpeningBank) {
this.oppositeOpeningBank = oppositeOpeningBank;
}
public String getDigest() {
return digest;
}
public void setDigest(String digest) {
this.digest = digest;
}
public String getPurpose() {
return purpose;
}
public void setPurpose(String purpose) {
this.purpose = purpose;
}
public String getAccountNatureCode() {
return accountNatureCode;
}
public void setAccountNatureCode(String accountNatureCode) {
this.accountNatureCode = accountNatureCode;
}
public String getCheckCode() {
return checkCode;
}
public void setCheckCode(String checkCode) {
this.checkCode = checkCode;
}
public String getUnitCode() {
return unitCode;
}
public void setUnitCode(String unitCode) {
this.unitCode = unitCode;
}
public String getSettleBusinessReferenceCode() {
return settleBusinessReferenceCode;
}
public void setSettleBusinessReferenceCode(String settleBusinessReferenceCode) {
this.settleBusinessReferenceCode = settleBusinessReferenceCode;
}
}

View File

@ -0,0 +1,73 @@
package com.hzya.frame.cbs8.dto.res;
/**
* @Description 经办支付接口返回参数中的data节点
* @Author xiangerlin
* @Date 2024/1/3 14:35
**/
public class PayResponseDTO {
private String busNum;//申请单编号
private String errorCode;//错误编码
private String errorMsg;//错误信息
private String freezeFlowNum;//内部户冻结流水号
private String recordNum;//批量经办序号
private String referenceNum;//业务参考号
private Boolean successed;//是否成功
public String getBusNum() {
return busNum;
}
public void setBusNum(String busNum) {
this.busNum = busNum;
}
public String getErrorCode() {
return errorCode;
}
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
public String getFreezeFlowNum() {
return freezeFlowNum;
}
public void setFreezeFlowNum(String freezeFlowNum) {
this.freezeFlowNum = freezeFlowNum;
}
public String getRecordNum() {
return recordNum;
}
public void setRecordNum(String recordNum) {
this.recordNum = recordNum;
}
public String getReferenceNum() {
return referenceNum;
}
public void setReferenceNum(String referenceNum) {
this.referenceNum = referenceNum;
}
public Boolean getSuccessed() {
return successed;
}
public void setSuccessed(Boolean successed) {
this.successed = successed;
}
}

View File

@ -0,0 +1,890 @@
package com.hzya.frame.cbs8.dto.res;
/**
* @Description 交易结果查询data节点响应的参数
* @Author xiangerlin
* @Date 2024/1/3 15:45
**/
public class PayResultResDTO {
private String payDate;//支付日期
private String accountFlag;
private String agentDetails;
private String amount;
private String bankExtend1;
private String bankExtend10;
private String bankExtend11;
private String bankExtend2;
private String bankExtend3;
private String bankExtend4;
private String bankExtend5;
private String bankExtend6;
private String bankExtend7;
private String bankExtend8;
private String bankExtend9;
private String bankInterfaceType;
private String bankNum;
private String bankVersion;
private String batchNum;
private String busNum;
private String busType;
private String checkCodeList;
private String cityFlag;
private String cnapsCode;
private String createBy;
private String createByName;
private String createTime;
private String currency;
private String dealPeopleList;
private String detailNum;
private String erpExtend1;
private String erpExtend2;
private String erpExtend3;
private String errorMsg;
private String expectTime;
private String extend1;
private String extend2;
private String extend3;
private String extend4;
private String extend5;
private String freezeFlowNum;
private String freezeStatus;
private String id;
private String innerAccount;
private String innerAccountName;
private String inputType;
private String isDeleted;
private String isSaveRev;
private String lastPrintTime;
private String lastPrintUser;
private String operaterOrgCode;
private String operaterOrgCodeList;
private String operaterOrgName;
private String payAccount;
private String payAccountName;
private String payAccountSeq;
private String payBankName;
private String payBankType;
private String payChannel;
private String payOrgCode;
private String payOrgName;
private String payStatus;// 支付状态
private String paymentApplyUnionDTO;
private String personalFlag;
private String printTimes;
private String procInstId;
private String procStatus;
private String projectCode;
private String purpose;
private String realName;
private String realRevAccount;
private String realTimeTag;
private String referenceNum;
private String revAccount;
private String revAccountName;
private String revAccountSeq;
private String revBankArea;
private String revBankName;
private String revBankType;
private String revCity;
private String revProvince;
private String status;//支付申请状态
private String summary;
private String unitCode;
private String unitName;
private String updateBy;
private String updateTime;
private String urgentTag;
public String getAccountFlag() {
return accountFlag;
}
public void setAccountFlag(String accountFlag) {
this.accountFlag = accountFlag;
}
public String getAgentDetails() {
return agentDetails;
}
public void setAgentDetails(String agentDetails) {
this.agentDetails = agentDetails;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
public String getBankExtend1() {
return bankExtend1;
}
public void setBankExtend1(String bankExtend1) {
this.bankExtend1 = bankExtend1;
}
public String getBankExtend10() {
return bankExtend10;
}
public void setBankExtend10(String bankExtend10) {
this.bankExtend10 = bankExtend10;
}
public String getBankExtend11() {
return bankExtend11;
}
public void setBankExtend11(String bankExtend11) {
this.bankExtend11 = bankExtend11;
}
public String getBankExtend2() {
return bankExtend2;
}
public void setBankExtend2(String bankExtend2) {
this.bankExtend2 = bankExtend2;
}
public String getBankExtend3() {
return bankExtend3;
}
public void setBankExtend3(String bankExtend3) {
this.bankExtend3 = bankExtend3;
}
public String getBankExtend4() {
return bankExtend4;
}
public void setBankExtend4(String bankExtend4) {
this.bankExtend4 = bankExtend4;
}
public String getBankExtend5() {
return bankExtend5;
}
public void setBankExtend5(String bankExtend5) {
this.bankExtend5 = bankExtend5;
}
public String getBankExtend6() {
return bankExtend6;
}
public void setBankExtend6(String bankExtend6) {
this.bankExtend6 = bankExtend6;
}
public String getBankExtend7() {
return bankExtend7;
}
public void setBankExtend7(String bankExtend7) {
this.bankExtend7 = bankExtend7;
}
public String getBankExtend8() {
return bankExtend8;
}
public void setBankExtend8(String bankExtend8) {
this.bankExtend8 = bankExtend8;
}
public String getBankExtend9() {
return bankExtend9;
}
public void setBankExtend9(String bankExtend9) {
this.bankExtend9 = bankExtend9;
}
public String getBankInterfaceType() {
return bankInterfaceType;
}
public void setBankInterfaceType(String bankInterfaceType) {
this.bankInterfaceType = bankInterfaceType;
}
public String getBankNum() {
return bankNum;
}
public void setBankNum(String bankNum) {
this.bankNum = bankNum;
}
public String getBankVersion() {
return bankVersion;
}
public void setBankVersion(String bankVersion) {
this.bankVersion = bankVersion;
}
public String getBatchNum() {
return batchNum;
}
public void setBatchNum(String batchNum) {
this.batchNum = batchNum;
}
public String getBusNum() {
return busNum;
}
public void setBusNum(String busNum) {
this.busNum = busNum;
}
public String getBusType() {
return busType;
}
public void setBusType(String busType) {
this.busType = busType;
}
public String getCheckCodeList() {
return checkCodeList;
}
public void setCheckCodeList(String checkCodeList) {
this.checkCodeList = checkCodeList;
}
public String getCityFlag() {
return cityFlag;
}
public void setCityFlag(String cityFlag) {
this.cityFlag = cityFlag;
}
public String getCnapsCode() {
return cnapsCode;
}
public void setCnapsCode(String cnapsCode) {
this.cnapsCode = cnapsCode;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public String getCreateByName() {
return createByName;
}
public void setCreateByName(String createByName) {
this.createByName = createByName;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getDealPeopleList() {
return dealPeopleList;
}
public void setDealPeopleList(String dealPeopleList) {
this.dealPeopleList = dealPeopleList;
}
public String getDetailNum() {
return detailNum;
}
public void setDetailNum(String detailNum) {
this.detailNum = detailNum;
}
public String getErpExtend1() {
return erpExtend1;
}
public void setErpExtend1(String erpExtend1) {
this.erpExtend1 = erpExtend1;
}
public String getErpExtend2() {
return erpExtend2;
}
public void setErpExtend2(String erpExtend2) {
this.erpExtend2 = erpExtend2;
}
public String getErpExtend3() {
return erpExtend3;
}
public void setErpExtend3(String erpExtend3) {
this.erpExtend3 = erpExtend3;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
public String getExpectTime() {
return expectTime;
}
public void setExpectTime(String expectTime) {
this.expectTime = expectTime;
}
public String getExtend1() {
return extend1;
}
public void setExtend1(String extend1) {
this.extend1 = extend1;
}
public String getExtend2() {
return extend2;
}
public void setExtend2(String extend2) {
this.extend2 = extend2;
}
public String getExtend3() {
return extend3;
}
public void setExtend3(String extend3) {
this.extend3 = extend3;
}
public String getExtend4() {
return extend4;
}
public void setExtend4(String extend4) {
this.extend4 = extend4;
}
public String getExtend5() {
return extend5;
}
public void setExtend5(String extend5) {
this.extend5 = extend5;
}
public String getFreezeFlowNum() {
return freezeFlowNum;
}
public void setFreezeFlowNum(String freezeFlowNum) {
this.freezeFlowNum = freezeFlowNum;
}
public String getFreezeStatus() {
return freezeStatus;
}
public void setFreezeStatus(String freezeStatus) {
this.freezeStatus = freezeStatus;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getInnerAccount() {
return innerAccount;
}
public void setInnerAccount(String innerAccount) {
this.innerAccount = innerAccount;
}
public String getInnerAccountName() {
return innerAccountName;
}
public void setInnerAccountName(String innerAccountName) {
this.innerAccountName = innerAccountName;
}
public String getInputType() {
return inputType;
}
public void setInputType(String inputType) {
this.inputType = inputType;
}
public String getIsDeleted() {
return isDeleted;
}
public void setIsDeleted(String isDeleted) {
this.isDeleted = isDeleted;
}
public String getIsSaveRev() {
return isSaveRev;
}
public void setIsSaveRev(String isSaveRev) {
this.isSaveRev = isSaveRev;
}
public String getLastPrintTime() {
return lastPrintTime;
}
public void setLastPrintTime(String lastPrintTime) {
this.lastPrintTime = lastPrintTime;
}
public String getLastPrintUser() {
return lastPrintUser;
}
public void setLastPrintUser(String lastPrintUser) {
this.lastPrintUser = lastPrintUser;
}
public String getOperaterOrgCode() {
return operaterOrgCode;
}
public void setOperaterOrgCode(String operaterOrgCode) {
this.operaterOrgCode = operaterOrgCode;
}
public String getOperaterOrgCodeList() {
return operaterOrgCodeList;
}
public void setOperaterOrgCodeList(String operaterOrgCodeList) {
this.operaterOrgCodeList = operaterOrgCodeList;
}
public String getOperaterOrgName() {
return operaterOrgName;
}
public void setOperaterOrgName(String operaterOrgName) {
this.operaterOrgName = operaterOrgName;
}
public String getPayAccount() {
return payAccount;
}
public void setPayAccount(String payAccount) {
this.payAccount = payAccount;
}
public String getPayAccountName() {
return payAccountName;
}
public void setPayAccountName(String payAccountName) {
this.payAccountName = payAccountName;
}
public String getPayAccountSeq() {
return payAccountSeq;
}
public void setPayAccountSeq(String payAccountSeq) {
this.payAccountSeq = payAccountSeq;
}
public String getPayBankName() {
return payBankName;
}
public void setPayBankName(String payBankName) {
this.payBankName = payBankName;
}
public String getPayBankType() {
return payBankType;
}
public void setPayBankType(String payBankType) {
this.payBankType = payBankType;
}
public String getPayChannel() {
return payChannel;
}
public void setPayChannel(String payChannel) {
this.payChannel = payChannel;
}
public String getPayOrgCode() {
return payOrgCode;
}
public void setPayOrgCode(String payOrgCode) {
this.payOrgCode = payOrgCode;
}
public String getPayOrgName() {
return payOrgName;
}
public void setPayOrgName(String payOrgName) {
this.payOrgName = payOrgName;
}
public String getPayStatus() {
return payStatus;
}
public void setPayStatus(String payStatus) {
this.payStatus = payStatus;
}
public String getPaymentApplyUnionDTO() {
return paymentApplyUnionDTO;
}
public void setPaymentApplyUnionDTO(String paymentApplyUnionDTO) {
this.paymentApplyUnionDTO = paymentApplyUnionDTO;
}
public String getPersonalFlag() {
return personalFlag;
}
public void setPersonalFlag(String personalFlag) {
this.personalFlag = personalFlag;
}
public String getPrintTimes() {
return printTimes;
}
public void setPrintTimes(String printTimes) {
this.printTimes = printTimes;
}
public String getProcInstId() {
return procInstId;
}
public void setProcInstId(String procInstId) {
this.procInstId = procInstId;
}
public String getProcStatus() {
return procStatus;
}
public void setProcStatus(String procStatus) {
this.procStatus = procStatus;
}
public String getProjectCode() {
return projectCode;
}
public void setProjectCode(String projectCode) {
this.projectCode = projectCode;
}
public String getPurpose() {
return purpose;
}
public void setPurpose(String purpose) {
this.purpose = purpose;
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
public String getRealRevAccount() {
return realRevAccount;
}
public void setRealRevAccount(String realRevAccount) {
this.realRevAccount = realRevAccount;
}
public String getRealTimeTag() {
return realTimeTag;
}
public void setRealTimeTag(String realTimeTag) {
this.realTimeTag = realTimeTag;
}
public String getReferenceNum() {
return referenceNum;
}
public void setReferenceNum(String referenceNum) {
this.referenceNum = referenceNum;
}
public String getRevAccount() {
return revAccount;
}
public void setRevAccount(String revAccount) {
this.revAccount = revAccount;
}
public String getRevAccountName() {
return revAccountName;
}
public void setRevAccountName(String revAccountName) {
this.revAccountName = revAccountName;
}
public String getRevAccountSeq() {
return revAccountSeq;
}
public void setRevAccountSeq(String revAccountSeq) {
this.revAccountSeq = revAccountSeq;
}
public String getRevBankArea() {
return revBankArea;
}
public void setRevBankArea(String revBankArea) {
this.revBankArea = revBankArea;
}
public String getRevBankName() {
return revBankName;
}
public void setRevBankName(String revBankName) {
this.revBankName = revBankName;
}
public String getRevBankType() {
return revBankType;
}
public void setRevBankType(String revBankType) {
this.revBankType = revBankType;
}
public String getRevCity() {
return revCity;
}
public void setRevCity(String revCity) {
this.revCity = revCity;
}
public String getRevProvince() {
return revProvince;
}
public void setRevProvince(String revProvince) {
this.revProvince = revProvince;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getSummary() {
return summary;
}
public void setSummary(String summary) {
this.summary = summary;
}
public String getUnitCode() {
return unitCode;
}
public void setUnitCode(String unitCode) {
this.unitCode = unitCode;
}
public String getUnitName() {
return unitName;
}
public void setUnitName(String unitName) {
this.unitName = unitName;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime;
}
public String getUrgentTag() {
return urgentTag;
}
public void setUrgentTag(String urgentTag) {
this.urgentTag = urgentTag;
}
public String getPayDate() {
return payDate;
}
public void setPayDate(String payDate) {
this.payDate = payDate;
}
}

View File

@ -0,0 +1,207 @@
package com.hzya.frame.cbs8.dto.res;
/**
* @Description 境内账户交易明细
* @Author xiangerlin
* @Date 2023/12/29 16:40
**/
public class TransactionDetailDTO{
private String accountNo;//银行账号
private String accountName;//银行名称
private String bankType;//银行类型
private String openBank;//开户行名称
private String bankTransactionDate;//交易日期
private String bankSerialNumber;//银行流水号
private String transactionSerialNumber;//交易流水号
private String currency;//币种
private String loanType;//借贷类型
private String incurredAmount;//发生额
private String accountBalance;//交易后余额
private String purpose;//用途
private String digest;//摘要
private String oppositeAccount;//对方账号
private String oppositeName;//对方户名
private String oppositeOpeningBank;//对方开户行
private String associatedCustomerNumber;//关联客户号
private String merchantNumber;//客商编号
private String merchantName;//客商名称
private String transactionCode;//交易代码
private String remark;//备注
private String erpSerialNumber;//erp业务参考号
public String getAccountNo() {
return accountNo;
}
public void setAccountNo(String accountNo) {
this.accountNo = accountNo;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getBankType() {
return bankType;
}
public void setBankType(String bankType) {
this.bankType = bankType;
}
public String getOpenBank() {
return openBank;
}
public void setOpenBank(String openBank) {
this.openBank = openBank;
}
public String getBankTransactionDate() {
return bankTransactionDate;
}
public void setBankTransactionDate(String bankTransactionDate) {
this.bankTransactionDate = bankTransactionDate;
}
public String getBankSerialNumber() {
return bankSerialNumber;
}
public void setBankSerialNumber(String bankSerialNumber) {
this.bankSerialNumber = bankSerialNumber;
}
public String getTransactionSerialNumber() {
return transactionSerialNumber;
}
public void setTransactionSerialNumber(String transactionSerialNumber) {
this.transactionSerialNumber = transactionSerialNumber;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getLoanType() {
return loanType;
}
public void setLoanType(String loanType) {
this.loanType = loanType;
}
public String getIncurredAmount() {
return incurredAmount;
}
public void setIncurredAmount(String incurredAmount) {
this.incurredAmount = incurredAmount;
}
public String getAccountBalance() {
return accountBalance;
}
public void setAccountBalance(String accountBalance) {
this.accountBalance = accountBalance;
}
public String getPurpose() {
return purpose;
}
public void setPurpose(String purpose) {
this.purpose = purpose;
}
public String getDigest() {
return digest;
}
public void setDigest(String digest) {
this.digest = digest;
}
public String getOppositeAccount() {
return oppositeAccount;
}
public void setOppositeAccount(String oppositeAccount) {
this.oppositeAccount = oppositeAccount;
}
public String getOppositeName() {
return oppositeName;
}
public void setOppositeName(String oppositeName) {
this.oppositeName = oppositeName;
}
public String getOppositeOpeningBank() {
return oppositeOpeningBank;
}
public void setOppositeOpeningBank(String oppositeOpeningBank) {
this.oppositeOpeningBank = oppositeOpeningBank;
}
public String getAssociatedCustomerNumber() {
return associatedCustomerNumber;
}
public void setAssociatedCustomerNumber(String associatedCustomerNumber) {
this.associatedCustomerNumber = associatedCustomerNumber;
}
public String getMerchantNumber() {
return merchantNumber;
}
public void setMerchantNumber(String merchantNumber) {
this.merchantNumber = merchantNumber;
}
public String getMerchantName() {
return merchantName;
}
public void setMerchantName(String merchantName) {
this.merchantName = merchantName;
}
public String getTransactionCode() {
return transactionCode;
}
public void setTransactionCode(String transactionCode) {
this.transactionCode = transactionCode;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getErpSerialNumber() {
return erpSerialNumber;
}
public void setErpSerialNumber(String erpSerialNumber) {
this.erpSerialNumber = erpSerialNumber;
}
}

View File

@ -0,0 +1,327 @@
package com.hzya.frame.cbs8.entity;
import com.hzya.frame.web.entity.BaseEntity;
/**
* @Description
* @Author xiangerlin
* @Date 2024/6/6 16:17
**/
public class PaymentEntity extends BaseEntity {
private String oaId;//主表id
private String formsonId;//明细表id
private String payCompany;//付款公司
private String title;//流程标题
private String tableName;//表名称
private String billName;//单据名称
private String referenceNum;//业务参考号 唯一id
private String referenceNumNew;//重试的时候生成新的业务参考号
private String busType;//业务类型
private String payResultField;//支付结果字段
private String payDateField;//打款日期字段
private String applyCodeField;//支付申请单号字段
private String receiptFiled;//电子回单字段
private String summaryId;//summaryid
private String startDate;//单据日期
private String finishedflag;//流程状态
private String payDate;//打款日期
private String payResult;//支付结果
private String applyCode;//支付申请单号
private String payAccount;//付款账号
private String payBankName;//付款开户银行
private String amount;//金额
private String purpose;//支付用途
private String revAccount;//收款账号
private String revBankName;//收款开户行名称
private String revBankType;//收款银行类型
private String revAccountName;//收款账户名称
private String cnapsCode;//联行号
private String receipt;//电子回单
private String currency;//币种 数字
private String currencyName;//币种 中文
private String currencyCode;//币种编码
private String personalFlag;//公私标记
private String payType;//付款类别
private String payCompanyCode;//付款公司编码
public String getOaId() {
return oaId;
}
public void setOaId(String oaId) {
this.oaId = oaId;
}
public String getPayCompany() {
return payCompany;
}
public void setPayCompany(String payCompany) {
this.payCompany = payCompany;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getTableName() {
return tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public String getBillName() {
return billName;
}
public void setBillName(String billName) {
this.billName = billName;
}
public String getReferenceNum() {
return referenceNum;
}
public void setReferenceNum(String referenceNum) {
this.referenceNum = referenceNum;
}
public String getReferenceNumNew() {
return referenceNumNew;
}
public void setReferenceNumNew(String referenceNumNew) {
this.referenceNumNew = referenceNumNew;
}
public String getBusType() {
return busType;
}
public void setBusType(String busType) {
this.busType = busType;
}
public String getPayResultField() {
return payResultField;
}
public void setPayResultField(String payResultField) {
this.payResultField = payResultField;
}
public String getPayDateField() {
return payDateField;
}
public void setPayDateField(String payDateField) {
this.payDateField = payDateField;
}
public String getReceiptFiled() {
return receiptFiled;
}
public void setReceiptFiled(String receiptFiled) {
this.receiptFiled = receiptFiled;
}
public String getSummaryId() {
return summaryId;
}
public void setSummaryId(String summaryId) {
this.summaryId = summaryId;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getFinishedflag() {
return finishedflag;
}
public void setFinishedflag(String finishedflag) {
this.finishedflag = finishedflag;
}
public String getPayDate() {
return payDate;
}
public void setPayDate(String payDate) {
this.payDate = payDate;
}
public String getPayResult() {
return payResult;
}
public void setPayResult(String payResult) {
this.payResult = payResult;
}
public String getPayAccount() {
return payAccount;
}
public void setPayAccount(String payAccount) {
this.payAccount = payAccount;
}
public String getPayBankName() {
return payBankName;
}
public void setPayBankName(String payBankName) {
this.payBankName = payBankName;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
public String getPurpose() {
return purpose;
}
public void setPurpose(String purpose) {
this.purpose = purpose;
}
public String getRevAccount() {
return revAccount;
}
public void setRevAccount(String revAccount) {
this.revAccount = revAccount;
}
public String getRevBankName() {
return revBankName;
}
public void setRevBankName(String revBankName) {
this.revBankName = revBankName;
}
public String getRevBankType() {
return revBankType;
}
public void setRevBankType(String revBankType) {
this.revBankType = revBankType;
}
public String getRevAccountName() {
return revAccountName;
}
public void setRevAccountName(String revAccountName) {
this.revAccountName = revAccountName;
}
public String getCnapsCode() {
return cnapsCode;
}
public void setCnapsCode(String cnapsCode) {
this.cnapsCode = cnapsCode;
}
public String getReceipt() {
return receipt;
}
public void setReceipt(String receipt) {
this.receipt = receipt;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getCurrencyName() {
return currencyName;
}
public void setCurrencyName(String currencyName) {
this.currencyName = currencyName;
}
public String getCurrencyCode() {
return currencyCode;
}
public void setCurrencyCode(String currencyCode) {
this.currencyCode = currencyCode;
}
public String getPersonalFlag() {
return personalFlag;
}
public void setPersonalFlag(String personalFlag) {
this.personalFlag = personalFlag;
}
public String getPayType() {
return payType;
}
public void setPayType(String payType) {
this.payType = payType;
}
public String getPayCompanyCode() {
return payCompanyCode;
}
public void setPayCompanyCode(String payCompanyCode) {
this.payCompanyCode = payCompanyCode;
}
public String getFormsonId() {
return formsonId;
}
public void setFormsonId(String formsonId) {
this.formsonId = formsonId;
}
public String getApplyCodeField() {
return applyCodeField;
}
public void setApplyCodeField(String applyCodeField) {
this.applyCodeField = applyCodeField;
}
public String getApplyCode() {
return applyCode;
}
public void setApplyCode(String applyCode) {
this.applyCode = applyCode;
}
}

View File

@ -0,0 +1,60 @@
package com.hzya.frame.cbs8.service;
import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity;
/**
* @Description
* @Author xiangerlin
* @Date 2024/6/7 14:20
**/
public interface ICbs8ExtService {
/**
* 支付经办
* @param entity
* @return
*/
SysExtensionApiEntity payApply(SysExtensionApiEntity entity);
/**
* 代发代扣 支付申请
* @param entity
* @return
*/
SysExtensionApiEntity agentPayApply(SysExtensionApiEntity entity);
/**
* 交易结果查询
* @param entity
* @return
*/
SysExtensionApiEntity payResult(SysExtensionApiEntity entity);
/**
* 交易明细查询
* @param entity
* @return
*/
SysExtensionApiEntity transactionDetailQuery(SysExtensionApiEntity entity);
/**
* 代发代扣
* @param entity
* @return
*/
SysExtensionApiEntity payApplyAgent(SysExtensionApiEntity entity);
/**
* 代发代扣结果查询
* @param entity
* @return
*/
SysExtensionApiEntity payApplyAgentResult(SysExtensionApiEntity entity);
/**
* 电子回单查询
* @param entity
* @return
*/
SysExtensionApiEntity elecQuery(SysExtensionApiEntity entity);
}

View File

@ -0,0 +1,65 @@
package com.hzya.frame.cbs8.service;
import com.hzya.frame.cbs8.dto.req.*;
import com.hzya.frame.cbs8.dto.res.*;
import com.hzya.frame.cbs8.entity.PaymentEntity;
import java.util.List;
/**
* @Description cbs8接口
* @Author xiangerlin
* @Date 2024/6/6 15:30
**/
public interface ICbs8Service {
/**
* 支付申请
* @param paymentEntity
*/
PayResponseDTO payApply(PaymentEntity paymentEntity);
/**
* 通过业务参考号查询交易结果 3.2.6
* @param resultRequestDTO
* @return
* @throws Exception
*/
List<PayResultResDTO> queryPayResult(PayResultRequestDTO resultRequestDTO);
/**
* 查询电子回单
* @param elecRequestDTO
* startDate 开始日期 - 必填
* endDate 结束日期 -必填
* billStatus 回单状态 1-已取回 0-未取回 只有已取回的才能下载
* settleBusinessReferenceCode 业务参考号
* @return List<ElecResponseDTO>
* bucketFileUrl 回单下载地址
* billFileName 回单文件名称
* settleBusinessReferenceCode 业务参考号
*/
List<ElecResponseDTO> queryElecBill(ElecRequestDTO elecRequestDTO);
/**
* 查询交易明细
* @param transactionDetailReqDTO
* @return
*/
CbsResDataDTO queryTransactionDetail(TransactionDetailReqDTO transactionDetailReqDTO);
/**
* 代发代扣 支付申请
* @param paymentApplySubmitReqDTO
* @param paymentApplyAgentList
*/
PayResponseDTO agentPayApply(PaymentApplySubmitReqDTO paymentApplySubmitReqDTO, List<PaymentApplyAgentDTO> paymentApplyAgentList);
/**
* 代发代扣 详情查询
* @param agentPayResultRequestDTO
* @return
*/
AgentPayResultResDTO agentPayResult(AgentPayResultRequestDTO agentPayResultRequestDTO);
}

View File

@ -0,0 +1,216 @@
package com.hzya.frame.cbs8.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.cbs8.dto.req.*;
import com.hzya.frame.cbs8.entity.PaymentEntity;
import com.hzya.frame.cbs8.service.ICbs8ExtService;
import com.hzya.frame.cbs8.util.CBSUtil;
import com.hzya.frame.cbs8.util.CbsAccessToken;
import com.hzya.frame.stringutil.StringUtil;
import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity;
import com.hzya.frame.web.exception.BaseSystemException;
import org.apache.http.protocol.HTTP;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import java.util.*;
/**
* @Description
* @Author xiangerlin
* @Date 2024/6/7 14:20
**/
@Service(value = "cbs8Ext")
public class Cbs8ExtServiceImpl implements ICbs8ExtService {
Logger logger = LoggerFactory.getLogger(getClass());
/**
* 支付经办
*
* @param entity
* @return
*/
@Override
public SysExtensionApiEntity payApply(SysExtensionApiEntity entity) {
String bodys = entity.getBodys();
if (StrUtil.isNotEmpty(bodys)){
PaymentEntity paymentEntity = JSONObject.parseObject(bodys,PaymentEntity.class);
if (null != paymentEntity){
PayRequestDTO payRequestDTO = new PayRequestDTO();
String ferenceNum = Convert.toStr(paymentEntity.getReferenceNumNew(),paymentEntity.getReferenceNum());
payRequestDTO.setReferenceNum(ferenceNum);
payRequestDTO.setBusType(paymentEntity.getBusType());
payRequestDTO.setAmount(paymentEntity.getAmount());
payRequestDTO.setCurrency(paymentEntity.getCurrency());
payRequestDTO.setPayAccount(StringUtil.replaceBlank(paymentEntity.getPayAccount()));
payRequestDTO.setRevAccount(StringUtil.replaceBlank(paymentEntity.getRevAccount()));
payRequestDTO.setRevAccountName(StringUtil.replaceBlank(paymentEntity.getRevAccountName()));
payRequestDTO.setRevBankType(StringUtil.replaceBlank((paymentEntity.getRevBankType())));
payRequestDTO.setRevBankName(StringUtil.replaceBlank(paymentEntity.getRevBankName()));
payRequestDTO.setCnapsCode(StringUtil.replaceBlank((paymentEntity.getCnapsCode())));
payRequestDTO.setPurpose(paymentEntity.getPurpose());
payRequestDTO.setErpExtend1(paymentEntity.getPayType());
//集中支付模式
if (CBSUtil.CENTRALIZED_PAYMENT_TYPE.equals(payRequestDTO.getBusType())){
payRequestDTO.setBusiStep("1");
payRequestDTO.setApplyUnitCode(paymentEntity.getPayCompanyCode());
payRequestDTO.setPayAccount(null);
}
List<PayRequestDTO> list = Arrays.asList(payRequestDTO);
String requestData = JSONObject.toJSONString(list);
//加密 签名
encrypAndsign(entity,requestData);
}
}
return entity;
}
/**
* 代发代扣 支付申请
*
* @param entity
* @return
*/
@Override
public SysExtensionApiEntity agentPayApply(SysExtensionApiEntity entity) {
String boyds = entity.getBodys();
if (StrUtil.isNotEmpty(boyds)){
AgentPayRequestDTO agentPayRequest = JSONObject.parseObject(boyds,AgentPayRequestDTO.class);
String requestData = JSONObject.toJSONString(agentPayRequest);
//加密签名
encrypAndsign(entity, requestData);
}
return entity;
}
/**
* 交易结果查询
*
* @param entity
* @return
*/
@Override
public SysExtensionApiEntity payResult(SysExtensionApiEntity entity) {
String bodys = entity.getBodys();
if (StrUtil.isNotEmpty(bodys)){
PayResultRequestDTO payResultRequest = JSONObject.parseObject(bodys,PayResultRequestDTO.class);
if (null != payResultRequest && StrUtil.isNotEmpty(payResultRequest.getReferenceNum())){
String requestData = JSONObject.toJSONString(payResultRequest);
//加密 签名
encrypAndsign(entity,requestData);
}else {
throw new BaseSystemException("业务参考号不能为空!!!!");
}
}
return entity;
}
/**
* 交易明细查询
*
* @param entity
* @return
*/
@Override
public SysExtensionApiEntity transactionDetailQuery(SysExtensionApiEntity entity) {
String bodys = entity.getBodys();
if (StrUtil.isNotEmpty(bodys)){
TransactionDetailReqDTO transactionDetailReqDTO = JSONObject.parseObject(bodys,TransactionDetailReqDTO.class);
String requestData = JSONObject.toJSONString(transactionDetailReqDTO);
////加密签名
encrypAndsign(entity, requestData);
}
return entity;
}
/**
* 代发代扣
*
* @param entity
* @return
*/
@Override
public SysExtensionApiEntity payApplyAgent(SysExtensionApiEntity entity) {
String bodys = entity.getBodys();
if (StrUtil.isNotEmpty(bodys)){
AgentPayRequestDTO agentPayRequest = JSONObject.parseObject(bodys,AgentPayRequestDTO.class);
String requestData = JSONObject.toJSONString(agentPayRequest);
////加密签名
encrypAndsign(entity, requestData);
}
return entity;
}
/**
* 代发代扣结果查询
*
* @param entity
* @return
*/
@Override
public SysExtensionApiEntity payApplyAgentResult(SysExtensionApiEntity entity) {
String bodys = entity.getBodys();
if (StrUtil.isNotEmpty(bodys)){
AgentPayResultRequestDTO agentPayResultRequestDTO = JSONObject.parseObject(bodys,AgentPayResultRequestDTO.class);
String requestData = JSONObject.toJSONString(agentPayResultRequestDTO);
encrypAndsign(entity,requestData);
}
return entity;
}
/**
* 电子回单查询
*
* @param entity
* @return
*/
@Override
public SysExtensionApiEntity elecQuery(SysExtensionApiEntity entity) {
String bodys = entity.getBodys();
if (StrUtil.isNotEmpty(bodys)){
ElecRequestDTO elecRequestDTO = JSONObject.parseObject(bodys,ElecRequestDTO.class);
String requestData = JSONObject.toJSONString(elecRequestDTO);
//加密 签名
encrypAndsign(entity,requestData);
}
return entity;
}
/**
* 请求头
* @param sign
* @param timestamp
* @return
*/
private Map<String,String> headersValueOf(String sign, long timestamp){
Map<String,String> header = new HashMap();
header.put(CBSUtil.SIGN_HEADER_NAME,sign);
header.put(CBSUtil.TIMESTAMP_HEADER,Long.toString(timestamp));
header.put(HTTP.CONTENT_TYPE,CBSUtil.TARGET_CONTENT_TYPE);
header.put(CBSUtil.AUTHORIZATION,CBSUtil.BEARER+ CbsAccessToken.getToken());
return header;
}
/**
* 加密 签名
* @param entity 接口转发参数对象
* @param requestData 请求参数json字符串
*/
private void encrypAndsign(SysExtensionApiEntity entity, String requestData) {
//签名
long timestamp = System.currentTimeMillis();
logger.info("CBS请求参数明文:{}",requestData);
String sign = CBSUtil.sign(requestData,timestamp);
//加密
byte[] encryptedData = CBSUtil.encrypt(requestData);
Map<String,String> header = headersValueOf(sign,timestamp);
entity.setByteBodys(encryptedData);
entity.setHeaders(header);
}
}

View File

@ -0,0 +1,269 @@
package com.hzya.frame.cbs8.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapBuilder;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.hzya.frame.cbs8.dto.req.*;
import com.hzya.frame.cbs8.dto.res.*;
import com.hzya.frame.cbs8.entity.PaymentEntity;
import com.hzya.frame.cbs8.service.ICbs8Service;
import com.hzya.frame.cbs8.util.CBSUtil;
import com.hzya.frame.web.entity.JsonResultEntity;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
import java.util.Map;
/**
* @Description cbs8接口
* @Author xiangerlin
* @Date 2024/6/7 14:44
**/
@Service
public class Cbs8ServiceImpl implements ICbs8Service {
Logger logger = LoggerFactory.getLogger(getClass());
@Override
public PayResponseDTO payApply(PaymentEntity paymentEntity) {
Map<String, String> headerMap = MapBuilder.<String, String>create(true)
.put("apiCode", "8000260001")
.put("publicKey","ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj")
.put("secretKey","7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")
.put("appId","800026")
.build();
String body = HttpRequest.post("http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterfaceToESB").addHeaders(headerMap).body(JSONObject.toJSONString(paymentEntity)).timeout(60000).execute().body();
//解密响应报文
String result = decryptResBody(body);
if (StrUtil.isNotEmpty(result)){
CbsResponseDTO cbsResponseDTO = JSONObject.parseObject(result, CbsResponseDTO.class);
List<JSONObject> dataList = cbsResponseDTO.getData();
if (CollectionUtils.isNotEmpty(dataList)){
JSONObject o = dataList.get(0);
PayResponseDTO payResponseDTO = JSON.toJavaObject(o, PayResponseDTO.class);
return payResponseDTO;
}
}
return new PayResponseDTO();
}
/**
* 通过业务参考号查询交易结果 3.2.6
*
* @param resultRequestDTO
* @return
* @throws Exception
*/
@Override
public List<PayResultResDTO> queryPayResult(PayResultRequestDTO resultRequestDTO) {
Map<String, String> headerMap = MapBuilder.<String, String>create(true)
.put("apiCode", "8000260002")
.put("publicKey","ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj")
.put("secretKey","7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")
.put("appId","800026")
.build();
String body = HttpRequest.post("http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterfaceToESB").addHeaders(headerMap).body(JSONObject.toJSONString(resultRequestDTO)).timeout(60000).execute().body();
String result = decryptResBody(body);
CbsResponseDTO cbsResponseDTO = JSONObject.parseObject(result, CbsResponseDTO.class);
if (CollectionUtils.isNotEmpty(cbsResponseDTO.getData())){
List<JSONObject> dataList = cbsResponseDTO.getData();
List<PayResultResDTO> payResultList = CBSUtil.convertJsonArrayToList(dataList, PayResultResDTO.class);
return payResultList;
}
return new ArrayList<PayResultResDTO>();
}
/**
* 查询电子回单
*
* @param elecRequestDTO startDate 开始日期 - 必填
* endDate 结束日期 -必填
* billStatus 回单状态 1-已取回 0-未取回 只有已取回的才能下载
* settleBusinessReferenceCode 业务参考号
* @return List<ElecResponseDTO>
* bucketFileUrl 回单下载地址
* billFileName 回单文件名称
* settleBusinessReferenceCode 业务参考号
*/
@Override
public List<ElecResponseDTO> queryElecBill(ElecRequestDTO elecRequestDTO) {
if (null == elecRequestDTO){
elecRequestDTO = new ElecRequestDTO();
}
if (StrUtil.isEmpty(elecRequestDTO.getStartDate())){
elecRequestDTO.setStartDate(DateUtil.today());
}
if (StrUtil.isEmpty(elecRequestDTO.getEndDate())){
elecRequestDTO.setEndDate(DateUtil.today());
}
String params = JSON.toJSONString(elecRequestDTO, SerializerFeature.WRITE_MAP_NULL_FEATURES, SerializerFeature.QuoteFieldNames);
logger.info("电子回单查询请求参数为:{}", params);
Map<String, String> headerMap = MapBuilder.<String, String>create(true)
.put("apiCode", "8000260005")
.put("publicKey","ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj")
.put("secretKey","7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")
.put("appId","800026")
.build();
String body = HttpRequest.post("http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterfaceToESB").addHeaders(headerMap).body(params).timeout(60000).execute().body();
String result = decryptResBody(body);
if (StrUtil.isNotEmpty(result)){
CbsResponseDTO cbsResponseDTO = JSONObject.parseObject(result, CbsResponseDTO.class);
if (null != cbsResponseDTO){
if (CollectionUtils.isNotEmpty(cbsResponseDTO.getData())){
List<JSONObject> dataList = cbsResponseDTO.getData();
if (CollectionUtils.isNotEmpty(dataList)){
JSONObject jsonObject = dataList.get(0);
CbsResDataDTO dataDTO = JSON.toJavaObject(jsonObject, CbsResDataDTO.class);
List<ElecResponseDTO> elecResponseDTOList = CBSUtil.convertJsonArrayToList(dataDTO.getList(), ElecResponseDTO.class);
return elecResponseDTOList;
}
}
}
}
return null;
}
/**
* 查询交易明细
*
* @param transactionDetailReqDTO
* @return
*/
@Override
public CbsResDataDTO queryTransactionDetail(TransactionDetailReqDTO transactionDetailReqDTO) {
//页码
int currentPage = transactionDetailReqDTO.getCurrentPage();
//每页条数
int pageSize = transactionDetailReqDTO.getPageSize();
if (currentPage == 0){
currentPage = CBSUtil.DEFAULT_CURRENT_PAGE;
transactionDetailReqDTO.setCurrentPage(currentPage);//页码
}
if (pageSize == 0){
pageSize = CBSUtil.DEFAULT_PAGE_SIZE;
transactionDetailReqDTO.setPageSize(pageSize);
}
if (StrUtil.isNotEmpty(transactionDetailReqDTO.getStartDate())){
transactionDetailReqDTO.setStartDate(DateUtil.today());
}
if (StrUtil.isNotEmpty(transactionDetailReqDTO.getEndDate())){
transactionDetailReqDTO.setEndDate(DateUtil.today());
}
String params = JSON.toJSONString(transactionDetailReqDTO);
Map<String, String> headerMap = MapBuilder.<String, String>create(true)
.put("apiCode", "8000260006")
.put("publicKey","ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj")
.put("secretKey","7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")
.put("appId","800026")
.build();
String body = HttpRequest.post("http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterfaceToESB").addHeaders(headerMap).body(params).timeout(60000).execute().body();
String result = decryptResBody(body);
if (StrUtil.isNotEmpty(result)){
CbsResponseDTO cbsResponseDTO = JSONObject.parseObject(result, CbsResponseDTO.class);
if (null != cbsResponseDTO){
if (CollectionUtils.isNotEmpty(cbsResponseDTO.getData())){
List<JSONObject> list = cbsResponseDTO.getData();
if (CollectionUtils.isNotEmpty(list)){
JSONObject jsonObject = list.get(0);
CbsResDataDTO dataDTO = JSON.toJavaObject(jsonObject, CbsResDataDTO.class);
return dataDTO;
}
}
}
}
return new CbsResDataDTO();
}
/**
* 代发代扣 支付申请
* @param paymentApplySubmitReqDTO
* @param paymentApplyAgentList
*/
@Override
public PayResponseDTO agentPayApply(PaymentApplySubmitReqDTO paymentApplySubmitReqDTO, List<PaymentApplyAgentDTO> paymentApplyAgentList) {
AgentPayRequestDTO param = new AgentPayRequestDTO();
param.setPaymentApplySubmitReqDTO(paymentApplySubmitReqDTO);
param.setPaymentApplyAgentDTO(paymentApplyAgentList);
String params = JSON.toJSONString(param);
Map<String, String> headerMap = MapBuilder.<String, String>create(true)
.put("apiCode", "8000260003")
.put("publicKey","ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj")
.put("secretKey","7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")
.put("appId","800026")
.build();
String body = HttpRequest.post("http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterfaceToESB").addHeaders(headerMap).body(params).timeout(60000).execute().body();
String result = decryptResBody(body);
if (StrUtil.isNotEmpty(result)){
CbsResponseDTO cbsResponseDTO = JSONObject.parseObject(result, CbsResponseDTO.class);
List<JSONObject> dataList = cbsResponseDTO.getData();
if (CollectionUtils.isNotEmpty(dataList)){
JSONObject o = dataList.get(0);
PayResponseDTO payResponseDTO = JSON.toJavaObject(o, PayResponseDTO.class);
return payResponseDTO;
}
}
return new PayResponseDTO();
}
/**
* 代发代扣 详情查询
*
* @param agentPayResultRequestDTO
* @return
*/
@Override
public AgentPayResultResDTO agentPayResult(AgentPayResultRequestDTO agentPayResultRequestDTO) {
Map<String, String> headerMap = MapBuilder.<String, String>create(true)
.put("apiCode", "8000260004")//数智办公
.put("publicKey","ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj")//数智财资
.put("secretKey","7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")
.put("appId","800026")
.build();
String params = JSON.toJSONString(agentPayResultRequestDTO);
String body = HttpRequest.post("http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterfaceToESB").addHeaders(headerMap).body(params).timeout(60000).execute().body();
//解密报文
String result = decryptResBody(body);
if (StrUtil.isNotEmpty(result)){
CbsResponseDTO cbsResponseDTO = JSONObject.parseObject(result, CbsResponseDTO.class);
List<JSONObject> dataList = cbsResponseDTO.getData();
if (CollectionUtils.isNotEmpty(dataList)){
JSONObject o = dataList.get(0);
AgentPayResultResDTO agentPayResultResDTO = JSON.toJavaObject(o, AgentPayResultResDTO.class);
return agentPayResultResDTO;
}
}
return new AgentPayResultResDTO();
}
/**
* 解密响应报文
* @param body
* @return
*/
private String decryptResBody(String body){
if (StrUtil.isNotEmpty(body)){
JsonResultEntity resultEntity = JSONObject.parseObject(body,JsonResultEntity.class);
String bodyBase64 = String.valueOf(resultEntity.getAttribute());
byte[] bodyBytes = Base64.getDecoder().decode(bodyBase64);
//这里验证一下如果系统异常 返回的报文没加密
String test = new String(bodyBytes);
if (JSONUtil.isTypeJSON(test)){
return test;
}
//解密报文
String result = CBSUtil.decrypt(bodyBytes);
logger.info("银行响应参数:{}",result);
return result;
}
return null;
}
}

View File

@ -0,0 +1,187 @@
package com.hzya.frame.cbs8.util;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import org.apache.commons.codec.binary.Base64;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* @Description
* @Author xiangerlin
* @Date 2024/6/7 15:38
**/
@Component
public class CBSUtil {
/**
* 集中支付模式
*/
public static final String CENTRALIZED_PAYMENT_TYPE = "401";
/**
* 分页查询 最大条数
*/
public static final int MAX_PAGE_SIZE = 1000;
/**
* 默认分页查询条数
*/
public static final int DEFAULT_PAGE_SIZE = 100;
/**
* 默认页码
*/
public static final int DEFAULT_CURRENT_PAGE = 1;
static Logger logger = LogManager.getLogger(CBSUtil.class);
/**
* 请求参数格式
*/
public static String TARGET_CONTENT_TYPE = "application/json";
/**
* 签名请求头参数名
*/
public static String SIGN_HEADER_NAME = "X-MBCLOUD-API-SIGN";
/**
* 时间戳请求头参数名
*/
public static String TIMESTAMP_HEADER = "X-MBCLOUD-TIMESTAMP";
public static String ENCRYPTION_ENABLED_HEADER_NAME = "X-MBCLOUD-ENCRYPTION-ENABLED";
public static String X_MBCLOUD_COMPRESS = "X-Mbcloud-Compress";
/**
* 请求头token参数名
*/
public static String AUTHORIZATION = "Authorization";
/**
*token前缀
*/
public static String BEARER = "Bearer ";
/**
* 财资管理云公钥(平台公钥)
*/
public static String bodyEncryptionKey;
/**
* 企业私钥加密
*/
public static String signEncryptionPrivateKey;
/**
* 企业私钥解密
*/
public static String bodyDecryptionKey;
/**
* 财资管理云公钥(平台公钥)
*/
@Value("${cbs8.cbs_public_key:}")
public void setBodyEncryptionKey(String bodyEncryptionKey) {
CBSUtil.bodyEncryptionKey = bodyEncryptionKey;
}
/**
* 企业私钥解密
*/
@Value("${cbs8.ya_private_key:}")
public void setSignEncryptionPrivateKey(String signEncryptionPrivateKey) {
CBSUtil.signEncryptionPrivateKey = signEncryptionPrivateKey;
}
/**
* 企业私钥解密
*/
@Value("${cbs8.ya_private_key:}")
public void setBodyDecryptionKey(String bodyDecryptionKey) {
CBSUtil.bodyDecryptionKey = bodyDecryptionKey;
}
//将json数组转为list
public static <T> List<T> convertJsonArrayToList(List<JSONObject> list, Class<T> clazz) {
String jsonArray = JSON.toJSONString(list);
List<T> result = JSON.parseObject(jsonArray, new TypeReference<List<T>>(clazz) {});
return result;
}
/**
* 将时间戳转换成日期字符串
* @param timestamp
* @return
*/
public static String convertTimestampToString(String timestamp) {
if (StrUtil.isNotEmpty(timestamp) && NumberUtil.isNumber(timestamp)){
// 创建SimpleDateFormat对象指定日期时间格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 将时间戳转换为Date对象
Date date = new Date(Long.valueOf(timestamp));
// 使用SimpleDateFormat格式化Date对象得到字符串表示
return sdf.format(date);
}
return null;
}
/**
* 签名
* @param requestData
* @return
*/
public static String sign(String requestData){
long timestamp = System.currentTimeMillis();
return sign(requestData,timestamp);
}
/**
* 签名
* @param requestData
* @param timestamp
* @return
*/
public static String sign(String requestData,long timestamp){
// 请求数据拼接 报文体+时间戳
byte[] requestDataBytes = requestData.getBytes(StandardCharsets.UTF_8);
byte[] timestampBytes = ("&timestamp=" + timestamp).getBytes(StandardCharsets.UTF_8);
byte[] newBytes = new byte[requestDataBytes.length + timestampBytes.length];
System.arraycopy(requestDataBytes, 0, newBytes, 0, requestDataBytes.length);
System.arraycopy(timestampBytes, 0, newBytes, requestDataBytes.length, timestampBytes.length);
// 生成签名
byte[] signature = SM2Util.sign(signEncryptionPrivateKey, newBytes);
String sign = Base64.encodeBase64String(SM2Util.encodeDERSignature(signature));
logger.info("签名:{}", sign);
return sign;
}
/**
* 加密
* @param requestData
* @return
*/
public static byte[] encrypt(String requestData){
byte[] encrypt = SM2Util.encrypt(bodyEncryptionKey, requestData.getBytes(StandardCharsets.UTF_8));
return encrypt;
}
public static String decrypt(byte[] cipherData){
try {
byte[] decrypt = SM2Util.decrypt(bodyDecryptionKey, cipherData);
String text = new String(decrypt);
return text;
}catch (Exception e){
logger.error("解密失败",e);
e.printStackTrace();
}
return null;
}
}

View File

@ -0,0 +1,140 @@
package com.hzya.frame.cbs8.util;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.web.action.ApplicationContextUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.relational.core.sql.In;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.HashMap;
import java.util.Map;
/**
* @Description cbs token
* @Author xiangerlin
* @Date 2024/6/7 15:56
**/
@Component
public class CbsAccessToken {
private static final Logger logger = LoggerFactory.getLogger(CbsAccessToken.class);
@Value("${cbs8.appId:}")
private String app_id;
@Value("${cbs8.appSecret:}")
private String app_secret;
@Value("${cbs8.url:}")
private String app_url;
private static String appId;
private static String appSecret;
private static String url;
@PostConstruct
public void init() {
appId = app_id;
appSecret = app_secret;
url = app_url;
}
//刷新token用
private static final String BEARER = "Bearer ";
/**
* 过期时间
*/
private Long expiryTime ;
private String token;
private CbsAccessToken(){
}
private static CbsAccessToken cbsAccessToken = new CbsAccessToken();
public static CbsAccessToken getInstance() {
if (null == cbsAccessToken.token){
initToken();
}else {
//判断token有没有过期
if (System.currentTimeMillis() >= cbsAccessToken.expiryTime){
initToken();
}else {
refreshToken();
}
}
return cbsAccessToken;
}
public static String getToken(){
return getInstance().token;
}
/**
* 获取token
*/
private static void initToken(){
CbsAccessToken ct = (CbsAccessToken) ApplicationContextUtil.getBeanByName("cbsAccessToken");
logger.info("开始获取cbstoken");
Map<String,String> param = new HashMap<>();
param.put("app_id",ct.appId);
param.put("app_secret",ct.appSecret);
param.put("grant_type","client_credentials");
String res = HttpRequest.post(ct.url+"/openapi/app/v1/app/token").body(JSONObject.toJSONString(param)).execute().body();
logger.info("获取cbstoken结果",res);
if (StrUtil.isNotEmpty(res) && JSONUtil.isTypeJSON(res)){
JSONObject tokenObject = JSONObject.parseObject(res);
String code = tokenObject.getString("code");//0表示成功
if ("0".equals(code)){
JSONObject dataObj = tokenObject.getJSONObject("data");
if (null != dataObj){
String token = dataObj.getString("token");
//过期时间 单位是秒 30分钟有效
Integer expires = dataObj.getInteger("expires");
cbsAccessToken.token = token;
//提前5分钟让token失效 所以这里设置成过期时间为当前时间+25分钟
cbsAccessToken.expiryTime = System.currentTimeMillis()+1000*60*25L;
}
}
}
}
/**
* 刷新token
*/
private static void refreshToken(){
CbsAccessToken ct = (CbsAccessToken) ApplicationContextUtil.getBeanByName("cbsAccessToken");
//token不为空并且没过期 刷新token
if (null != cbsAccessToken.token && System.currentTimeMillis() < cbsAccessToken.expiryTime ){
String res = HttpRequest.get(ct.url + "/openapi/app/v1/app/refresh-token").header("Authorization", BEARER + cbsAccessToken.token).execute().body();
logger.info("刷新cbstoken结果",res);
if (StrUtil.isNotEmpty(res) && JSONUtil.isTypeJSON(res)){
JSONObject tokenObject = JSONObject.parseObject(res);
String code = tokenObject.getString("code");//0表示成功
if ("0".equals(code)){
JSONObject dataObj = tokenObject.getJSONObject("data");
if (null != dataObj){
//续期的token
String token = dataObj.getString("token");
//新token过期时间 单位是秒 30分钟有效
Integer expires = dataObj.getInteger("expires");
cbsAccessToken.token = token;
//提前5分钟让token失效 所以这里设置成过期时间为当前时间+25分钟
cbsAccessToken.expiryTime = System.currentTimeMillis()+1000*60*25L;
}
}else {
initToken();
}
}
}else {
initToken();
}
}
public static void main(String[] args) {
System.out.println("第1次取token"+getToken());
System.out.println("第2次取token"+getToken());
System.out.println("第3次取token"+getToken());
}
}

View File

@ -0,0 +1,137 @@
package com.hzya.frame.cbs8.util;
/**
* @Description 币种枚举表
* @Author xiangerlin
* @Date 2024/6/25 10:20
**/
public enum CurrencyEnum {
CNY("10", "人民币", "CNY", ""),
ASF("11", "记帐瑞士法朗", "ASF", "ASF"),
BRL("12", "巴西里亚尔", "BRL", "BRL"),
IDR("13", "印度尼西亚卢比", "IDR", "rps"),
INR("14", "印度卢比", "INR", "rs"),
IRR("15", "伊朗里亚尔", "IRR", "ri"),
JOD("16", "约旦第纳尔", "JOD", "jdr"),
KRW("17", "韩国圆", "KRW", "$"),
KWD("18", "科威特第纳尔", "KWD", "kd"),
MOP("19", "澳门元", "MOP", "pat"),
MXN("20", "墨西哥比索", "MXN", "mex$"),
HKD("21", "港币", "HKD", "HK$"),
MYR("22", "马来西亚林吉特", "MYR", "m$"),
NPR("23", "尼泊尔卢比", "NPR", "nrs"),
NZD("24", "新西兰元", "NZD", "$nz"),
PHP("25", "菲律宾比索", "PHP", "phil"),
PKR("26", "巴基斯坦卢比", "PKR", "prs"),
RUB("27", "俄罗斯卢布", "RUB", "RUB"),
AUD("29", "澳元", "AUD", "A$"),
THB("30", "泰国铢", "THB", "bt"),
TWD("31", "台湾元", "TWD", "$"),
USD("32", "美元", "USD", "US$"),
TZS("33", "坦桑尼亚先令", "TZS", "tsh"),
EUR("35", "欧元", "EUR", "EUR"),
CAD("39", "加拿大元", "CAD", "CAN$"),
GBP("43", "英镑", "GBP", ""),
JPY("65", "日元", "JPY", "J"),
SGD("69", "新加坡元", "SGD", "S$"),
NOK("83", "挪威克朗", "NOK", "nkr"),
DKK("85", "丹麦克朗", "DKK", "DKr"),
AED("86", "阿联酋迪拉姆", "AED", "AED"),
CHF("87", "瑞士法朗", "CHF", "SF"),
SEK("88", "瑞典克朗", "SEK", "SKR"),
ZAR("89", "南非兰特", "ZAR", "ZAR"),
AOA("71", "安哥拉宽扎", "AOA", "kz"),
DZD("72", "阿尔及利亚第纳尔", "DZD", "AD."),
GHS("73", "塞地", "GHS", ""),
KES("74", "肯尼亚先令", "KES", "K.Sh"),
NGN("75", "奈拉", "NGN", "N"),
QAR("76", "卡塔尔里亚尔", "QAR", "QR."),
VND("77", "越南盾", "VND", "D."),
PES("78", "新索尔", "PES", "S/."),
PLZ("79", "兹罗提", "PLZ", "ZL."),
TRY("80", "土耳其镑", "TRY", "£T."),
SAR("81", "亚尔", "SAR", "SAR."),
KZT("82", "哈萨克斯坦腾格", "KZT", ""),
CDF("90", "刚果法郎", "CDF", "FC"),
LYD("91", "利比亚第纳尔", "LYD", "LD."),
EGP("92", "埃及镑", "EGP", "£E."),
VEF("93", "委内瑞拉玻利瓦尔", "VEF", "B"),
OMR("94", "阿曼里尔", "OMR", "RO."),
PLN("95", "波兰兹罗提", "PLN", "Zl"),
HUF("96", "匈牙利福林", "HUF", "Ft"),
BDT("97", "孟加拉塔卡", "BDT", "TK"),
LAK("98", "老挝基普", "LAK", "K"),
ZMW("37", "赞比亚克瓦查", "ZMW", "ZM"),
ETB("28", "埃塞俄比亚比尔", "ETB", "Br"),
PRK("34", "巴基斯坦卢比", "PRK", "Rs."),
BND("36", "文莱元", "BND", "B$"),
XOF("38", "西非法郎", "XOF", "XOF"),
PGK("41", "巴布亚新几内亚基纳", "PGK", "PGK"),
LKR("40", "斯里兰卡卢比", "LKR", "LK"),
GNF("46", "几内亚法郎", "GNF", "GNF"),
TND("42", "突尼斯第纳尔", "TND", "TN"),
UZS("44", "乌兹别克斯坦苏姆", "UZS", "UZ"),
XAF("45", "中非法郎", "XAF", "XA"),
SDG("49", "苏丹磅", "SDG", "£S"),
GE("47", "格鲁吉亚拉里", "GEL", "GE"),
MN("48", "蒙图", "MNT", "MN"),
TJS("50", "塔吉克索莫尼", "TJS", "TJS"),
UGX("51", "乌干达先令", "UGX", "UGX"),
CLP("52", "智利比索", "CLP", "CLP"),
MMK("53", "缅元", "MMK", "MMK"),
KHR("54", "柬埔寨瑞尔", "KHR", "KHR"),
BHD("55", "巴林第纳尔", "BHD", "BHD"),
RSD("56", "塞尔维亚第纳尔", "RSD", "RSD"),
KGS("57", "吉尔吉斯斯坦索姆", "KGS", "KGS"),
COP("58", "哥伦比亚比索", "COP", "COP"),
GYD("59", "圭亚那元", "GYD", "GYD"),
ARS("60", "阿根廷比索", "ARS", "ARS"),
CZK("61", "捷克克朗", "CZK", "CZK"),
PEN("62", "秘鲁索尔", "PEN", "PEN"),
RON("63", "罗马尼亚列伊", "RON", "RON"),
UAH("64", "乌克兰格里夫纳", "UAH", "UAH"),
ILS("66", "以色列新谢克尔", "ILS", "ILS"),
IQD("67", "伊拉克第纳尔", "IQD", "IQD"),
ERN("68", "厄立特里亚纳克法", "ERN", "ERN"),
CNH("84", "离岸人民币", "CNH", "CNH"),
MKD("99", "马其顿第纳尔", "MKD", "MKD");
private final String code;
private final String chineseName;
private final String internationalCode;
private final String symbol;
CurrencyEnum(String code, String chineseName, String internationalCode, String symbol) {
this.code = code;
this.chineseName = chineseName;
this.internationalCode = internationalCode;
this.symbol = symbol;
}
public String getCode() {
return code;
}
public String getChineseName() {
return chineseName;
}
public String getInternationalCode() {
return internationalCode;
}
public String getSymbol() {
return symbol;
}
//根据币种code获取币种中文名
public static String getChineseNameByCode(String code) {
for (CurrencyEnum currency : values()) {
if (currency.code.equals(code)) {
return currency.chineseName;
}
}
return null; // 或者抛出异常表示找不到对应的币种
}
}

View File

@ -0,0 +1,73 @@
package com.hzya.frame.cbs8.util;
/**
* @Author:hecan
* @Description:支付类型(支付状态)
* @params:
* @return:
* @Date: 2023/3/14 15:05
*/
public enum PayState {
a("a","待提交直联"),
b("b","已提交直联"),
c("c","银行已受理"),
d("d","银行未受理"),
e("e","可疑"),
f("f","待人工确认"),
g("g","支付成功"),
h("h","支付失败"),
i("i","部分成功"),
j("j","退票"),
k("k","取消支付"),
n("n","其他"),
p("p","支付中"),
q("q","待支付"),
one("1","待处理"),
two("2","审批中"),
three("3","处理失败"),
four("4","审批完成"),
five("5","审批撤销"),
six("6","审批拒绝"),
seven("7","待发送审批"),
eight("8","集中受理中"),
nine("9","审批退回"),
ten("10","预处理中"),
eleven("11","预处理拒绝"),
twelve("12","资金监控审批中");
//类型
private String type;
//
private String value;
PayState(String type, String value){
this.type=type;
this.value=value;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static String payStateGetValue(String type){
for (PayState payState : PayState.values()){
if(payState.getType()==type||payState.getType().equals(type)){
return payState.getValue().toString();
}
}
return null;
}
}

View File

@ -0,0 +1,237 @@
package com.hzya.frame.cbs8.util;
import org.bouncycastle.asn1.*;
import org.bouncycastle.crypto.engines.SM2Engine;
import org.bouncycastle.crypto.params.*;
import org.bouncycastle.crypto.signers.SM2Signer;
import org.bouncycastle.jce.ECNamedCurveTable;
import org.bouncycastle.jce.spec.ECParameterSpec;
import org.bouncycastle.math.ec.ECCurve;
import org.bouncycastle.math.ec.ECPoint;
import org.bouncycastle.util.encoders.Hex;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.ByteArrayInputStream;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.security.SecureRandom;
import java.util.Base64;
import java.util.Enumeration;
/**
* @author: xiang2lin
* @time: 2024/6/14
* @description: SM2加解密工具类
*/
public class SM2Util {
static Logger logger = LoggerFactory.getLogger(SM2Util.class);
private SM2Util() {
throw new IllegalStateException("Utility class");
}
private static final String STD_NAME = "sm2p256v1";
/**
* SM2加密算法
*
* @param publicKey 公钥
* @param data 明文数据
* @return
*/
public static byte[] encrypt(String publicKey, byte[] data) {
ECPublicKeyParameters ecPublicKeyParameters = encodePublicKey(Hex.decode(publicKey));
SM2Engine engine = new SM2Engine();
engine.init(true, new ParametersWithRandom(ecPublicKeyParameters, new SecureRandom()));
byte[] bytes = null;
try {
byte[] cipherText = engine.processBlock(data, 0, data.length);
bytes = C1C2C3ToC1C3C2(cipherText);
} catch (Exception e) {
logger.warn("SM2加密时出现异常:" + e.getMessage());
}
return bytes;
}
/**
* SM2解密算法
*
* @param privateKey 私钥
* @param cipherData 密文数据
* @return
*/
public static byte[] decrypt(String privateKey, byte[] cipherData) {
ECPrivateKeyParameters ecPrivateKeyParameters = encodePrivateKey(Hex.decode(privateKey));
SM2Engine engine = new SM2Engine();
engine.init(false, ecPrivateKeyParameters);
byte[] bytes = null;
try {
cipherData = C1C3C2ToC1C2C3(cipherData);
bytes = engine.processBlock(cipherData, 0, cipherData.length);
} catch (Exception e) {
logger.warn("SM2解密时出现异常:" + e.getMessage());
}
return bytes;
}
/**
* 签名算法
*
* @param privateKey 私钥
* @param data 明文数据
* @return
*/
public static byte[] sign(String privateKey, byte[] data) {
ECPrivateKeyParameters ecPrivateKeyParameters = encodePrivateKey(hexToByte(privateKey));
SM2Signer signer = new SM2Signer();
ParametersWithID parameters = new ParametersWithID(ecPrivateKeyParameters, "1234567812345678".getBytes());
signer.init(true, parameters);
signer.update(data, 0, data.length);
byte[] signature = null;
try {
signature = decodeDERSignature(signer.generateSignature());
} catch (Exception e) {
logger.warn("SM2签名时出现异常:" + e.getMessage());
}
return signature;
}
private static byte[] hexToByte(String hex)
throws IllegalArgumentException {
if (hex.length() % 2 != 0) {
throw new IllegalArgumentException();
}
char[] arr = hex.toCharArray();
byte[] b = new byte[hex.length() / 2];
for (int i = 0, j = 0, l = hex.length(); i < l; i++, j++) {
String swap = "" + arr[i++] + arr[i];
int byteInt = Integer.parseInt(swap, 16) & 0xFF;
b[j] = BigInteger.valueOf(byteInt).byteValue();
}
return b;
}
private static byte[] C1C2C3ToC1C3C2(byte[] cipherText) throws Exception {
if (cipherText != null && cipherText.length >= 97) {
byte[] bytes = new byte[cipherText.length];
System.arraycopy(cipherText, 0, bytes, 0, 65);
System.arraycopy(cipherText, cipherText.length - 32, bytes, 65, 32);
System.arraycopy(cipherText, 65, bytes, 97, cipherText.length - 97);
return bytes;
} else {
throw new Exception("SM2 cipher text error, must be more than 96 bytes and in the format C1||C3||C2.");
}
}
private static byte[] C1C3C2ToC1C2C3(byte[] cipherText) throws Exception {
if (cipherText != null && cipherText.length >= 97) {
byte[] bytes = new byte[cipherText.length];
System.arraycopy(cipherText, 0, bytes, 0, 65);
System.arraycopy(cipherText, 97, bytes, 65, cipherText.length - 97);
System.arraycopy(cipherText, 65, bytes, cipherText.length - 32, 32);
return bytes;
} else {
throw new Exception("SM2 cipher text error, must be more than 96 bytes and in the format C1||C3||C2.");
}
}
private static ECPublicKeyParameters encodePublicKey(byte[] value) {
byte[] x = new byte[32];
byte[] y = new byte[32];
System.arraycopy(value, 1, x, 0, 32);
System.arraycopy(value, 33, y, 0, 32);
BigInteger X = new BigInteger(1, x);
BigInteger Y = new BigInteger(1, y);
ECPoint Q = getSM2Curve().createPoint(X, Y);
return new ECPublicKeyParameters(Q, getECDomainParameters());
}
private static ECCurve getSM2Curve() {
ECParameterSpec spec = ECNamedCurveTable.getParameterSpec(STD_NAME);
return spec.getCurve();
}
private static ECPrivateKeyParameters encodePrivateKey(byte[] value) {
BigInteger d = new BigInteger(1, value);
return new ECPrivateKeyParameters(d, getECDomainParameters());
}
private static ECDomainParameters getECDomainParameters() {
ECParameterSpec spec = ECNamedCurveTable.getParameterSpec(STD_NAME);
return new ECDomainParameters(spec.getCurve(), spec.getG(), spec.getN(), spec.getH(), spec.getSeed());
}
private static byte[] decodeDERSignature(byte[] signature) {
ASN1InputStream stream = new ASN1InputStream(new ByteArrayInputStream(signature));
byte[] bytes = new byte[64];
try {
ASN1Sequence primitive = (ASN1Sequence) stream.readObject();
Enumeration enumeration = primitive.getObjects();
BigInteger R = ((ASN1Integer) enumeration.nextElement()).getValue();
BigInteger S = ((ASN1Integer) enumeration.nextElement()).getValue();
byte[] r = format(R.toByteArray());
byte[] s = format(S.toByteArray());
System.arraycopy(r, 0, bytes, 0, 32);
System.arraycopy(s, 0, bytes, 32, 32);
} catch (Exception e) {
logger.warn("decodeDERSignature时出现异常:" + e.getMessage());
}
return bytes;
}
public static byte[] encodeDERSignature(byte[] signature) {
byte[] r = new byte[32];
byte[] s = new byte[32];
System.arraycopy(signature, 0, r, 0, 32);
System.arraycopy(signature, 32, s, 0, 32);
ASN1EncodableVector vector = new ASN1EncodableVector();
vector.add(new ASN1Integer(new BigInteger(1, r)));
vector.add(new ASN1Integer(new BigInteger(1, s)));
byte[] encoded = null;
try {
encoded = (new DERSequence(vector)).getEncoded();
} catch (Exception e) {
logger.warn("encodeDERSignature时出现异常:" + e.getMessage());
}
return encoded;
}
private static byte[] format(byte[] value) {
if (value.length == 32) {
return value;
} else {
byte[] bytes = new byte[32];
if (value.length > 32) {
System.arraycopy(value, value.length - 32, bytes, 0, 32);
} else {
System.arraycopy(value, 0, bytes, 32 - value.length, value.length);
}
return bytes;
}
}
public static void main(String[] args) {
String requestData = "hello啊";
byte[] encrypt = encrypt("0452d60e72f6a3050d2f8e8f4505f874ef345e15da38fda8dd64b9e756b7231c056dff1674c4826ada424cc78ea36fd58afc50bcefb5d721bf25b179efac2ebb17", requestData.getBytes(StandardCharsets.UTF_8));
String temp = new String(encrypt);
byte[] decrypt = decrypt("c3509b6df8bdaf84c464daa1b6fa11a8fca77b0e4a6f076ee68487f288278a85", encrypt);
System.out.println("解密完成"+new String(decrypt));
String encodeToString = Base64.getEncoder().encodeToString(encrypt);
byte[] decode = Base64.getDecoder().decode(encodeToString);
byte[] decrypt1 = decrypt("c3509b6df8bdaf84c464daa1b6fa11a8fca77b0e4a6f076ee68487f288278a85", decode);
System.out.println("解密完成1"+new String(decrypt1));
String base64 = "eyJtc2ciOiLns7vnu5/lvILluLjvvIzor7fnqI3lkI7lho3or5UiLCJkYXRhIjpudWxsLCJjb2RlIjoiNTAwIn0=";
byte[] decode1 = Base64.getDecoder().decode(base64);
String decode2 = new String(decode1);
byte[] decryptbyte = decrypt("83BA7EC821D35F4CB31FF9A51C1EFA520FC52AF828C2337F88E91CF119B07F44", decode1);
System.out.println("解密完成"+new String(decryptbyte));
}
}

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
</web-app>

View File

@ -8,7 +8,8 @@
<module>base-webapp</module>
<module>base-core</module>
<module>fw-bip</module>
<!-- <module>fw-cbs</module>-->
<module>fw-cbs</module>
<!-- <module>fw-bip</module>-->
<!-- <module>fw-dd</module>-->
<!-- <module>fw-grpU8</module>-->
<!-- <module>fw-nc</module>-->