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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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
}