feat(basePay): 添加测试环境支持和新功能

- 为 transPreorder 和 relationClose 添加测试环境请求方法
- 更新所有模块导入路径,统一使用新的 common 包
- 重构多个结构体和服务命名以提高一致性
- 新增 labs 包整合基础支付相关功能模块
- 创建 SDK 入口文件便于统一管理和调用
- 在 consts 中增加 BASE_TEST_URL 常量定义
- 优化请求数据结构体字段注释和文档标签
- 移除冗余代码并调整部分函数签名以增强可读性
This commit is contained in:
maguodong
2025-10-21 14:34:42 +08:00
parent 7b9657a9e8
commit 54917f8985
50 changed files with 158 additions and 83 deletions
+30
View File
@@ -0,0 +1,30 @@
package transShareCode
import (
"github.com/black1552/lkl_sdk/common"
"github.com/black1552/lkl_sdk/consts"
"github.com/gogf/gf/v2/os/gtime"
)
// TransShareCodeServer 聚合扫码申请支付宝吱口令服务
type TransShareCodeServer struct {
client *common.Client[TransShareCodeResponse]
}
// NewTransShareCodeServer 创建聚合扫码申请支付宝吱口令服务实例
func NewTransShareCodeServer(client *common.Client[TransShareCodeResponse]) *TransShareCodeServer {
return &TransShareCodeServer{
client: client,
}
}
// TransShareCode 聚合扫码申请支付宝吱口令
func (s *TransShareCodeServer) TransShareCode(reqData *TransShareCodeRequestData) (*TransShareCodeResponse, error) {
// 构建请求
request := &TransShareCodeRequest{
ReqTime: gtime.Now().Format("20060102150405"),
Version: "3.0",
ReqData: reqData,
}
return s.client.DoRequest(consts.BASE_URL+consts.LKL_BASE_URL_TRANS_SHARE_CODE_URL, request)
}
+41
View File
@@ -0,0 +1,41 @@
package transShareCode
// LocationInfo 地址位置信息
type LocationInfo struct {
RequestIP string `json:"request_ip"` // 请求方IP地址,必填
BaseStation string `json:"base_station"` // 客户端设备的基站信息
Location string `json:"location"` // 商户终端的地理位置,整体格式:纬度,经度
}
// ExtInfo 扩展内容,主要满足花呗分期相关的额鉴权验等功能
type ExtInfo struct {
FqNumber string `json:"fq_number"` // 花呗分期期数,支付宝花呗分期必送字段: 花呗分期数 3:3期 6:6期 12:12期
FqSellerPercent string `json:"fq_seller_percent"` // 卖家承担手续费比例,支付宝花呗分期必送字段: 卖家承担收费比例,商家承担手续费传入100,用户承担手续费传入0
}
// AccBusiFields 账户端业务信息域
type AccBusiFields struct {
Source string `json:"source"` // 业务来源,必填
BizLink string `json:"biz_link"` // 跳转业务链接,必填
SellerID string `json:"seller_id"` // 卖家支付宝ID,可选
ExtInfo *ExtInfo `json:"ext_info"` // 扩展内容,可选
}
// TransShareCodeRequestData 请求数据
type TransShareCodeRequestData struct {
MerchantNo string `json:"merchant_no"` // 商户号,必填
TermNo string `json:"term_no"` // 终端号,必填
OutTradeNo string `json:"out_trade_no"` // 商户交易流水号,必填
AccountType string `json:"account_type"` // 钱包类型,必填,支付宝:ALIPAY
TotalAmount string `json:"total_amount"` // 金额,必填,单位分,整数型字符
LocationInfo LocationInfo `json:"location_info"` // 地址位置信息,必填
CodeValidPeriod string `json:"code_valid_period"` // 码有效期,可选,秒为单位,整型
AccBusiFields *AccBusiFields `json:"acc_busi_fields"` // 账户端业务信息域,可选
}
// TransShareCodeRequest 整体请求结构
type TransShareCodeRequest struct {
ReqTime string `json:"req_time"` // 请求时间
Version string `json:"version"` // 版本号
ReqData *TransShareCodeRequestData `json:"req_data"` // 请求数据
}
+28
View File
@@ -0,0 +1,28 @@
package transShareCode
// AccRespFields 账户端返回信息域
type AccRespFields struct {
ShareToken string `json:"share_token"` // 吱口令,必填
ExpireDate string `json:"expire_date"` // 吱口令失效时间,可选,若为空则表示永久有效
}
// TransShareCodeResponseData 响应数据
type TransShareCodeResponseData struct {
MerchantNo string `json:"merchant_no"` // 商户号
OutTradeNo string `json:"out_trade_no"` // 商户请求流水号
TradeNo string `json:"trade_no"` // 拉卡拉交易流水号
AccRespFields *AccRespFields `json:"acc_resp_fields"` // 账户端返回信息域
}
// TransShareCodeResponse 整体响应结构
type TransShareCodeResponse struct {
Code string `json:"code"` // 响应码
Msg string `json:"msg"` // 响应信息
RespTime string `json:"resp_time"` // 响应时间
RespData *TransShareCodeResponseData `json:"resp_data"` // 响应数据
}
// SuccessOrFail 判断请求是否成功
func (r *TransShareCodeResponse) SuccessOrFail() bool {
return r.Code == "BBS00000"
}