refactor(model):优化分账相关模型结构体字段类型

- 将 ApplyBindReqData 中 Attachments 字段类型改为 []*ApplyBindAttachment- 新增 ApplyBindAttachment 结构体统一附件信息定义
- 将 ApplyLedgerMerReqData 中 Attachments 字段类型改为 []*ApplyBindAttachment- 将 ApplyLedgerReceiver 中 AttachList 字段类型改为 []*ApplyBindAttachment- 将 PreorderResponse 中 ReqData 字段指针化避免拷贝
- 将 ReqData 中 AccRespFields 字段指针化提升性能
- 将 QueryLedgerMerResponse 中 BindRelations 字段类型改为 []*BindRelation
- 调整字段注释格式增强可读性- 统一结构体字段命名风格提高一致性
menu v1.0.3
maguodong 2025-10-09 17:56:31 +08:00
parent 1e5214abfb
commit 0aa9bc80ec
5 changed files with 47 additions and 57 deletions

View File

@ -15,20 +15,22 @@ type ApplyBindRequest struct {
// 包含分账关系绑定所需的详细业务参数 // 包含分账关系绑定所需的详细业务参数
type ApplyBindReqData struct { type ApplyBindReqData struct {
Version string `json:"version"` // 接口版本号必传长度8取值说明1.0 Version string `json:"version"` // 接口版本号必传长度8取值说明1.0
OrderNo string `json:"orderNo"` // 订单编号必传长度32用于后续跟踪排查问题及核对报文格式为14位年月日(24小时制)分秒+8位随机数不重复 OrderNo string `json:"orderNo"` // 订单编号必传长度32用于后续跟踪排查问题及核对报文格式为14位年月日(24小时制)分秒+8位随机数不重复
OrgCode string `json:"orgCode"` // 分账接收方所属机构代码必传长度32 OrgCode string `json:"orgCode"` // 分账接收方所属机构代码必传长度32
MerInnerNo string `json:"merInnerNo"` // 分账商户内部商户号必传长度32与MerCupNo选传其一不能都为空 MerInnerNo string `json:"merInnerNo"` // 分账商户内部商户号必传长度32与MerCupNo选传其一不能都为空
MerCupNo string `json:"merCupNo"` // 分账商户银联商户号必传长度32与MerInnerNo选传其一不能都为空 MerCupNo string `json:"merCupNo"` // 分账商户银联商户号必传长度32与MerInnerNo选传其一不能都为空
ReceiverNo string `json:"receiverNo"` // 分账接收方编号必传长度32 ReceiverNo string `json:"receiverNo"` // 分账接收方编号必传长度32
EntrustFileName string `json:"entrustFileName"` // 合作协议附件名称必传长度32 EntrustFileName string `json:"entrustFileName"` // 合作协议附件名称必传长度32
EntrustFilePath string `json:"entrustFilePath"` // 合作协议附件路径必传长度32通过调用附件上传接口获取 EntrustFilePath string `json:"entrustFilePath"` // 合作协议附件路径必传长度32通过调用附件上传接口获取
RetUrl string `json:"retUrl"` // 回调通知地址必传长度128审核通过后通知地址 RetUrl string `json:"retUrl"` // 回调通知地址必传长度128审核通过后通知地址
Attachments []struct { Attachments []*ApplyBindAttachment `json:"attachments,omitempty"` // 附加资料,可选,集合类型,其他附加资料文件信息
AttachType string `json:"attachType"` // 附件类型编码必传长度32 }
AttachName string `json:"attachName"` // 附件名称必传长度32
AttachStorePath string `json:"attachStorePath"` // 附件路径必传长度128通过调用附件上传接口获取 type ApplyBindAttachment struct {
} `json:"attachments,omitempty"` // 附加资料,可选,集合类型,其他附加资料文件信息 AttachType string `json:"attachType"` // 附件类型编码必传长度32
AttachName string `json:"attachName"` // 附件名称必传长度32
AttachStorePath string `json:"attachStorePath"` // 附件路径必传长度128通过调用附件上传接口获取
} }
// ApplyBindResponse 分账关系绑定响应结构体 // ApplyBindResponse 分账关系绑定响应结构体

View File

@ -10,27 +10,23 @@ type ApplyLedgerMerRequest struct {
// ApplyLedgerMerReqData 商户分账业务开通申请请求业务数据结构体 // ApplyLedgerMerReqData 商户分账业务开通申请请求业务数据结构体
type ApplyLedgerMerReqData struct { type ApplyLedgerMerReqData struct {
Version string `json:"version"` // 版本号必传长度8取值说明1.0 Version string `json:"version"` // 版本号必传长度8取值说明1.0
OrderNo string `json:"orderNo"` // 订单编号必传长度32用于后续处理查询及回调通知消息标识2014年月日时分秒毫秒组成 OrderNo string `json:"orderNo"` // 订单编号必传长度32用于后续处理查询及回调通知消息标识2014年月日时分秒毫秒组成
OrgCode string `json:"orgCode"` // 机构代码必传长度12 OrgCode string `json:"orgCode"` // 机构代码必传长度12
MerInnerNo string `json:"merInnerNo"` // 拉卡拉内部商户号可选长度32拉卡拉内部商户号和银联商户号必须传一个默认以内部商户号为准 MerInnerNo string `json:"merInnerNo"` // 拉卡拉内部商户号可选长度32拉卡拉内部商户号和银联商户号必须传一个默认以内部商户号为准
MerCupNo string `json:"merCupNo"` // 银联商户号可选长度32拉卡拉内部商户号和银联商户号必须传一个默认以内部商户号为准 MerCupNo string `json:"merCupNo"` // 银联商户号可选长度32拉卡拉内部商户号和银联商户号必须传一个默认以内部商户号为准
ContactMobile string `json:"contactMobile"` // 联系手机号必传长度32 ContactMobile string `json:"contactMobile"` // 联系手机号必传长度32
SplitLowestRatio float64 `json:"splitLowestRatio"` // 最低分账比例必传长度12百分比支持2位精度取值范围70-70.50 SplitLowestRatio float64 `json:"splitLowestRatio"` // 最低分账比例必传长度12百分比支持2位精度取值范围70-70.50
SplitEntrustFileName string `json:"splitEntrustFileName"` // 分账授权委托书文件名称必传长度64文件格式pdf SplitEntrustFileName string `json:"splitEntrustFileName"` // 分账授权委托书文件名称必传长度64文件格式pdf
SplitEntrustFilePath string `json:"splitEntrustFilePath"` // 分账授权委托书文件路径必传长度64调用附件上传接口获取 SplitEntrustFilePath string `json:"splitEntrustFilePath"` // 分账授权委托书文件路径必传长度64调用附件上传接口获取
SplitRange string `json:"splitRange"` // 分账范围必传长度32取值说明ALL-全部交易分账(所有交易默认都分账)MARK-标记交易分账(只有带标记交易才分账,其余交易正常结算) SplitRange string `json:"splitRange"` // 分账范围必传长度32取值说明ALL-全部交易分账(所有交易默认都分账)MARK-标记交易分账(只有带标记交易才分账,其余交易正常结算)
SplitFundSource string `json:"splitFundSource"` // 分账依据非必传长度32取值说明TRA-交易分账BAR-金额分账 SplitFundSource string `json:"splitFundSource"` // 分账依据非必传长度32取值说明TRA-交易分账BAR-金额分账
ElecContractId string `json:"elecContractId"` // 电子合同编号非必传长度32收单已签约交易电子合同编号供审核人员复核使用 ElecContractId string `json:"elecContractId"` // 电子合同编号非必传长度32收单已签约交易电子合同编号供审核人员复核使用
SplitLaunchMode string `json:"splitLaunchMode"` // 分账发起方式非必传长度32取值说明AUTO-自动触发分账POINTTRUE-指定规则分账MANUAL-手动分账 SplitLaunchMode string `json:"splitLaunchMode"` // 分账发起方式非必传长度32取值说明AUTO-自动触发分账POINTTRUE-指定规则分账MANUAL-手动分账
SettleType string `json:"settleType"` // 结算类型非必传长度32取值说明01-主扫现结02-复扫现结03-交易自动结算 SettleType string `json:"settleType"` // 结算类型非必传长度32取值说明01-主扫现结02-复扫现结03-交易自动结算
SplitRuleSource string `json:"splitRuleSource"` // 分账规则来源条件必传长度32取值说明MER-商户自定规则PLATFORM-平台分润规则(分润规则必传) SplitRuleSource string `json:"splitRuleSource"` // 分账规则来源条件必传长度32取值说明MER-商户自定规则PLATFORM-平台分润规则(分润规则必传)
RetUrl string `json:"retUrl"` // 回调通知地址必传长度128分账申请结果以异步消息或同步返回的方式通知如需无线路由处理也可以通过第三方商户信息查询接口确定结算结果 RetUrl string `json:"retUrl"` // 回调通知地址必传长度128分账申请结果以异步消息或同步返回的方式通知如需无线路由处理也可以通过第三方商户信息查询接口确定结算结果
Attachments []struct { Attachments []*ApplyBindAttachment `json:"attachments,omitempty"` // 附加资料,可选,集合,其他需附加的文件信息
AttachType string `json:"attachType"` // 附件类型编码必传长度32
AttachName string `json:"attachName"` // 附件名称必传长度32
AttachStorePath string `json:"attachStorePath"` // 附件路径必传长度128调用附件上传接口获取
} `json:"attachments,omitempty"` // 附加资料,可选,集合,其他需附加的文件信息
} }
// ApplyLedgerMerResponse 商户分账业务开通申请响应结构体 // ApplyLedgerMerResponse 商户分账业务开通申请响应结构体

View File

@ -55,14 +55,7 @@ type ApplyLedgerReceiverReqData struct {
// 收款账户清算行行号必传长度32取值说明参照FBI.N信息查询仅支持对私结算账户 // 收款账户清算行行号必传长度32取值说明参照FBI.N信息查询仅支持对私结算账户
AcctClearBankCode string `json:"acctClearBankCode"` AcctClearBankCode string `json:"acctClearBankCode"`
// 接收方附件资料,可选,集合 // 接收方附件资料,可选,集合
AttachList []struct { AttachList []*ApplyBindAttachment `json:"attachList"`
// 附件名称可选长度32
AttachName string `json:"attachName"`
// 附件路径可选长度32取值说明调用进件附件上传接口获取到附件路径
AttachStorePath string `json:"attachStorePath"`
// 附件类型编码可选长度32
AttachType string `json:"attachType"`
} `json:"attachList"`
// 提款类型可选长度32取值说明01主动提款03交易自动结算不填默认01 // 提款类型可选长度32取值说明01主动提款03交易自动结算不填默认01
SettleType string `json:"settleType"` SettleType string `json:"settleType"`
} }

View File

@ -35,22 +35,21 @@ func NewPreorder(param *PreorderReqData) *Preorder {
// PreorderResponse 预下单响应结构体 // PreorderResponse 预下单响应结构体
type PreorderResponse struct { type PreorderResponse struct {
Code string `json:"code"` // 响应码BBS00000表示成功 Code string `json:"code"` // 响应码BBS00000表示成功
Msg string `json:"msg"` // 响应信息,对响应码的文字描述 Msg string `json:"msg"` // 响应信息,对响应码的文字描述
ReqData ReqData `json:"resp_data"` // 响应业务数据 ReqData *ReqData `json:"resp_data"` // 响应业务数据
RespTime string `json:"resp_time"` // 响应时间 RespTime string `json:"resp_time"` // 响应时间
} }
// ReqData 响应业务数据 // ReqData 响应业务数据
type ReqData struct { type ReqData struct {
MerchantNo string `json:"merchant_no"` // 商户号 MerchantNo string `json:"merchant_no"` // 商户号
OutTradeNo string `json:"out_trade_no"` // 外部订单号(商户订单号) OutTradeNo string `json:"out_trade_no"` // 外部订单号(商户订单号)
TradeNo string `json:"trade_no"` // 交易号,拉卡拉生成的订单号 TradeNo string `json:"trade_no"` // 交易号,拉卡拉生成的订单号
LogNo string `json:"log_no"` // 拉卡拉对账单流水号 LogNo string `json:"log_no"` // 拉卡拉对账单流水号
SettleMerchantNo string `json:"settle_merchant_no"` // 结算商户号 SettleMerchantNo string `json:"settle_merchant_no"` // 结算商户号
SettleTermNo string `json:"settle_term_no"` // 结算终端号 SettleTermNo string `json:"settle_term_no"` // 结算终端号
AccRespFields WxPreorderResponse `json:"acc_resp_fields"` // 支付通道返回的具体信息 AccRespFields *WxPreorderResponse `json:"acc_resp_fields"` // 支付通道返回的具体信息
} }
// WxPreorderResponse 支付通道返回的具体信息 // WxPreorderResponse 支付通道返回的具体信息

View File

@ -66,7 +66,7 @@ type QueryLedgerMerRespData struct {
// 分账规则来源取值说明MER商户分账规则PLATFORM平台分账规则 // 分账规则来源取值说明MER商户分账规则PLATFORM平台分账规则
SplitRuleSource string `json:"split_rule_source"` SplitRuleSource string `json:"split_rule_source"`
// 已绑定接收方列表 // 已绑定接收方列表
BindRelations []BindRelation `json:"bind_relations"` BindRelations []*BindRelation `json:"bind_relations"`
} }
// BindRelation 已绑定接收方信息结构体 // BindRelation 已绑定接收方信息结构体
@ -87,4 +87,4 @@ type BindRelation struct {
// 返回值true表示成功false表示失败 // 返回值true表示成功false表示失败
func (resp *QueryLedgerMerResponse) SuccessOrFail() bool { func (resp *QueryLedgerMerResponse) SuccessOrFail() bool {
return resp.Code == "000000" return resp.Code == "000000"
} }