Compare commits

..
7 Commits
Author SHA1 Message Date
gaoda aab78082ce refactor(common):优化JSON清理逻辑
- 使用gjson.DecodeToJson替代gjson.Unmarshal提高解析效率
- 添加StrNumber选项支持字符串数字处理
- 简化数据清理流程
- 移除不必要的中间变量声明
- 提升JSON解析的准确性和性能
2025-11-12 10:58:30 +08:00
gaoda 59158d7309 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	lklsdk/common/json_cleaner.go
2025-11-12 10:51:41 +08:00
maguodong 6f685ea087 Merge remote-tracking branch 'github.com/black1552/main' 2025-11-12 10:08:55 +08:00
maguodong b038c64873 refactor(common): 替换JSON处理库为gjson
- 使用gjson替代标准库encoding/json- 更新Unmarshal调用为gjson.Unmarshal
- 更新Marshal调用为gjson.Marshal- 移除未使用的json导入声明
2025-11-12 10:08:36 +08:00
gaoda 03aec086bf refactor(common): 替换JSON处理库为gjson
-encoding 将标准库/json替换为github.com/gogf/gf/v2/encoding/gjson
- 更新Unmarshal方法调用为gjson.Unmarshal- 更新Marshal方法调用为gjson.Marshal- 保持原有数据清理逻辑不变
2025-11-12 09:55:46 +08:00
gaoda 8eeee5cbe1 fix(merchant): 更新电子合同查询状态请求字段
- 将 OrgID 字段重命名为 OrgCode以匹配拉卡拉机构号定义- 保持 EcApplyID 字段定义不变
- 调整结构体字段注释格式以提高可读性
2025-11-10 09:52:15 +08:00
maguodong aa5b400ee8 feat(lklsdk): 新增商户进件复议提交功能
- 在MerService中实现ReconsiderSubmit方法,支持构建并发送复议提交请求
- 在SDK中暴露ReconsiderSubmitTest方法,用于测试环境的复议提交
- 同步新增QueryMerchantTest、MerValidateTest和AddMerTest等测试方法
- 所有新接口均遵循现有请求封装逻辑,确保一致性和可维护性
2025-11-08 09:00:05 +08:00
4 changed files with 53 additions and 10 deletions
+7 -7
View File
@@ -1,24 +1,24 @@
package common
import (
"encoding/json"
"reflect"
"github.com/gogf/gf/v2/encoding/gjson"
)
// CleanJSON 清理JSON字符串中的空值和0值字段
func CleanJSON(jsonStr string) ([]byte, error) {
var data interface{}
// 解析JSON字符串
if err := json.Unmarshal([]byte(jsonStr), &data); err != nil {
// 解析为JSON
json, err := gjson.DecodeToJson(jsonStr, gjson.Options{StrNumber: true})
if err != nil {
return nil, err
}
// 递归清理数据
cleaned := cleanData(data)
cleaned := cleanData(json)
// 转换回JSON字符串
result, err := json.Marshal(cleaned)
result, err := gjson.Marshal(cleaned)
if err != nil {
return nil, err
}
+23
View File
@@ -160,6 +160,29 @@ func (t *MerService[T]) MerValidateTest(req *model.MerValidateRequestData) (*T,
return respBody, nil
}
func (t *MerService[T]) ReconsiderSubmit(req *model.ReConfSubmitRequestData) (*T, error) {
// 构建请求参数
url := consts.BASE_URL + consts.LKL_RECONF_SUBMIT
md5, err := gmd5.Encrypt(gconv.String(time.Now().Unix()))
if err != nil {
return nil, fmt.Errorf("创建ReqId失败")
}
// 构建BaseModel请求
baseReq := model.ReConfSubmitRequest{
ReqData: req,
ReqId: md5,
Timestamp: time.Now().Unix(),
Ver: "1.0",
}
// 发送请求
respBody, err := t.client.DoRequest(url, baseReq)
if err != nil {
return nil, err
}
return respBody, nil
}
func (t *MerService[T]) ReconsiderSubmitTest(req *model.ReConfSubmitRequestData) (*T, error) {
// 构建请求参数
url := consts.BASE_TEST_URL + consts.LKL_RECONF_SUBMIT
@@ -7,8 +7,8 @@ package querystatus
// 生产环境:https://s2.lakala.com/api/v3/mms/open_api/ec/q_status
type ECQueryStatusRequestData struct {
OrderNo string `json:"order_no" dc:"四方机构自定义订单编号 必选,建议:平台编号+14位年月日时(24小时制)分秒+8位的随机数(同一接入机构不重复)"` // 必选,建议:平台编号+14位年月日时(24小时制)分秒+8位的随机数(同一接入机构不重复)
OrgID int `json:"org_id" dc:"机构号 必选,签约方所属拉卡拉机构"` // 必选,签约方所属拉卡拉机构
EcApplyID int64 `json:"ec_apply_id" dc:"电子合同申请受理号 必选,申请接口反馈编号"` // 必选,申请接口反馈编号
OrgCode int `json:"org_code" dc:"机构号 必选,签约方所属拉卡拉机构"` // 必选,签约方所属拉卡拉机构
EcApplyID int64 `json:"ec_apply_id" dc:"电子合同申请受理号 必选,申请接口反馈编号"` // 必选,申请接口反馈编号
}
// ECQueryStatusRequest 电子合同查询状态请求
@@ -16,4 +16,4 @@ type ECQueryStatusRequest struct {
ReqTime string `json:"req_time" dc:"请求时间"` // 必选,格式:yyyyMMddHHmmss
ReqData *ECQueryStatusRequestData `json:"req_data" dc:"请求数据"` // 请求数据
Version string `json:"version" dc:"版本号"` // 必选,固定值:1.0
}
}
+20
View File
@@ -54,21 +54,41 @@ func (s *SDK[T]) ReconsiderSubmit(req *model.ReConfSubmitRequestData) (*T, error
return s.Merchant.ReconsiderSubmit(req)
}
// ReconsiderSubmitTest 商户进件复议提交
func (s *SDK[T]) ReconsiderSubmitTest(req *model.ReConfSubmitRequestData) (*T, error) {
return s.Merchant.ReconsiderSubmitTest(req)
}
// QueryMerchant 商户进件信息查询
func (s *SDK[T]) QueryMerchant(req *model.QueryMerRequestData) (*T, error) {
return s.Merchant.QueryMer(req)
}
// QueryMerchantTest 商户进件信息查询
func (s *SDK[T]) QueryMerchantTest(req *model.QueryMerRequestData) (*T, error) {
return s.Merchant.QueryMerTest(req)
}
// MerValidate 商户进件信息校验
func (s *SDK[T]) MerValidate(req *model.MerValidateRequestData) (*T, error) {
return s.Merchant.MerValidate(req)
}
// MerValidateTest 商户进件信息校验
func (s *SDK[T]) MerValidateTest(req *model.MerValidateRequestData) (*T, error) {
return s.Merchant.MerValidateTest(req)
}
// AddMer 商户进件
func (s *SDK[T]) AddMer(req *model.MerchantApplyReqData) (*T, error) {
return s.Merchant.AddMer(req)
}
// AddMerTest 商户进件
func (s *SDK[T]) AddMerTest(req *model.MerchantApplyReqData) (*T, error) {
return s.Merchant.AddMerTest(req)
}
// MergePreOrder 主扫合单交易
func (s *SDK[T]) MergePreOrder(req *model.MergePreorderReqData) (*T, error) {
return s.MergePre.PreOrder(req)