feat(basePay): 添加测试环境支持和新功能
- 为 transPreorder 和 relationClose 添加测试环境请求方法 - 更新所有模块导入路径,统一使用新的 common 包 - 重构多个结构体和服务命名以提高一致性 - 新增 labs 包整合基础支付相关功能模块 - 创建 SDK 入口文件便于统一管理和调用 - 在 consts 中增加 BASE_TEST_URL 常量定义 - 优化请求数据结构体字段注释和文档标签 - 移除冗余代码并调整部分函数签名以增强可读性
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
package transquery
|
||||
|
||||
import (
|
||||
"github.com/black1552/lkl_sdk/common"
|
||||
"github.com/black1552/lkl_sdk/consts"
|
||||
"github.com/gogf/gf/v2/os/gtime"
|
||||
)
|
||||
|
||||
// API 聚合扫码交易查询API结构体
|
||||
type TransQueryServer struct {
|
||||
Client *common.Client[TransQueryResponse]
|
||||
}
|
||||
|
||||
// NewAPI 创建聚合扫码交易查询API实例
|
||||
func NewTransQueryServer(client *common.Client[TransQueryResponse]) *TransQueryServer {
|
||||
return &TransQueryServer{
|
||||
Client: client,
|
||||
}
|
||||
}
|
||||
|
||||
// TransQuery 执行聚合扫码交易查询请求
|
||||
// - merchantNo: 商户号
|
||||
// - termNo: 终端号
|
||||
// - outTradeNo: 商户交易流水号(可选,与tradeNo二选一)
|
||||
// - tradeNo: 拉卡拉交易流水号(可选,与outTradeNo二选一)
|
||||
func (a *TransQueryServer) TransQuery(reqData *TransQueryRequestData) (*TransQueryResponse, error) {
|
||||
// 构建请求结构体
|
||||
request := &TransQueryRequest{
|
||||
ReqTime: gtime.Now().Format("YmdHis"),
|
||||
Version: "3.0",
|
||||
ReqData: reqData,
|
||||
}
|
||||
|
||||
// 发送请求 - 使用consts中定义的聚合扫码交易查询URL
|
||||
return a.Client.DoRequest(consts.BASE_URL+consts.LKL_BASE_URL_TRANS_QUERY_URL, request)
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package transquery
|
||||
|
||||
// TransQueryRequestData 聚合扫码交易查询请求数据结构体
|
||||
type TransQueryRequestData struct {
|
||||
MerchantNo string `json:"merchant_no"` // 商户号 (必填)
|
||||
TermNo string `json:"term_no"` // 终端号 (必填)
|
||||
OutTradeNo string `json:"out_trade_no,omitempty"` // 商户交易流水号 (可选,与trade_no二选一)
|
||||
TradeNo string `json:"trade_no,omitempty"` // 拉卡拉交易流水号 (可选,与out_trade_no二选一)
|
||||
}
|
||||
|
||||
// TransQueryRequest 聚合扫码交易查询请求结构体
|
||||
type TransQueryRequest struct {
|
||||
ReqTime string `json:"req_time"`
|
||||
Version string `json:"version"`
|
||||
ReqData *TransQueryRequestData `json:"req_data"`
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
package transquery
|
||||
|
||||
// SplitInfo 拆单信息结构体
|
||||
type SplitInfo struct {
|
||||
SubTradeNo string `json:"sub_trade_no"` // 子单交易流水号
|
||||
SubLogNo string `json:"sub_log_no"` // 子单对账单流水号
|
||||
OutSubTradeNo string `json:"out_sub_trade_no"` // 外部子交易流水号
|
||||
MerchantNo string `json:"merchant_no"` // 商户号
|
||||
MerchantName string `json:"merchant_name"` // 商户名称
|
||||
TermNo string `json:"term_no"` // 终端号
|
||||
Amount string `json:"amount"` // 金额
|
||||
}
|
||||
|
||||
// RefundSplitInfo 合单退款拆单信息结构体
|
||||
type RefundSplitInfo struct {
|
||||
OutSubTradeNo string `json:"out_sub_trade_no"` // 外部子退款交易流水号
|
||||
MerchantNo string `json:"merchant_no"` // 商户号
|
||||
TermNo string `json:"term_no"` // 终端号
|
||||
RefundAmount string `json:"refund_amount"` // 申请退款金额
|
||||
SubTradeNo string `json:"sub_trade_no,omitempty"` // 拉卡拉子交易流水号
|
||||
SubLogNo string `json:"sub_log_no,omitempty"` // 对账单子流水号
|
||||
TradeState string `json:"trade_state,omitempty"` // 子交易状态
|
||||
ResultCode string `json:"result_code,omitempty"` // 处理结果码
|
||||
ResultMsg string `json:"result_msg,omitempty"` // 处理描述
|
||||
}
|
||||
|
||||
// AccRespFields 账户端返回信息域结构体
|
||||
type AccRespFields struct {
|
||||
UserId string `json:"user_id,omitempty"` // 买家在支付宝的用户id
|
||||
StoreId string `json:"store_id,omitempty"` // 商户门店编号
|
||||
AlipayStoreId string `json:"alipay_store_id,omitempty"` // 支付宝店铺编号(不再使用)
|
||||
FundBillList string `json:"fund_bill_list,omitempty"` // 交易支付使用的资金渠道
|
||||
VoucherDetailList string `json:"voucher_detail_list,omitempty"` // 所有优惠券信息
|
||||
HbFqPayInfo string `json:"hb_fq_pay_info,omitempty"` // 花呗分期支付信息
|
||||
}
|
||||
|
||||
// TransQueryResponseData 聚合扫码交易查询响应数据结构体
|
||||
type TransQueryResponseData struct {
|
||||
MerchantNo string `json:"merchant_no"` // 拉卡拉分配的商户号
|
||||
OutTradeNo string `json:"out_trade_no"` // 商户请求流水号
|
||||
TradeNo string `json:"trade_no"` // 拉卡拉商户订单号
|
||||
LogNo string `json:"log_no"` // 拉卡拉对账单流水号
|
||||
TradeMainType string `json:"trade_main_type,omitempty"` // 交易大类
|
||||
SplitAttr string `json:"split_attr,omitempty"` // 拆单属性
|
||||
SplitInfo []*SplitInfo `json:"split_info,omitempty"` // 拆单信息
|
||||
AccTradeNo string `json:"acc_trade_no"` // 账户端交易订单号
|
||||
AccountType string `json:"account_type"` // 钱包类型
|
||||
TradeState string `json:"trade_state"` // 交易状态
|
||||
TradeStateDesc string `json:"trade_state_desc,omitempty"` // 交易状态描述
|
||||
TotalAmount string `json:"total_amount"` // 订单金额
|
||||
PayerAmount string `json:"payer_amount,omitempty"` // 付款人实付金额
|
||||
AccSettleAmount string `json:"acc_settle_amount,omitempty"` // 账户端结算金额
|
||||
AccMDiscountAmount string `json:"acc_mdiscount_amount,omitempty"` // 商户侧优惠金额(账户端)
|
||||
AccDiscountAmount string `json:"acc_discount_amount,omitempty"` // 账户端优惠金额
|
||||
AccOtherDiscountAmount string `json:"acc_other_discount_amount,omitempty"` // 账户端其它优惠金额
|
||||
TradeTime string `json:"trade_time"` // 交易完成时间
|
||||
UserId1 string `json:"user_id1,omitempty"` // 用户标识1
|
||||
UserId2 string `json:"user_id2,omitempty"` // 用户标识2
|
||||
BankType string `json:"bank_type,omitempty"` // 付款银行
|
||||
CardType string `json:"card_type,omitempty"` // 银行卡类型
|
||||
AccActivityId string `json:"acc_activity_id,omitempty"` // 活动ID
|
||||
TradeReqDate string `json:"trade_req_date"` // 交易请求日期
|
||||
AccRespFields *AccRespFields `json:"acc_resp_fields,omitempty"` // 账户端返回信息域
|
||||
RefundSplitInfo []*RefundSplitInfo `json:"refund_split_info,omitempty"` // 合单退款拆单信息
|
||||
}
|
||||
|
||||
// TransQueryResponse 聚合扫码交易查询响应结构体
|
||||
type TransQueryResponse struct {
|
||||
RespTime string `json:"resp_time"`
|
||||
Code string `json:"code"`
|
||||
Msg string `json:"msg"`
|
||||
RespData *TransQueryResponseData `json:"resp_data,omitempty"`
|
||||
}
|
||||
|
||||
// SuccessOrFail 判断响应是否成功
|
||||
func (r *TransQueryResponse) SuccessOrFail() bool {
|
||||
return r.Code == "BBS00000"
|
||||
}
|
||||
Reference in New Issue
Block a user