73 lines
2.4 KiB
Go
73 lines
2.4 KiB
Go
package _72
|
||
|
||
import (
|
||
"encoding/json"
|
||
"fmt"
|
||
"hk/pkg/util/httpUtil"
|
||
"time"
|
||
)
|
||
|
||
const (
|
||
productsUrl = "https://haokaopenapi.lot-ml.com/api/order/GetProducts" // 商品列表查询Url
|
||
productsV2Url = "https://haokaopenapi.lot-ml.com/api/order/GetProductsV2" // 商品信息查询Url
|
||
pickNumberUrl = "https://haokaopenapi.lot-ml.com/api/order/PickNumber" // 商品选号Url
|
||
blackUserUrl = "https://haokaopenapi.lot-ml.com/api/black/BlackCheckCus" // 用户黑名单Url
|
||
blackAgentUrl = "https://haokaopenapi.lot-ml.com/api/black/BlackCheckAgent" // 代理黑名单Url
|
||
upFileUrl = "https://haokaopenapi.lot-ml.com/api/order/UpPicFile" // 证件照上传Url
|
||
addOrderUrl = "https://haokaopenapi.lot-ml.com/api/order/ApiToOrder" // 下单Url
|
||
orderInfoUrl = "https://haokaopenapi.lot-ml.com/api/order/GetOrderInfo" // 订单查询Url
|
||
)
|
||
|
||
type BaseParams struct {
|
||
Timestamp string `json:"Timestamp"` // Y 时间戳
|
||
UserID string `json:"user_id"` // Y 用户ID
|
||
UserSign string `json:"user_sign"` // Y 密钥
|
||
}
|
||
|
||
// GoodsReq 商品请求参数
|
||
type GoodsReq struct {
|
||
ProductID string `json:"ProductID"`
|
||
BaseParams
|
||
// Timestamp string `json:"Timestamp"` // Y 时间戳
|
||
// UserID string `json:"user_id"` // Y 用户ID
|
||
// UserSign string `json:"user_sign"` // Y 密钥
|
||
}
|
||
|
||
// ProductResp 定义产品信息的结构体
|
||
type ProductResp struct {
|
||
ProductID int64 `json:"productID"`
|
||
ProductName string `json:"productName"`
|
||
Flag string `json:"flag"` // 上架中
|
||
}
|
||
|
||
// GetProduct 获取上架中商品列表
|
||
func GetProduct(params GoodsReq) (ApiResponse[[]ProductResp], error) {
|
||
// 设置时间戳
|
||
timestamp := fmt.Sprintf("%d", time.Now().Unix()) // 当前时间戳,长度为10位
|
||
params.Timestamp = timestamp
|
||
// 生成 MD5 签名
|
||
userSign := generateMD5SignV2(params, params.UserSign)
|
||
|
||
formParams := map[string]string{
|
||
"ProductID": params.ProductID,
|
||
"Timestamp": params.Timestamp,
|
||
"user_sign": userSign,
|
||
"user_id": params.UserID,
|
||
}
|
||
|
||
body, err := httpUtil.NewRequest().SendFormData(productsUrl, nil, formParams)
|
||
if err != nil {
|
||
return ApiResponse[[]ProductResp]{}, err
|
||
}
|
||
|
||
// 解析 JSON 响应
|
||
var apiResponse ApiResponse[[]ProductResp]
|
||
err = json.Unmarshal([]byte(body), &apiResponse)
|
||
if err != nil {
|
||
fmt.Println("解析响应体时发生错误:", err)
|
||
return ApiResponse[[]ProductResp]{}, err
|
||
}
|
||
|
||
return apiResponse, nil
|
||
}
|