feat(basePay): 添加测试环境支持和新功能
- 为 transPreorder 和 relationClose 添加测试环境请求方法 - 更新所有模块导入路径,统一使用新的 common 包 - 重构多个结构体和服务命名以提高一致性 - 新增 labs 包整合基础支付相关功能模块 - 创建 SDK 入口文件便于统一管理和调用 - 在 consts 中增加 BASE_TEST_URL 常量定义 - 优化请求数据结构体字段注释和文档标签 - 移除冗余代码并调整部分函数签名以增强可读性
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package relationclose
|
||||
|
||||
import (
|
||||
"github.com/black1552/lkl_sdk/common"
|
||||
"github.com/black1552/lkl_sdk/consts"
|
||||
"github.com/gogf/gf/v2/os/gtime"
|
||||
)
|
||||
|
||||
// RelationCloseServer 聚合扫码关单API结构体
|
||||
type RelationCloseServer struct {
|
||||
Client *common.Client[RelationCloseResponse]
|
||||
}
|
||||
|
||||
// NewAPI 创建聚合扫码关单API实例
|
||||
func NewRelationCloseServer(client *common.Client[RelationCloseResponse]) *RelationCloseServer {
|
||||
return &RelationCloseServer{
|
||||
Client: client,
|
||||
}
|
||||
}
|
||||
|
||||
// RelationClose 执行聚合扫码关单请求
|
||||
// - merchantNo: 商户号
|
||||
// - termNo: 终端号
|
||||
// - 原交易标识:originOutTradeNo、originTradeNo、(originOutOrderSource+originOutOrderNo) 三者必选其一
|
||||
// - locationInfo: 地址位置信息(风控要求必送)
|
||||
func (a *RelationCloseServer) RelationClose(reqData *RelationCloseRequestData) (*RelationCloseResponse, error) {
|
||||
// 构建请求结构体
|
||||
request := &RelationCloseRequest{
|
||||
ReqTime: gtime.Now().Format("YmdHis"),
|
||||
Version: "3.0",
|
||||
ReqData: reqData,
|
||||
}
|
||||
// 发送请求 - 使用consts中定义的聚合扫码关单URL
|
||||
return a.Client.DoRequest(consts.BASE_URL+consts.LKL_BASE_URL_RELATION_CLOSE_URL, request)
|
||||
}
|
||||
|
||||
// RelationCloseTest 执行聚合扫码关单测试请求
|
||||
// - merchantNo: 商户号
|
||||
// - termNo: 终端号
|
||||
// - 原交易标识:originOutTradeNo、originTradeNo、(originOutOrderSource+originOutOrderNo) 三者必选其一
|
||||
// - locationInfo: 地址位置信息(风控要求必送)
|
||||
func (a *RelationCloseServer) RelationCloseTest(reqData *RelationCloseRequestData) (*RelationCloseResponse, error) {
|
||||
// 构建请求结构体
|
||||
request := &RelationCloseRequest{
|
||||
ReqTime: gtime.Now().Format("YmdHis"),
|
||||
Version: "3.0",
|
||||
ReqData: reqData,
|
||||
}
|
||||
// 发送请求 - 使用consts中定义的聚合扫码关单URL
|
||||
return a.Client.DoRequest(consts.BASE_TEST_URL+consts.LKL_BASE_URL_RELATION_CLOSE_URL, request)
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package relationclose
|
||||
|
||||
// LocationInfo 地址位置信息结构体
|
||||
type LocationInfo struct {
|
||||
RequestIP string `json:"request_ip"` // 请求方IP地址 (必填)
|
||||
BaseStation string `json:"base_station,omitempty"` // 基站信息 (可选)
|
||||
Location string `json:"location,omitempty"` // 纬度,经度 (可选)
|
||||
}
|
||||
|
||||
// RelationCloseRequestData 聚合扫码关单请求数据结构体
|
||||
type RelationCloseRequestData struct {
|
||||
MerchantNo string `json:"merchant_no" dc:"商户号 (必填)"` // 商户号 (必填)
|
||||
TermNo string `json:"term_no" dc:"终端号 (必填)"` // 终端号 (必填)
|
||||
OriginOutTradeNo string `json:"origin_out_trade_no,omitempty" dc:"原商户交易流水号 (可选)"` // 原商户交易流水号 (可选)
|
||||
OriginTradeNo string `json:"origin_trade_no,omitempty" dc:"原交易拉卡拉交易流水号 (可选)"` // 原交易拉卡拉交易流水号 (可选)
|
||||
OriginOutOrderSource string `json:"origin_out_order_source,omitempty" dc:"原订单外部订单来源 (可选)"` // 原订单外部订单来源 (可选)
|
||||
OriginOutOrderNo string `json:"origin_out_order_no,omitempty" dc:"原订单外部商户订单号 (可选)"` // 原订单外部商户订单号 (可选)
|
||||
LocationInfo *LocationInfo `json:"location_info" dc:"地址位置信息 (必填)"` // 地址位置信息 (必填)
|
||||
}
|
||||
|
||||
// RelationCloseRequest 聚合扫码关单请求结构体
|
||||
type RelationCloseRequest struct {
|
||||
ReqTime string `json:"req_time"`
|
||||
Version string `json:"version"`
|
||||
ReqData *RelationCloseRequestData `json:"req_data"`
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package relationclose
|
||||
|
||||
// RelationCloseResponseData 聚合扫码关单响应数据结构体
|
||||
type RelationCloseResponseData struct {
|
||||
OriginTradeNo string `json:"origin_trade_no"` // 原拉卡拉订单号
|
||||
OriginOutTradeNo string `json:"origin_out_trade_no"` // 原商户请求流水号
|
||||
OriginOutOrderSource string `json:"origin_out_order_source,omitempty"` // 原订单外部订单来源
|
||||
OriginOutOrderNo string `json:"origin_out_order_no,omitempty"` // 原订单外部商户订单号
|
||||
TradeTime string `json:"trade_time"` // 交易时间
|
||||
}
|
||||
|
||||
// RelationCloseResponse 聚合扫码关单响应结构体
|
||||
type RelationCloseResponse struct {
|
||||
RespTime string `json:"resp_time"`
|
||||
Code string `json:"code"`
|
||||
Msg string `json:"msg"`
|
||||
RespData *RelationCloseResponseData `json:"resp_data,omitempty"`
|
||||
}
|
||||
|
||||
// SuccessOrFail 判断响应是否成功
|
||||
func (r *RelationCloseResponse) SuccessOrFail() bool {
|
||||
return r.Code == "BBS00000"
|
||||
}
|
||||
Reference in New Issue
Block a user