lkl_sdk/model/orderSplitLedger.go

58 lines
4.2 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package model
import "github.com/black1552/lkl_sdk/consts"
// OrderSplitLedgerRequest 订单分账请求结构体
// 用于发起订单分账操作,支持向多个接收方进行分账
// 拉卡拉SDK接口文档订单分账接口
type OrderSplitLedgerRequest struct {
ReqData *OrderSplitLedgerReqData `json:"req_data"` // 请求业务数据
Version string `json:"version"` // 接口版本号
ReqTime string `json:"req_time"` // 请求时间格式为yyyyMMddHHmmss
}
// OrderSplitLedgerReqData 订单分账请求业务数据结构体
// 包含订单分账所需的详细业务参数
type OrderSplitLedgerReqData struct {
MerchantNo string `json:"merchant_no"` // 商户号必传长度32
LogNo string `json:"log_no"` // 拉卡拉对账单流水号必传长度14posp流水号用于查询结算
LogDate string `json:"log_date"` // 交易日期必传长度8posp日期格式为yyyyMMdd用于查询结算
OutSeparateNo string `json:"out_separate_no"` // 商户分账指令流水号必传长度32每个商户号下唯一否则会校验失败
TotalAmt string `json:"total_amt"` // 分账总金额必传长度15单位为分
LklOrgNo string `json:"lkl_org_no"` // 拉卡拉机构编号条件必传长度16
CalType consts.CalType `json:"cal_type"` // 分账计算类型条件必传长度2取值说明0-按照指定金额1-按照指定比例默认0
NotifyUrl string `json:"notify_url"` // 回调地址条件必传长度128分账、分账撤销或分账回退时通过该地址通知商户最终处理结果不传时不回调
RecvDatas []*OrderSplitLedgerRecvDatas `json:"recv_datas,omitempty"` // 分账接收数据对象,条件必传,列表类型,分账接收方编号必须已创建
}
type OrderSplitLedgerRecvDatas struct {
RecvMerchantNo string `json:"recv_merchant_no"` // 接收方商户号条件必传长度32分账接收方商户号分给自己时使用需和merchantNo一样否则检查报错分账接收方商户号和分账接收方只能填写一个
RecvNo string `json:"recv_no"` // 分账接收方编号条件必传长度32分账接收方编号分给他人时使用分账接收方商户号和分账接收方只能填写一个
SeparateValue string `json:"separate_value"` // 分账数值必传长度32calType为0时按照固定金额分账单位calType为1时按照比例分账单位百分比的小数值如0.55表示55%
}
// OrderSplitLedgerResponse 订单分账响应结构体
// 包含订单分账操作的处理结果信息
type OrderSplitLedgerResponse struct {
Msg string `json:"msg"` // 响应消息,描述响应结果
RespTime string `json:"resp_time"` // 响应时间格式为yyyyMMddHHmmss
Code string `json:"code"` // 响应码SACS0000表示成功
RespData struct {
SeparateNo string `json:"separate_no"` // 分账指令流水号必传长度32分账系统生成唯一流水
OutSeparateNo string `json:"out_separate_no"` // 商户订单号必传长度32请求报文中的商户外部订单号
Status string `json:"status"` // 分账状态条件必传长度16取值说明处理中-PROCESSING已受理-ACCEPTED成功-SUCCESS失败-FAIL
LogNo string `json:"log_no"` // 拉卡拉对账单流水号条件必传长度14请求透返
LogDate string `json:"log_date"` // 拉卡拉订单日期条件必传长度8posp日期格式为yyyyMMdd用于查询结算
TotalAmt string `json:"total_amt"` // 分账总金额条件必传长度15单位为分
} `json:"resp_data"` // 响应业务数据当code为SACS0000时返回
}
// SuccessOrFail 判断分账请求是否成功
// 返回true表示成功false表示失败
func (s *OrderSplitLedgerResponse) SuccessOrFail() bool {
return s.Code == "SACS0000"
}