feat(basePay): 添加测试环境支持和新功能
- 为 transPreorder 和 relationClose 添加测试环境请求方法 - 更新所有模块导入路径,统一使用新的 common 包 - 重构多个结构体和服务命名以提高一致性 - 新增 labs 包整合基础支付相关功能模块 - 创建 SDK 入口文件便于统一管理和调用 - 在 consts 中增加 BASE_TEST_URL 常量定义 - 优化请求数据结构体字段注释和文档标签 - 移除冗余代码并调整部分函数签名以增强可读性
This commit is contained in:
@@ -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)
|
||||
}
|
||||
@@ -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"` // 请求数据
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
Reference in New Issue
Block a user