package service import ( "encoding/json" "errors" "fmt" "github.com/gogf/gf/v2/encoding/gjson" "io/ioutil" "net/http" "strings" "time" "tyj_admin/api/v1/game" ) func GetHuaWeiConfig() *DemoConfig { var demoConfig DemoConfig demoConfig.RootUrlOrder = "https://orders-drcn.iap.cloud.huawei.com.cn/applications/v1/merchantQuery" return &demoConfig } func GetHuaWeiOrderList(continuationToken string, startAt, endAt int64) (*game.HuaWeiOrderResponse, error) { demoConfig := GetHuaWeiConfig() urlValue := map[string]interface{}{ "startAt": startAt, "endAt": endAt, } if len(continuationToken) > 0 { urlValue["continuationToken"] = continuationToken } var atResponse game.HuaWeiOrderResponse req, err := http.NewRequest("POST", demoConfig.RootUrlOrder, strings.NewReader(gjson.MustEncodeString(urlValue))) if err != nil { return &atResponse, err } auth, _ := BuildAuthorization() req.Header.Set("Authorization", auth) req.Header.Set("Content-Type", "application/json; charset=UTF-8") req.Header.Set("Accept", "application/json") client := &http.Client{Timeout: 15 * time.Second} resp, err := client.Do(req) if err != nil { return nil, fmt.Errorf("API请求失败: %v", err) } defer resp.Body.Close() bodyBytes, err := ioutil.ReadAll(resp.Body) if err != nil { return &atResponse, err } _ = json.Unmarshal(bodyBytes, &atResponse) if atResponse.ResponseCode != "" { return &atResponse, nil } else { return &atResponse, errors.New("Get order fail, " + string(bodyBytes)) } }