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/leshuazf/request.go

53 lines
1.4 KiB

package leshuazf
import (
1 year ago
"context"
2 years ago
"github.com/dtapps/go-library/utils/gorandom"
"github.com/dtapps/go-library/utils/gorequest"
"github.com/dtapps/go-library/utils/gotime"
)
1 year ago
func (c *Client) request(ctx context.Context, url string, params map[string]interface{}, method string) (gorequest.Response, error) {
// 环境
if c.GetEnvironment() == "test" {
url = apiTestUrl + url
} else {
url = apiUrl + url
}
// 参数
params["agentId"] = c.GetAgentId() // 服务商编号,由乐刷分配的接入方唯一标识,明文传输。
params["version"] = "2.0" // 目前固定值2.0
params["reqSerialNo"] = gotime.Current().SetFormat("20060102150405") + gorandom.Numeric(5) // 请求流水号(yyyyMMddHHmmssSSSXXXXX其中 XXXXX为5位顺序号,禁止使用UUID等无意义数据)
params["sign"] = c.getSign(params)
// 创建请求
client := c.client
// 设置请求地址
client.SetUri(url)
// 设置方式
client.SetMethod(method)
// 设置格式
client.SetContentTypeForm()
// 设置参数
client.SetParams(params)
// 发起请求
1 year ago
request, err := client.Request(ctx)
if err != nil {
return gorequest.Response{}, err
}
// 日志
9 months ago
if c.slog.status {
go c.slog.client.Middleware(ctx, request)
2 years ago
}
return request, err
}