新增电子合同相关接口及数据结构

添加电子合同申请、下载、状态查询、人工复核等功能模块
包含请求/响应数据结构及API实现
新增相关常量定义和类型
This commit is contained in:
maguodong
2025-10-20 10:28:54 +08:00
parent 7777630306
commit e985b790d4
16 changed files with 500 additions and 0 deletions
@@ -0,0 +1,46 @@
package querystatus
import (
"github.com/black1552/lkl_sdk/consts"
"github.com/black1552/lkl_sdk/lklsdk/common"
"github.com/gogf/gf/v2/os/gtime"
)
type QStatus struct {
Client *common.Client[ECQueryStatusResponse]
}
// NewQStatus 创建电子合同查询状态服务实例
func NewQStatus(client *common.Client[ECQueryStatusResponse]) *QStatus {
return &QStatus{
Client: client,
}
}
// QueryStatus 电子合同查询状态
// 提供申请过与拉卡拉电子签约用户查询电子合同签署状态
func (q *QStatus) QueryStatus(req *ECQueryStatusRequestData) (*ECQueryStatusResponse, error) {
// 构建请求
baseReq := ECQueryStatusRequest{
ReqTime: gtime.Now().Format("YmdHis"),
ReqData: req,
Version: "1.0",
}
// 使用生产环境URL
return q.Client.DoRequest(consts.BASE_URL+consts.LKL_EC_QUERY_STATUS, baseReq)
}
// QueryStatusTest 电子合同查询状态(测试环境)
// 提供申请过与拉卡拉电子签约用户查询电子合同签署状态
func (q *QStatus) QueryStatusTest(req *ECQueryStatusRequestData) (*ECQueryStatusResponse, error) {
// 构建请求
baseReq := ECQueryStatusRequest{
ReqTime: gtime.Now().Format("YmdHis"),
ReqData: req,
Version: "1.0",
}
// 使用测试环境URL
return q.Client.DoRequest(consts.BASE_TEST_URL+consts.LKL_EC_QUERY_STATUS, baseReq)
}
@@ -0,0 +1,19 @@
package querystatus
// ECQueryStatusRequestData 电子合同查询状态请求数据
// 提供申请过与拉卡拉电子签约用户查询电子合同签署状态
// 请求URL:
// 测试环境:https://test.wsmsd.cn/sit/api/v3/mms/open_api/ec/q_status
// 生产环境: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:"电子合同申请受理号 必选,申请接口反馈编号"` // 必选,申请接口反馈编号
}
// ECQueryStatusRequest 电子合同查询状态请求
type ECQueryStatusRequest struct {
ReqTime string `json:"req_time" dc:"请求时间"` // 必选,格式:yyyyMMddHHmmss
ReqData *ECQueryStatusRequestData `json:"req_data" dc:"请求数据"` // 请求数据
Version string `json:"version" dc:"版本号"` // 必选,固定值:1.0
}
@@ -0,0 +1,22 @@
package querystatus
// ECQueryStatusResponseData 电子合同查询状态响应数据
type ECQueryStatusResponseData struct {
OrderNo string `json:"order_no" dc:"请求上送的订单号"` // 请求上送的订单号
EcApplyID int64 `json:"ec_apply_id" dc:"电子签约申请受理编号"` // 电子签约申请受理编号
EcStatus string `json:"ec_status" dc:"电子合同签署状态"` // 电子合同签署状态,UNDONE 未完成,COMPLETED 已完成
EcNo string `json:"ec_no" dc:"电子合同号"` // 签署完成反馈
}
// ECQueryStatusResponse 电子合同查询状态响应
type ECQueryStatusResponse struct {
Code string `json:"code" dc:"返回码"` // 成功 000000 其它失败
Msg string `json:"msg" dc:"返回码描述"` // 返回码描述
RespData *ECQueryStatusResponseData `json:"resp_data" dc:"结果信息集合"` // 结果信息集合
RespTime string `json:"resp_time" dc:"响应时间"` // 格式:yyyyMMddHHmmss
}
// SuccessOfFail 检查响应是否成功
func (r *ECQueryStatusResponse) SuccessOfFail() bool {
return r.Code == "000000"
}