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×=%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)
}