diff --git a/services/center-api/client.go b/services/center-api/client.go new file mode 100644 index 0000000..a64ca1b --- /dev/null +++ b/services/center-api/client.go @@ -0,0 +1,31 @@ +package center_api + +import ( + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk" + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests" +) + +const ( + VERSION = "2020-11-16" +) + +var HOST = requests.Host{ + Default: "center-api", +} + +type Client struct { + sdk.Client +} + +func NewClient() (client *Client, err error) { + client = new(Client) + err = client.Init() + return +} + +// PackagingTaskCallback 打包任务回调 +func (c *Client) PackagingTaskCallback(req *PackagingTaskCallbackReq) (resp *PackagingTaskCallbackResp, err error) { + resp = CreatePackagingTaskCallbackResp() + err = c.DoAction(req, resp) + return +} diff --git a/services/center-api/client_test.go b/services/center-api/client_test.go new file mode 100644 index 0000000..42d711d --- /dev/null +++ b/services/center-api/client_test.go @@ -0,0 +1,28 @@ +package center_api + +import ( + "fmt" + "testing" +) + +func TestPackagingTaskCallback(t *testing.T) { + client, err := NewClient() + if err != nil { + panic(err) + } + + req := CreatePackagingTaskCallbackReq(Data{ + TaskId: "asdada120", + Status: 1, + Msg: "test", + Url: "http://www.baidu.com", + Md5: "adadsadasdasda", + }) + + resp, err := client.PackagingTaskCallback(req) + if err != nil { + panic(err) + } + + fmt.Println(resp.StatusCode, resp.StatusMsg) +} diff --git a/services/center-api/packaging.go b/services/center-api/packaging.go new file mode 100644 index 0000000..b053953 --- /dev/null +++ b/services/center-api/packaging.go @@ -0,0 +1,64 @@ +package center_api + +import ( + "crypto/md5" + "encoding/hex" + "fmt" + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests" + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses" +) + +type PackagingTaskCallbackReq struct { + *requests.RpcRequest + TaskId string `position:"Body" field:"task_id"` + Status int `position:"Body" field:"status"` + Msg string `position:"Body" field:"msg"` + Url string `position:"Body" field:"url"` + Md5 string `position:"Body" field:"md5"` + Sign string `position:"Body" field:"sign"` + Ts int64 `position:"Body" field:"ts"` +} + +type PackagingTaskCallbackResp struct { + *responses.BaseResponse + StatusCode int `json:"status_code"` + StatusMsg string `json:"status_msg"` +} + +type Data struct { + TaskId string `json:"task_id"` + Status int `json:"status"` + Msg string `json:"msg"` + Url string `json:"url"` + Md5 string `json:"md5"` +} + +func CreatePackagingTaskCallbackReq(data Data) *PackagingTaskCallbackReq { + req := &PackagingTaskCallbackReq{ + RpcRequest: &requests.RpcRequest{}, + } + + req.TaskId = data.TaskId + req.Status = data.Status + req.Msg = data.Msg + req.Url = data.Url + req.Md5 = data.Md5 + req.Ts = 1730357662 + + // sign=md5(ts+task_id+sign_key) 32位 + // 生成 MD5 哈希 + hash := md5.Sum([]byte(fmt.Sprintf("%d%s%s", req.Ts, req.TaskId, "xBPVBJ132asdUeJC3XjD7AnFWD2sbGH6pJC4654y89"))) + + // 将哈希结果转换为十六进制字符串 + hashString := hex.EncodeToString(hash[:]) + req.Sign = hashString + req.InitWithApiInfo(HOST, VERSION, "/v1/packaging/task/callback") + req.Method = requests.POST + return req +} + +func CreatePackagingTaskCallbackResp() *PackagingTaskCallbackResp { + return &PackagingTaskCallbackResp{ + BaseResponse: &responses.BaseResponse{}, + } +}