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
+32
View File
@@ -0,0 +1,32 @@
package transMicropayEncry
import (
"github.com/black1552/lkl_sdk/common"
"github.com/black1552/lkl_sdk/consts"
"github.com/gogf/gf/v2/os/gtime"
)
// TransMicropayEncryServer 聚合扫码被扫接口(全报文加密)服务结构体
type TransMicropayEncryServer struct {
Client *common.Client[TransMicropayEncryResponse]
}
// NewTransMicropayEncryServer 创建聚合扫码被扫接口(全报文加密)服务实例
func NewTransMicropayEncryServer(client *common.Client[TransMicropayEncryResponse]) *TransMicropayEncryServer {
return &TransMicropayEncryServer{
Client: client,
}
}
// TransMicropayEncry 聚合扫码被扫接口(全报文加密)接口
func (a *TransMicropayEncryServer) TransMicropayEncry(reqData *TransMicropayEncryRequestData) (*TransMicropayEncryResponse, error) {
// 构建请求体
request := &TransMicropayEncryRequest{
ReqTime: gtime.Now().Format("20060102150405"),
Version: "3.0",
ReqData: reqData,
}
// 调用Client发送请求
return a.Client.DoRequest(consts.BASE_URL+consts.LKL_BASE_URL_TRANS_MICROPAY_ENCRY_URL, request)
}
@@ -0,0 +1,46 @@
package transMicropayEncry
// LocationInfo 地址位置信息,风控要求必送
type LocationInfo struct {
RequestIP string `json:"request_ip"` // 请求方IP地址,必填
BaseStation string `json:"base_station"` // 客户端设备的基站信息
Location string `json:"location"` // 商户终端的地理位置,整体格式:纬度,经度
}
// AccBusiFields 账户端业务信息域
type AccBusiFields struct {
ExtendParams map[string]interface{} `json:"extend_params"` // 支付宝业务扩展参数,主要用于花呗分期
BusinessParams string `json:"business_params"` // 商户传入业务信息
GoodsDetail string `json:"goods_detail"` // 订单包含的商品列表信息,Json数组
StoreID string `json:"store_id"` // 商户门店编号
TimeoutExpress string `json:"timeout_express"` // 交易有效时间,以分钟为单位
DisablePayChannels string `json:"disable_pay_channels"` // 支付宝禁用支付渠道
MinAge string `json:"min_age"` // 允许的最小买家年龄
PriorityPayAssets map[string]interface{} `json:"priority_pay_assets"` // 优先使用资产
}
// TransMicropayEncryRequestData 聚合扫码被扫接口(全报文加密)请求数据
type TransMicropayEncryRequestData struct {
MerchantNo string `json:"merchant_no"` // 商户号,必填
TermNo string `json:"term_no"` // 终端号,必填
OutTradeNo string `json:"out_trade_no"` // 商户交易流水号,必填
AuthCode string `json:"auth_code"` // 支付授权码,必填
TotalAmount string `json:"total_amount"` // 金额,必填,单位分,整数型字符
LocationInfo LocationInfo `json:"location_info"` // 地址位置信息,必填
BusiMode string `json:"busi_mode"` // 业务模式,可选:ACQ-收单,不填默认为"ACQ-收单"
Subject string `json:"subject"` // 订单标题,可选,微信支付必送
PayOrderNo string `json:"pay_order_no"` // 拉卡拉支付业务订单号,可选
NotifyURL string `json:"notify_url"` // 商户通知地址,可选
SettleType string `json:"settle_type"` // 结算类型,可选:"0"或者空,常规结算方式
Remark string `json:"remark"` // 备注,可选
ScanType string `json:"scan_type"` // 扫码类型,可选:0或不填:扫码支付,1:支付宝刷脸支付,2: 微信刷脸支付
IdentityInfo string `json:"identity_info"` // 实名支付信息,可选,json字符串
AccBusiFields AccBusiFields `json:"acc_busi_fields"` // 账户端业务信息域,可选
}
// TransMicropayEncryRequest 聚合扫码被扫接口(全报文加密)请求结构
type TransMicropayEncryRequest struct {
ReqTime string `json:"req_time"` // 请求时间
Version string `json:"version"` // 版本号
ReqData *TransMicropayEncryRequestData `json:"req_data"` // 请求数据
}
@@ -0,0 +1,27 @@
package transMicropayEncry
// TransMicropayEncryResponseData 聚合扫码被扫接口(全报文加密)响应数据
type TransMicropayEncryResponseData struct {
MerchantNo string `json:"merchant_no"` // 商户号
TermNo string `json:"term_no"` // 终端号
OutTradeNo string `json:"out_trade_no"` // 商户交易流水号
TotalAmount string `json:"total_amount"` // 金额,单位分
PayOrderNo string `json:"pay_order_no"` // 拉卡拉订单系统订单号
TradeType string `json:"trade_type"` // 交易类型
Status string `json:"status"` // 交易状态
PayTime string `json:"pay_time"` // 支付完成时间
}
// TransMicropayEncryResponse 聚合扫码被扫接口(全报文加密)响应结构
type TransMicropayEncryResponse struct {
RespTime string `json:"resp_time"` // 响应时间
Version string `json:"version"` // 版本号
Code string `json:"code"` // 响应码
Msg string `json:"msg"` // 响应信息
RespData *TransMicropayEncryResponseData `json:"resp_data"` // 响应数据
}
// SuccessOrFail 判断响应是否成功
func (r *TransMicropayEncryResponse) SuccessOrFail() bool {
return r.Code == "BBS00000"
}