配置已保存

博士系统调试面板

物联网卡 OpenAPI 接口测试工具

v1.0.0

Go SDK 示例

package main import ( "crypto/md5" "encoding/hex" "encoding/json" "fmt" "io" "net/http" "net/url" "strconv" "strings" "time" ) const ( BaseURL = "http://your-api-server.com" ID = "your-agent-id" Secret = "your-agent-secret" ) // 生成签名 func makeSign(id, secret, times string) string { signStr := fmt.Sprintf("id=%s&secret=%s&times=%s", id, secret, times) hash := md5.Sum([]byte(signStr)) return strings.ToUpper(hex.EncodeToString(hash[:])) } // 发送GET请求 func apiGet(endpoint string, params map[string]string) (map[string]interface{}, error) { times := strconv.FormatInt(time.Now().Unix(), 10) sign := makeSign(ID, Secret, times) // 构建URL参数 values := url.Values{} values.Set("id", ID) values.Set("times", times) values.Set("sign", sign) for k, v := range params { values.Set(k, v) } fullURL := BaseURL + endpoint + "?" + values.Encode() resp, err := http.Get(fullURL) if err != nil { return nil, err } defer resp.Body.Close() body, err := io.ReadAll(resp.Body) if err != nil { return nil, err } var result map[string]interface{} err = json.Unmarshal(body, &result) return result, err } func main() { // 查询余额 result, err := apiGet("/hdiot/api/v1/agentapi/user", nil) if err != nil { fmt.Println("Error:", err) return } fmt.Println("查询余额结果:", result) // 查询流量 result, err = apiGet("/hdiot/api/v1/agentapi/flow", map[string]string{ "cardno": "your-card-number", }) if err != nil { fmt.Println("Error:", err) return } fmt.Println("查询流量结果:", result) // 查询实名信息 result, err = apiGet("/hdiot/api/v1/agentapi/getcertinfo", map[string]string{ "cardno": "your-card-number", }) if err != nil { fmt.Println("Error:", err) return } fmt.Println("查询实名结果:", result) // 卡板停机 result, err = apiGet("/hdiot/api/v1/agentapi/stop", map[string]string{ "cardno": "your-card-number", }) if err != nil { fmt.Println("Error:", err) return } fmt.Println("停机结果:", result) // 卡板复机 result, err = apiGet("/hdiot/api/v1/agentapi/start", map[string]string{ "cardno": "your-card-number", }) if err != nil { fmt.Println("Error:", err) return } fmt.Println("复机结果:", result) // 订购套餐 result, err = apiGet("/hdiot/api/v1/agentapi/order", map[string]string{ "cardno": "your-card-number", "packagelist_id": "套餐ID", "orderno": "订单号", "iseffect": "0", // 0=立即生效, 1=次月生效 }) if err != nil { fmt.Println("Error:", err) return } fmt.Println("订购结果:", result) }