tysk/tysk_entity/sk_req.go

335 lines
38 KiB
Go
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package tysk_entity
import (
"gitea.cdlsxd.cn/self-tools/tysk/tysk_constant"
)
type (
AccountList []tysk_constant.AccountNo
Page struct {
StartRecord int `json:"startRecord"` //查询开始的记录编号从1开始超过最大记录数将返回空列表
PageNumber int `json:"pageNumber"` //每次查询请求的记录数量最多支持100条记录
}
GetAccountBalanceReq struct {
AccountNo AccountList `json:"userDataList.accountNo"` // 用户有查询权限的银行账号
}
TodayTransHisReq struct {
AccountNo AccountList `json:"userDataList.accountNo"`
TranType tysk_constant.TranType `json:"tranType"` //01:所有 02:账户支出(借) 03:账户收入(贷)
StartRecord int `json:"startRecord"` //查询开始的记录编号从1开始超过最大记录数将返回空列表
PageNumber int `json:"pageNumber"` //每次查询请求的记录数量最多支持100条记录
}
AccountInfoReq struct {
StartRecord int `json:"startRecord"` //查询开始的记录编号从1开始超过最大记录数将返回空列表
PageNumber int `json:"pageNumber"` //每次查询请求的记录数量最多支持100条记录
BlngBnkId *tysk_constant.BankCode `json:"blngBnkId,omitempty"` //所属银行
AccCgyId *tysk_constant.AccCgyId `json:"tranType,omitempty"` //账户性质(原:账户类型),1:一般账户 2:基本账户 3:专用账户 4:临时账户,默认为全部
AccTpId *tysk_constant.AccTpId `json:"accTpId,omitempty"` //存款类型(原:账户种类),1:活期 2:定期 3:通知 4:活期保证金 5:定期保证金,默认为全部
AccStatId *tysk_constant.AccStatId `json:"accStatId,omitempty"` //账户状态,1:正常 2:销户 3:司法冻结 4:普通冻结 5:睡眠 6:挂失 7:冻结,默认为全部
IsOpnDirconId *tysk_constant.IsOpnDirconId `json:"IsOpnDirconId,omitempty"` //联网方式(原:是否直联),1:直联 2:非直联 3:SWIFT,默认为全部
AccCharId *tysk_constant.AccCharId `json:"accCharId,omitempty"` //联网方式(原:是否直联),1:实账户 2:登记簿,默认为全部
AccStyId *tysk_constant.AccStyId `json:"accStyId,omitempty"` //账户类型,0:境内普通账户 1:FTE 2:NRA 3:FTN 4:OSA 5:境外其他账户,默认为全部
IsFrgnAccId *tysk_constant.IsFrgnAccId `json:"isFrgnAccId,omitempty"` //境内/境外,0:境内 1:境外,默认为全部
}
// Request 表示银企直联接口请求参数
ReceiptApplyReq struct {
ClientID string `json:"clientID" validate:"required,max=20"` // 客户查询自定义的流水号,用于查询结果信息,需唯一
AccountNo tysk_constant.AccountNo `json:"userDataList.accountNo"` // 用户有查询权限的银行账号
StartDate string `json:"startDate"` // 查询起始日期(格式:YYYYMMDD)
EndDate string `json:"endDate"` // 查询终止日期(格式:YYYYMMDD)
}
// ReceiptQueryReq 电子回单文件查询请求参数
ReceiptQueryReq struct {
ClientID string `json:"clientID" comment:"记录申请编号" validate:"required,max=20"` // SKEDDRSQ交易流水号(varchar(20),必填,仅支持数字或字母组合)
StartDate string `json:"startDate,omitempty" comment:"查询起始日期"` // 查询开始日期(char(8)选填yyyyMMdd格式默认取申请单起始日期与结束日期间隔≤30天)
EndDate string `json:"endDate,omitempty" comment:"查询结束日期"` // 查询结束日期(char(8)选填yyyyMMdd格式默认取申请单结束日期与开始日期间隔≤30天)
TranType tysk_constant.TranType `json:"tranType,omitempty" comment:"交易类型"` // 交易类型(char(2)选填01-全部交易/02-账户支出/03-账户收入)
StartRecord int `json:"startRecord" comment:"起始记录号" validate:"required,numeric,min=1"` // 查询起始记录编号(char(4)必填从1开始)
PageNumber int `json:"pageNumber" comment:"请求记录条数" validate:"required,numeric,max=100"` // 每页记录数(char(4)必填最大100条)
}
// ReceiptDownloadReq 银企直联接口请求参数
ReceiptDownloadReq struct {
FileType tysk_constant.FileType `json:"fileType,omitempty" comment:"文件格式"` // 文件格式(char(1),选填)PDF/OFD默认PDF
RcptNums []string `json:"userDataList.rcptNum" comment:"回单下载列表" validate:"required,dive"` // 回单下载列表(必填)
}
//TransHisQueryApplyReq 历史明细查询申请
TransHisQueryApplyReq struct {
ClientID string `json:"clientId" comment:"记录申请编号" validate:"required,max=20"` // 客户查询自定义的流水号(varchar(20),必填,仅支持数字或字母组合)
AccountNo tysk_constant.AccountNo `json:"accountNo" comment:"账号" validate:"required,max=40"` // 银行账号(varchar(40)必填允许输入0-9a-zA-Z空格-?:().,'+/,不能首尾空格,至少一个数字)
StartDate string `json:"startDate" comment:"起始日期" validate:"required,len=8"` // 查询开始日期(char(8)必填yyyyMMdd格式与结束日期间隔≤95天)
EndDate string `json:"endDate" comment:"终止日期" validate:"required,len=8"` // 查询结束日期(char(8)必填yyyyMMdd格式与开始日期间隔≤95天)
}
//TransHisQueryReq 历史明细结果查询
TransHisQueryReq struct {
ClientID string `json:"clientId" comment:"记录申请编号" validate:"required,max=20,alphanum"` // 交易申请流水号(varchar(20),必填,仅支持数字或字母组合)
StartDate *string `json:"startDate,omitempty" comment:"起始日期" validate:"omitempty,len=8,datetime=20060102"` // 查询开始日期(char(8)选填yyyyMMdd格式默认取SKTRNHCL输入的起始日期)
EndDate *string `json:"endDate,omitempty" comment:"终止日期" validate:"omitempty,len=8,datetime=20060102"` // 查询结束日期(char(8)选填yyyyMMdd格式默认取SKTRNHCL输入的终止日期)
TranType tysk_constant.TranType `json:"tranType" comment:"交易类型" validate:"required,oneof=01 02 03"` // 交易类型(char(2)必填01-全部交易/02-账户支出/03-账户收入)
StartRecord int `json:"startRecord" comment:"起始记录号" validate:"required,len=4,numeric"` // 查询起始记录编号(char(4)必填从1开始)
PageNumber int `json:"pageNumber" comment:"请求记录条数" validate:"required,len=4,numeric,max=100"` // 每页记录数(char(4)必填最大100条)
}
// BalanceHisQueryApplyReq 历史余额查询申请
BalanceHisQueryApplyReq struct {
ClientID string `json:"clientID" comment:"记录申请编号" validate:"required,max=20,alphanum"` // 客户查询自定义的流水号(varchar(20),必填,仅支持数字或字母组合)
StartDate string `json:"startDate" comment:"起始日期" validate:"required,len=8,datetime=20060102"` // 查询余额范围的开始日期(char(8)必填yyyyMMdd格式)
EndDate string `json:"endDate" comment:"终止日期" validate:"required,len=8,datetime=20060102"` // 查询余额范围的结束日期(char(8)必填yyyyMMdd格式)
AccountNo AccountList `json:"userDataList.accountNo"` // 银行账号列表(varchar(40)必填允许输入0-9a-zA-Z空格-?:().,'+/,不能首尾空格,至少一个数字)
}
// BalanceHisQueryReq 历史余额查询请求
BalanceHisQueryReq struct {
ClientID string `json:"clientID" comment:"记录申请编号" validate:"required,len=20,alphanum"` // 客户查询自定义的流水号(char(20),必填,仅支持数字或字母组合)
StartDate *string `json:"startDate,omitempty" comment:"起始日期" validate:"omitempty,len=8,datetime=20060102,balanceDateRange"` // 查询余额范围的开始日期(char(8)选填yyyyMMdd格式)
EndDate *string `json:"endDate,omitempty" comment:"终止日期" validate:"omitempty,len=8,datetime=20060102,balanceDateRange"` // 查询余额范围的结束日期(char(8)选填yyyyMMdd格式)
StartRecord int `json:"startRecord" comment:"起始记录号" validate:"required,len=4,numeric"` // 查询开始的记录编号(char(4)必填从1开始)
PageNumber int `json:"pageNumber" comment:"请求记录条数" validate:"required,len=4,numeric,max=20"` // 每次查询请求的记录数量(char(4)必填最多支持20条记录)
}
// AccountsTransHisQueryReq 多账户历史明细查询
AccountsTransHisQueryReq struct {
StartDate string `json:"startDate" validate:"required,len=8,datetime=20060102,dateRange"` // 起始日期(char(8)必填yyyyMMdd格式)
EndDate string `json:"endDate" validate:"required,len=8,datetime=20060102,dateRange"` // 终止日期(char(8)必填yyyyMMdd格式)
TranType tysk_constant.TranType `json:"tranType" validate:"required,len=2,oneof=01 02 03"` // 借贷方向(char(2)必填01-全部交易02-借03-贷)
StartRecord int `json:"startRecord" validate:"required,len=4,numeric,min=1"` // 起始记录号(char(4)必填从1开始)
PageNumber int `json:"pageNumber" validate:"required,len=4,numeric,max=100"` // 请求记录条数(char(4)必填最多100条)
AccountNo AccountList `json:"userDataList.accountNo" validate:"required,dive"` // 账号列表(必填最多10个账号)
}
// SinglePayReq 单笔支付
SinglePayReq struct {
ExternalNum string `json:"externalNum" comment:"外部请求流水号" validate:"required,max=50"` // 最大长度为50不能重复
LinkPayFlag *tysk_constant.CommonBool `json:"linkPayFlag,omitempty" comment:"联动支付" validate:"omitempty,oneof=00 01"` // 0001:是 默认为否
PypPartyAccnum tysk_constant.AccountNo `json:"pypartyAccnum" comment:"付方账号" validate:"required,max=32,accountFormat"` // 允许输入特定字符,至少一个数字
RcvPyAccnum tysk_constant.AccountNo `json:"rcvpyAccnum" comment:"收方账号" validate:"required,max=32,accountFormat"` // 允许输入特定字符,至少一个数字
RcvPyAccnm string `json:"rcvpyAccnm" comment:"收方户名" validate:"required,max=300,nameFormat"` // 最大支持长度300汉字占3非汉字占1
IsCheckRcvpartyDepbnkId *tysk_constant.IsCheckRcvpartyDepbnkId `json:"isCheckRcvpartyDepbnkId,omitempty" comment:"是否准确校验开户行行名" validate:"omitempty,oneof=00 01"` // 00:是  01否 默认为是 当该字段为00是时同时传入开户行行名和联行号以联行号为准 当该字段为01否时同时传入开户行行名和联行号以联行号为准只传入开户行行名直接返显开户行不再校验开户行行名在境内网点表是否存在若用户上送的开户行行名匹配不上所属银行则【收方银行】展示--,【是否跨行】字段,若用户上送,则以用户上送的为准,若用户未上送,收方银行为空,则无法按照收付方银行判断出是否跨行,则是否跨行默认为是;若用户上送的开户行行名匹配不出联行号时,则【收方联行号】、【收方地区】展示为--;只传入联行号,以联行号为准。
RcvPartyDepbnkId *string `json:"rcvpartyDepbnkId,omitempty" comment:"收方开户行" validate:"omitempty,max=80"` // 收方开户行 ,收方开户行和收方联行号选择一个输入即可 付款种类对私付款且账户为银联卡时可根据卡BIN号识别收方开户行、收方联行号字段两字段不必输非空情况以上送值为准
RcvPartyBnkgId *string `json:"rcvpartyBnkgId,omitempty" comment:"收方联行号" validate:"omitempty,max=40"` // 收方联行号
TxnCntprTp *tysk_constant.TxnCntprTp `json:"txnCntprTp" comment:"交易对手类型" validate:"omitempty,oneof=01 02 03 04"` // 客户:01 供应商:02 经销商:03 其他:04
PyAccTp tysk_constant.PyAccTp `json:"pyAccTp,omitempty" comment:"付款种类" validate:"required,oneof=00 01"` // 00对公 01对私
Amt float64 `json:"amt" comment:"付款金额" validate:"required,numeric,min=0.01,max=9999999999999.99"` // 整数最长13位2位小数
CurrencyID string `json:"currencyID" comment:"币种" validate:"required,oneof=CNY"` // 币种仅支持人民币CNY
IsInterbnk *tysk_constant.CommonBool `json:"isInterbnk,omitempty" comment:"是否跨行" validate:"omitempty,oneof=00 01"` // 00不跨行 01跨行
UrgntAprvFlag *tysk_constant.CommonBool `json:"urgntAprvFlag,omitempty" comment:"加急审批" validate:"omitempty,oneof=00 01"` // 0001:是 默认为否
PyTmlnsFlag *tysk_constant.CommonBool `json:"pyTmlnsFlag,omitempty" comment:"预约付款" validate:"omitempty,oneof=00 01"` // 00否 01:是 默认为否,是否预约付款状态为01预约时间必填
RsrvtnTms *string `json:"rsrvtnTms,omitempty" comment:"预约时间" validate:"omitempty,datetime=2006-01-02 15:04,timeRange"` // 预约时间格式 yyyy-MM-dd HH:mm时间范围06:00-22:00
Pscpt string `json:"pscpt" comment:"附言" validate:"required,max=300,noteFormat"` // 银行附言最大支持长度300汉字占3非汉字占1,不同付方银行支持附言长度不同
Rmrk *string `json:"rmrk,omitempty" comment:"备注" validate:"omitempty,max=120"` // 最大长度为120
Rmrk1 *string `json:"rmrk1,omitempty" comment:"备用字段1" validate:"omitempty,max=600"` // 最大长度为600
Rmrk2 *string `json:"rmrk2,omitempty" comment:"备用字段2" validate:"omitempty,max=600"` // 最大长度为600
Rmrk3 *string `json:"rmrk3,omitempty" comment:"备用字段3" validate:"omitempty,max=600"` // 最大长度为600
Rmrk4 *string `json:"rmrk4,omitempty" comment:"备用字段4" validate:"omitempty,max=600"` // 最大长度为600
}
// SinglePayQueryReq 单笔付款查证
SinglePayQueryReq struct {
ExternalNum string `json:"externalNum" comment:"外部请求流水号" validate:"required,max=50"` // 最大长度为50不能重复
}
// BatchPayReq 批量付款请求结构体
BatchPayReq struct {
ExternalBatNum string `json:"externalBatNum" validate:"required,max=30"` // 外部请求批次号
LinkPayFlag *tysk_constant.CommonBool `json:"linkPayFlag,omitempty" validate:"omitempty,oneof=00 01"` // 联动支付标志
PyPartyAccNum tysk_constant.AccountNo `json:"pypartyAccnum" validate:"required,max=32,account"` // 付方账号
CurrencyID string `json:"currencyID" validate:"required,oneof=CNY"` // 币种(只支持CNY)
TotNbr int `json:"totNbr" validate:"required,len=4,numeric,max=1000"` // 付款总笔数
Amt float64 `json:"amt" validate:"required,numeric,len=15"` // 付款总金额(decimal(15,2))
UrgntAprvFlag *tysk_constant.CommonBool `json:"urgntAprvFlag,omitempty" validate:"required,oneof=00 01"` // 0001:是 默认为否
RsrvtnFlag *tysk_constant.CommonBool `json:"rsrvtnFlag,omitempty" validate:"required,oneof=00 01"` // 00否 01:是 默认为否,是否预约付款状态为01预约时间必填
RsrvtnTms *string `json:"rsrvtnTms,omitempty" validate:"omitempty,datetime=2006-01-02 15:04"` // 预约时间 yyyy-MM-dd HH:mm时间范围06:00-22:00
CheckMode *tysk_constant.CheckMode `json:"checkMode,omitempty" validate:"omitempty,oneof=01 02"` // 明细校验处理模式,整批验证模式 01即现有处理模式当批次内存在一条明细验证不通过时整批状态失败不入库接口返回批次失败及错误信息。 明细验证模式02新模式当批次内存在一条明细验证不通过时跳过该异常明细继续执行后续明细验证验证通过的明细进行入库根据外部请求批次号、外部请求流水号进行保存同时接口返回部分成功及部分失败明细的条目信息后续操作逻辑、业务规则未发生变化
List []BatchPayList `json:"debitList" validate:"required,dive"` // 付款明细列表
}
BatchPayList struct {
ExternalNum string `json:"externalNum" validate:"required,max=50"` // 外部请求流水号
RcvPyAccNum tysk_constant.AccountNo `json:"rcvpyAccnum" validate:"required,max=32,account"` // 收方账号
RcvPyAccNm tysk_constant.AccountNo `json:"rcvpyAccnm" validate:"required,max=300,name"` // 收方户名
IsInterBnk *tysk_constant.CommonBool `json:"isInterbnk,omitempty" validate:"omitempty,oneof=00 01"` // 是否跨行
IsCheckRcvPartyDepBnkId *tysk_constant.IsCheckRcvpartyDepbnkId `json:"isCheckRcvpartyDepbnkId,omitempty" validate:"omitempty,oneof=00 01"` // 是否准确校验开户行行名 00:是 01否 默认为是, 当该字段为00是时
RcvPartyDepBnkId *string `json:"rcvpartyDepbnkId,omitempty" validate:"omitempty,max=80"` // 收方开户行 ,收方开户行和收方联行号选择一个输入即可 付款种类对私付款且账户为银联卡时可根据卡BIN号识别收方开户行、收方联行号字段两字段不必输非空情况以上送值为准
RcvPartyBnkgId *string `json:"rcvpartyBnkgId,omitempty" validate:"omitempty,max=40"` // 收方联行号
TxnCntprTp *tysk_constant.TxnCntprTp `json:"txnCntprTp,omitempty" validate:"omitempty,oneof=01 02 03 04"` // 交易对手类型
PyAccTp tysk_constant.PyAccTp `json:"pyAccTp" validate:"required,oneof=00 01"` // 付款种类
DebitAmt float64 `json:"debitAmt" validate:"required,numeric,len=15"` // 付款金额(decimal(15,2))
Pscpt string `json:"pscpt" validate:"required,max=300,note"` // 附言最大支持长度300汉字占3非汉字占1,不同付方银行支持附言长度不同
Rmrk *string `json:"rmrk,omitempty" validate:"omitempty,max=120"` // 备注
}
BatchPayQueryReq struct {
ExternalBatNum string `json:"externalBatNum" validate:"required,max=30"` // 外部请求批次号(varchar(30),必填)
List []BatchPayQueryReqTransaction `json:"extNumList.externalNum" validate:"dive"` // 交易明细列表
}
BatchPayQueryReqTransaction struct {
ExternalNum string `json:"externalNum,omitempty" validate:"max=50"` // 外部请求流水号(varchar(50),选填)
}
// PayArrangeReq 排款
PayArrangeReq struct {
FndarBatNum string `json:"fndarBatNum" validate:"required,max=30"` // 外部排款批次号
PypartyAccnum tysk_constant.AccountNo `json:"pypartyAccnum" validate:"required"` // 付方账号
BusinessType *string `json:"businessType,omitempty" validate:"max=30"` // 业务类型
SettlementMode *tysk_constant.SettlementMode `json:"settlementMode,omitempty" validate:"omitempty"` // 结算方式01支付转账 02 银承开票 03 商承开票 04银承转让 05商承转让 06 现金支票 07转账支票 08 银行保函 09信用证 0A 银行汇票 0B银行本票0C供应链凭证支付0D项目贷支付10其他不传默认01支付转账
PayRat *string `json:"payRat,omitempty" validate:"omitempty"` // 排款份额(JSON格式),参考:@struct PayRatItem
PayDt string `json:"payDt" validate:"required,datetime=2006-01-02"` // 应付日期(yyyy-MM-dd)
LinkPayFlag *tysk_constant.CommonBool `json:"linkPayFlag,omitempty" validate:"omitempty,oneof=00 01"` // 联动支付标志
List []PayArrangeList `json:"fndarList" validate:"required,dive"` // 交易明细列表
}
PayArrangeList struct {
FndarNum string `json:"fndarNum" validate:"required,max=50"` // 外部排款流水号
RcvpyAccnum tysk_constant.AccountNo `json:"rcvpyAccnum" validate:"required"` // 收方账号
RcvpyAccnm string `json:"rcvpyAccnm" validate:"required,max=300"` // 收方户名
RcvpartyDepbnkId *string `json:"rcvpartyDepbnkId,omitempty" validate:"omitempty,max=80"` // 收方开户行,收方开户行和收方联行号选择一个输入即可 付款种类对私付款且账户为银联卡时可根据卡BIN号识别收方开户行、收方联行号字段两字段不必输非空情况以上送值为准
RcvpartyBnkgId *string `json:"rcvpartyBnkgId,omitempty" validate:"omitempty,max=40"` // 收方联行号
TxnCntprTp *tysk_constant.TxnCntprTp `json:"txnCntprTp,omitempty" validate:"omitempty,oneof=01 02 03 04"` // 交易对手类型
PyAccTp tysk_constant.PyAccTp `json:"pyAccTp" validate:"required,oneof=00 01"` // 付款种类
Amt float64 `json:"amt" validate:"required,numeric"` // 付款金额
CurrencyID string `json:"currencyID" validate:"required,oneof=CNY"` // 币种
Pscpt string `json:"pscpt" validate:"required,max=300` // 附言
Rmrk *string `json:"rmrk,omitempty" validate:"omitempty,max=120"` // 备注
Rmrk1 *string `json:"rmrk1,omitempty" validate:"omitempty,max=600"` // 备用字段1
Rmrk2 *string `json:"rmrk2,omitempty" validate:"omitempty,max=600"` // 备用字段2
Rmrk3 *string `json:"rmrk3,omitempty" validate:"omitempty,max=600"` // 备用字段3
Rmrk4 *string `json:"rmrk4,omitempty" validate:"omitempty,max=600"` // 备用字段4
}
// PayRatItem 排款份额明细项
PayRatItem struct {
Pcode string `json:"pcode" validate:"required,max=2"` // 支付代码
Pamt string `json:"pamt" validate:"required,numeric"` // 支付金额
PayAccNum string `json:"payAccNum" validate:"required"` // 支付账号
}
// PayArrangeQueryReq 排款查证
PayArrangeQueryReq struct {
FndarBatNum string `json:"fndarBatNum" validate:"required,max=30"` // 外部排款批次号
}
// PayArrangeBillQueryReq 排款票据信息查询
PayArrangeBillQueryReq struct {
FndarBatNum string `json:"fndarBatNum" validate:"required,max=30"` // 外部排款批次号(varchar(30),必填)
SubTaskNum *string `json:"subTaskNum" validate:"omitempty,max=100"` // 子任务编号(varchar(100),非必填)
StartRecord int `json:"startRecord" validate:"required,len=4,numeric,min=1"` // 起始记录号(varchar(4)必填从1开始)
PageNumber int `json:"pageNumber" validate:"required,len=4,numeric,max=20"` // 请求记录条数(varchar(4)必填最大20)
}
//BatchesPayArrangeBillQueryReq 多批次排款票据查询
BatchesPayArrangeBillQueryReq struct {
FndarBatNum *string `json:"fndarBatNum" validate:"omitempty,max=30"` // 外部排款批次号(varchar(30),非必填)
SubTaskNum *string `json:"subTaskNum" validate:"omitempty,max=100"` // 子任务编号(varchar(100),非必填)
StartRecord int `json:"startRecord" validate:"required,len=4,numeric,min=1"` // 起始记录号(varchar(4)必填从1开始)
PageNumber int `json:"pageNumber" validate:"required,len=4,numeric,max=100"` // 请求记录条数(varchar(4)必填最大100)
StartDate string `json:"startDate" validate:"required,len=8,datetime=20060102"` // 起始日期(char(8)必填YYYYMMDD格式)
EndDate string `json:"endDate" validate:"required,len=8,datetime=20060102"` // 终止日期(char(8)必填YYYYMMDD格式与StartDate跨度≤30天)
}
//TGBPayReq 团金宝付款
TGBPayReq struct {
ExternalBatNum string `json:"externalBatNum" validate:"required,max=30"` // 外部请求批次号(varchar(30),必填,不能重复)
LinkPayFlag *tysk_constant.CommonBool `json:"linkPayFlag" validate:"omitempty,oneof=00 01"` // 联动支付(char(2),可选,默认"00")
PypartyAccnum tysk_constant.AccountNo `json:"pypartyAccnum" validate:"required,max=32,alphanumHyphen"` // 付方账号(varchar(32),必填,允许特定字符)
CurrencyID string `json:"currencyID" validate:"required,len=3"` // 币种(varchar(5),必填,暂仅支持人民币"CNY")
TotNbr int `json:"totNbr" validate:"required,len=4,numeric,max=1000"` // 付款总笔数(char(4)必填最大1000)
Amt float64 `json:"amt" validate:"required,decimal"` // 付款总金额(decimal(15,2),必填)
ItlgPayrollType tysk_constant.CommonBool `json:"itlgPayrollType" validate:"required,oneof=00 01"` // 是否代发(char(2),必填) 0001:是
ItlgPreparType tysk_constant.ItlgPreparType `json:"itlgPreparType" validate:"required,oneof=0 1"` // 记账方式(char(1),必填)0-单笔记账1-合笔记账
ItlgRefundFlag tysk_constant.ItlgRefundFlag `json:"itlgRefundFlag" validate:"required,oneof=0 1"` // 退款方式(char(1),必填)0-单笔退款1-合并退款
UrgntAprvFlag *tysk_constant.CommonBool `json:"urgntAprvFlag" validate:"omitempty,oneof=00 01"` // 加急审批(char(2),可选,默认"00")
RsrvtnFlag *tysk_constant.CommonBool `json:"rsrvtnFlag" validate:"omitempty,oneof=00 01"` // 预约付款(char(2),可选,默认"00")
RsrvtnTms *string `json:"rsrvtnTms" validate:"omitempty,datetime=2006-01-02 15:04:05,timeRange"` // 预约时间(varchar(19),可选)
BatPscpt string `json:"batPscpt" validate:"required,max=60"` // 批次附言(varchar(60),必填)
BatRmrk *string `json:"batRmrk" validate:"omitempty,max=50"` // 批次备注(varchar(50),可选)
List []TGBPayReqRow `json:"debitList" validate:"required,dive"` // 交易明细列表(必填)
}
TGBPayReqRow struct {
ExternalNum string `json:"externalNum" validate:"required,max=50"` // 外部请求流水号(varchar(50),必填,同批次内不重复)
RcvpyAccnum tysk_constant.AccountNo `json:"rcvpyAccnum" validate:"required,max=32,"` // 收方账号(varchar(32),必填,允许特定字符)
RcvpyAccnm string `json:"rcvpyAccnm" validate:"required,max=300,"` // 收方户名(varchar(300),必填,支持汉字/非汉字长度计算)
RcvpartyDepbnkId *string `json:"rcvpartyDepbnkId" validate:"omitempty,max=80"` // 收方开户行(varchar(80),可选)
RcvpartyBnkgId *string `json:"rcvpartyBnkgId" validate:"omitempty,max=40"` // 收方联行号(varchar(40),可选)
DebitAmt float64 `json:"debitAmt" validate:"required,decimal"` // 付款金额(decimal(15,2),必填)
Pscpt string `json:"pscpt" validate:"required,max=300,"` // 附言(varchar(300),必填,支持汉字/非汉字长度计算)
Rmrk *string `json:"rmrk" validate:"omitempty,max=120"` // 备注(varchar(120),可选)
}
//RefundTransQueryReq 退汇交易查询
RefundTransQueryReq struct {
StartRecord int `json:"startRecord" validate:"required,len=4,numeric,min=1"` // 起始记录号(varchar(4)必填从1开始)
PageNumber int `json:"pageNumber" validate:"required,len=4,numeric,max=100"` // 请求记录条数(varchar(4)必填最大100)
StartDate string `json:"startDate" validate:"required,len=8,datetime=20060102"` // 起始日期(char(8)必填YYYYMMDD格式)
EndDate string `json:"endDate" validate:"required,len=8,datetime=20060102"` // 终止日期(char(8)必填YYYYMMDD格式与StartDate跨度≤30天)
AccountNo AccountList `json:"userDataList.accountNo"` // 用户有查询权限的银行账号
}
//BatchSalarySendReq 3.2.11批量代发(薪酬代发)
BatchSalarySendReq struct {
ExternalBatNum string `json:"externalBatNum" validate:"required,max=30"` // 外部请求批次号
LinkPayFlag *tysk_constant.CommonBool `json:"linkPayFlag" validate:"omitempty,len=2,oneof=00 01"` // 联动支付(默认00)
PypartyAccnum tysk_constant.AccountNo `json:"pypartyAccnum" validate:"required,max=32,account"` // 付方账号
CurrencyID string `json:"currencyID" validate:"required,len=3,oneof=CNY"` // 币种(暂仅支持CNY)
TotNbr int `json:"totNbr" validate:"required,len=4,numeric,max=1000"` // 付款总笔数
Amt float64 `json:"amt" validate:"required,numeric,amt"` // 付款总金额(15,2)
PayrollDt string `json:"payrollDt,omitempty" validate:"omitempty,len=6,datetime=200601"` // 代发月份(yyyyMM)使用中银行代发、中原银行、齐鲁银行代发、工商银行代发、兴业银行代发代发时必填 格式yyyyMM
UrgntAprvFlag *tysk_constant.CommonBool `json:"urgntAprvFlag,omitempty" validate:"omitempty,len=2,oneof=00 01"` // 加急审批(默认00)
RsrvtnFlag *tysk_constant.CommonBool `json:"rsrvtnFlag,omitempty" validate:"omitempty,len=2,oneof=00 01"` // 预约付款(默认00)
RsrvtnTms *string `json:"rsrvtnTms,omitempty" validate:"omitempty,datetime=2006-01-02 15:04:05,timeRange=06:00-22:00"` // 预约时间是否预约付款状态为01预约时间必填预约时间年月日格式为 yyyy-MM-dd 时分格式为枚举值 06:00-22:00任一时间
BatPscpt string `json:"batPscpt" validate:"required,max=60"` // 批次附言
PayrollUse *string `json:"payrollUse,omitempty" validate:"omitempty,max=60,dictCheck"` // 代发用途(银行特定要求)付款行为交行时,必输,传入交行签约类型编码; 付款行为建行、浦发银行、兴业银行、工商银行、招商银行、平安银行、中国银行、农行、民生、光大、广发、渤海、华夏、无锡农村商业银行、山西农信社、徽商银行、西安银行、中信银行等时,必输,传入代发用途;(其中中信银行增加默认值1代发工资) 付款行为威海银行时代发用途默认为“0002-代发工资”
ExtField1 *string `json:"extField1,omitempty" validate:"omitempty,max=60"` // 扩展字段1付款行为交行时必输传入交行协议编号 付款行为平安时,非必输,传入平安协议编号; 付款行为建行时,必输,传入代发项目; 上述字典码值信息必须在司库系统-公共中心-数据字典-结算中心数据字典功能可查询到详见附录薪酬代发银行代发项目、代发用途码表
List []BatchSalarySendRow `json:"debitList" validate:"required,dive"` // 付款明细列表
}
BatchSalarySendRow struct {
ExternalNum string `json:"externalNum" validate:"required,max=50"` // 外部请求流水号
RcvpyAccnum tysk_constant.AccountNo `json:"rcvpyAccnum" validate:"required,max=32,account"` // 收方账号
RcvpyAccnm string `json:"rcvpyAccnm" validate:"required,max=300,name"` // 收方户名
RcvpartyDepbnkId *string `json:"rcvpartyDepbnkId,omitempty" validate:"omitempty,max=80"` // 收方开户行
RcvpartyBnkgId *string `json:"rcvpartyBnkgId,omitempty" validate:"omitempty,max=40"` // 收方联行号
DebitAmt float64 `json:"debitAmt" validate:"required,numeric,amt"` // 付款金额(15,2)
Pscpt string `json:"pscpt" validate:"required,max=300,remark"` // 附言
Rmrk string `json:"rmrk,omitempty" validate:"omitempty,max=120"` // 备注
}
//BankInfoQueryReq 境内银行网点信息查询
BankInfoQueryReq struct {
BankCode string `json:"bankCode,omitempty" validate:"omitempty,max=10" comment:"银行类别编码"` // 银行类别编码(varchar(10))与areaId至少输入一个
AreaID string `json:"areaId,omitempty" validate:"omitempty,max=4" comment:"区域编码"` // 区域编码(varchar(4))与bankCode至少输入一个
SkRecordNum int `json:"sk_recordNum" validate:"required,max=4" comment:"分页条数"` // 分页条数(varchar(4))
SkStartNo int `json:"sk_startNo" validate:"required,max=4" comment:"分页起始序号"` // 分页起始序号(varchar(4))
}
// BillListReq 3.4.1票据列表查询
BillListReq struct {
QueryType tysk_constant.QueryType `json:"queryType" validate:"required,len=2,oneof=00 01 02"` // 查询类型00持有01申请02签收
BsnTp *string `json:"bsnTp" validate:"validBsnTp"` // 业务种类(多选用逗号分隔)17-提示付款,18-供应链票据付款,51-出票登记,52-提示承兑,53-提示收票,54-未用退回,55-保证申请,56-背书转让,57-贴现申请,58-回购式贴现赎回,59-质押,60-质押解除,61-追索通知,62-同意清偿,63-线下追偿登记,64-不得转让标记撤销,65-票据查验,24-到期前提示付款,72-到期后质押解除,支持多选用“,”隔开
List *[]BillListReqRow `json:"queryBillParam" validate:"dive"` // 查询条件列表
MinAmt *float64 `json:"minAmt" validate:"omitempty"` // 最小金额(可选)
MaxAmt *float64 `json:"maxAmt" validate:"omitempty"` // 最大金额(可选)
ExpDtStart *string `json:"expDtStart" validate:"omitempty,datetime=2006-01-02"` // 到期日起始日期
ExpDtEnd *string `json:"expDtEnd" validate:"omitempty,datetime=2006-01-02"` // 到期日截止日期
StartRecord int `json:"startRecord" validate:"required,len=10,numeric"` // 起始记录号(从1开始)
PageNumber int `json:"pageNumber" validate:"required,len=4,numeric,max=200"` // 请求记录条数(最多200条)
}
BillListReqRow struct {
SignAcc string `json:"signAcc,omitempty" validate:"omitempty,max=40"` // 签约账号(可选)
BillPkgId string `json:"billPkgId,omitempty" validate:"omitempty,max=30"` // 票据包号(可选)
}
// BillDetailReq 票据详情
BillDetailReq struct {
SignAcc string `json:"signAcc" validate:"required,max=40"` // 签约账号
BillPkgId string `json:"billPkgId" validate:"required,max=30"` // 票据包号
SubBillRng string `json:"subBillRng,omitempty" validate:"omitempty"` // 子票区间(新一代电票必输)格式为000000000001,000001010110
}
)