You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
go-library/service/wnfuwu/elecity.go

53 lines
1.8 KiB

package wnfuwu
import (
"context"
"github.com/dtapps/go-library/utils/gojson"
"github.com/dtapps/go-library/utils/gorequest"
)
type ElecityResponse struct {
Errno int64 `json:"errno"` // 错误码0代表成功非0代表失败
Errmsg string `json:"errmsg"` // 错误描述
Data []struct {
Id int64 `json:"id,omitempty"`
CityName string `json:"city_name"` // 地区名称
Sort int64 `json:"sort"` // 排序
Initial string `json:"initial"` // 首字母
NeedYtype int64 `json:"need_ytype"` // 是否三要素认证
NeedCity int64 `json:"need_city"` // 是否需要选择城市(当此开关打开以后才有下面的城市列表)
City []struct {
Id int64 `json:"id,omitempty"`
CityName string `json:"city_name"` // 城市名称
Initial string `json:"initial"` // 首字母
} `json:"city"` // 支持的地级市
} `json:"data,omitempty"`
}
type ElecityResult struct {
Result ElecityResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
}
func newElecityResult(result ElecityResponse, body []byte, http gorequest.Response) *ElecityResult {
return &ElecityResult{Result: result, Body: body, Http: http}
}
// Elecity 电费支持地区查询
// https://www.showdoc.com.cn/dyr/9227008514209156
func (c *Client) Elecity(ctx context.Context, notMustParams ...gorequest.Params) (*ElecityResult, error) {
// 参数
params := gorequest.NewParamsWith(notMustParams...)
params.Set("userid", c.GetUserId())
// 请求
request, err := c.request(ctx, apiUrl+"/index/elecity", params)
if err != nil {
return newElecityResult(ElecityResponse{}, request.ResponseBody, request), err
}
// 定义
var response ElecityResponse
err = gojson.Unmarshal(request.ResponseBody, &response)
return newElecityResult(response, request.ResponseBody, request), err
}