51 lines
1.4 KiB
Go
51 lines
1.4 KiB
Go
![]() |
package _72
|
|||
|
|
|||
|
import (
|
|||
|
"encoding/json"
|
|||
|
"fmt"
|
|||
|
"hk/pkg/util/httpUtil"
|
|||
|
"time"
|
|||
|
)
|
|||
|
|
|||
|
const ()
|
|||
|
|
|||
|
// ProductV2Resp 定义商品套餐的结构
|
|||
|
type ProductV2Resp struct {
|
|||
|
ProductID int64 `json:"productID"`
|
|||
|
ProductName string `json:"productName"`
|
|||
|
MainPic string `json:"mainPic"`
|
|||
|
Area string `json:"area"`
|
|||
|
DisableArea string `json:"disableArea"`
|
|||
|
LittlePicture string `json:"littlepicture"`
|
|||
|
NetAddr string `json:"netAddr"`
|
|||
|
Flag bool `json:"flag"`
|
|||
|
NumberSel int `json:"numberSel"`
|
|||
|
}
|
|||
|
|
|||
|
// GetProductV2 获取单个商品信息
|
|||
|
func GetProductV2(params GoodsReq) (ApiResponse[[]ProductV2Resp], 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,
|
|||
|
"user_id": params.UserID,
|
|||
|
"Timestamp": params.Timestamp,
|
|||
|
"user_sign": userSign,
|
|||
|
}
|
|||
|
|
|||
|
body, err := httpUtil.NewRequest().SendFormData(productsV2Url, nil, formParams)
|
|||
|
|
|||
|
// 解析 JSON 响应
|
|||
|
var apiResponse ApiResponse[[]ProductV2Resp]
|
|||
|
err = json.Unmarshal([]byte(body), &apiResponse)
|
|||
|
if err != nil {
|
|||
|
return ApiResponse[[]ProductV2Resp]{}, fmt.Errorf("解析响应体时发生错误: %v", err)
|
|||
|
}
|
|||
|
|
|||
|
// 返回解析后的响应
|
|||
|
return apiResponse, nil
|
|||
|
}
|