feat(basePay): 添加测试环境支持和新功能
- 为 transPreorder 和 relationClose 添加测试环境请求方法 - 更新所有模块导入路径,统一使用新的 common 包 - 重构多个结构体和服务命名以提高一致性 - 新增 labs 包整合基础支付相关功能模块 - 创建 SDK 入口文件便于统一管理和调用 - 在 consts 中增加 BASE_TEST_URL 常量定义 - 优化请求数据结构体字段注释和文档标签 - 移除冗余代码并调整部分函数签名以增强可读性
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
package transPreorederEncry
|
||||
|
||||
import (
|
||||
"github.com/black1552/lkl_sdk/common"
|
||||
"github.com/black1552/lkl_sdk/consts"
|
||||
"github.com/gogf/gf/v2/os/gtime"
|
||||
)
|
||||
|
||||
// TransPreorderEncryServer 聚合扫码主扫交易(全报文加密)服务结构体
|
||||
type TransPreorderEncryServer struct {
|
||||
Client *common.Client[TransPreorederEncryResponse]
|
||||
}
|
||||
|
||||
// NewTransPreorderEncryServer 创建聚合扫码主扫交易(全报文加密)服务实例
|
||||
func NewTransPreorderEncryServer(client *common.Client[TransPreorederEncryResponse]) *TransPreorderEncryServer {
|
||||
return &TransPreorderEncryServer{
|
||||
Client: client,
|
||||
}
|
||||
}
|
||||
|
||||
// TransPreorderEncry 聚合扫码主扫交易(全报文加密)接口
|
||||
func (a *TransPreorderEncryServer) TransPreorderEncry(reqData *TransPreorederEncryRequestData) (*TransPreorederEncryResponse, error) {
|
||||
// 构建请求体
|
||||
request := &TransPreorederEncryRequest{
|
||||
ReqTime: gtime.Now().Format("20060102150405"),
|
||||
Version: "3.0",
|
||||
ReqData: reqData,
|
||||
}
|
||||
|
||||
// 调用Client发送请求
|
||||
return a.Client.DoRequest(consts.BASE_URL+consts.LKL_BASE_URL_TRANS_PREORDER_ENCRY_URL, request)
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package transPreorederEncry
|
||||
|
||||
// LocationInfo 地址位置信息,风控要求必送
|
||||
type LocationInfo struct {
|
||||
RequestIP string `json:"request_ip"` // 请求方IP地址,必填
|
||||
BaseStation string `json:"base_station"` // 客户端设备的基站信息(主扫时基站信息使用该字段)
|
||||
Location string `json:"location"` // 商户终端的地理位置,整体格式:纬度,经度
|
||||
}
|
||||
|
||||
// AccBusiFields 账户端业务信息域
|
||||
type AccBusiFields struct {
|
||||
UserID string `json:"user_id"` // 买家在支付宝的用户id
|
||||
TimeoutExpress string `json:"timeout_express"` // 预下单有效时间,以分钟为单位
|
||||
ExtendParams map[string]interface{} `json:"extend_params"` // 支付宝业务扩展参数
|
||||
GoodsDetail string `json:"goods_detail"` // 订单包含的商品列表信息,Json数组
|
||||
StoreID string `json:"store_id"` // 商户门店编号
|
||||
DisablePayChannels string `json:"disable_pay_channels"` // 支付宝禁用支付渠道
|
||||
BusinessParams string `json:"business_params"` // 商户传入业务信息
|
||||
MinAge string `json:"min_age"` // 允许的最小买家年龄
|
||||
}
|
||||
|
||||
// RequestData 聚合扫码主扫交易(全报文加密)请求数据
|
||||
type TransPreorederEncryRequestData struct {
|
||||
MerchantNo string `json:"merchant_no"` // 商户号,必填
|
||||
TermNo string `json:"term_no"` // 终端号,必填
|
||||
OutTradeNo string `json:"out_trade_no"` // 商户交易流水号,必填
|
||||
AccountType string `json:"account_type"` // 钱包类型,必填:WECHAT、ALIPAY、UQRCODEPAY等
|
||||
TransType string `json:"trans_type"` // 接入方式,必填:41:NATIVE、51:JSAPI、71:微信小程序支付、61:APP支付
|
||||
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"或者空为常规结算,"1"为拉卡拉分账
|
||||
Remark string `json:"remark"` // 备注,可选
|
||||
IdentityInfo string `json:"identity_info"` // 实名支付信息,可选,json字符串
|
||||
AccBusiFields *AccBusiFields `json:"acc_busi_fields"` // 账户端业务信息域,可选
|
||||
}
|
||||
|
||||
// Request 聚合扫码主扫交易(全报文加密)请求结构
|
||||
type TransPreorederEncryRequest struct {
|
||||
ReqTime string `json:"req_time"` // 请求时间
|
||||
Version string `json:"version"` // 版本号
|
||||
ReqData *TransPreorederEncryRequestData `json:"req_data"` // 请求数据
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package transPreorederEncry
|
||||
|
||||
// TransPreorederEncryResponseData 聚合扫码主扫交易(全报文加密)响应数据
|
||||
type TransPreorederEncryResponseData 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"` // 拉卡拉订单系统订单号
|
||||
CodeUrl string `json:"code_url"` // 二维码内容,用于生成支付二维码
|
||||
TradeType string `json:"trade_type"` // 交易类型
|
||||
}
|
||||
|
||||
// TransPreorederEncryResponse 聚合扫码主扫交易(全报文加密)响应结构
|
||||
type TransPreorederEncryResponse struct {
|
||||
RespTime string `json:"resp_time"` // 响应时间
|
||||
Version string `json:"version"` // 版本号
|
||||
Code string `json:"code"` // 响应码
|
||||
Msg string `json:"msg"` // 响应信息
|
||||
RespData TransPreorederEncryResponseData `json:"resp_data"` // 响应数据
|
||||
}
|
||||
|
||||
// SuccessOrFail 判断响应是否成功
|
||||
func (r *TransPreorederEncryResponse) SuccessOrFail() bool {
|
||||
return r.Code == "BBS00000"
|
||||
}
|
||||
Reference in New Issue
Block a user