From 8d95f7a9474b0c31bac87b8c2d55cbe566dc9db5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Sun, 19 Jun 2022 15:40:06 +0800 Subject: [PATCH] - update leshuazf --- service/dingdanxia/pgsql.go | 2 +- service/dingtalk/pgsql.go | 2 +- service/douyin/pgsql.go | 2 +- service/eastiot/pgsql.go | 2 +- service/ejiaofei/pgsql.go | 2 +- service/feishu/pgsql.go | 2 +- service/jd/pgsql.go | 2 +- service/kashangwl/pgsql.go | 2 +- service/kuaishou/pgsql.go | 2 +- .../apiv2.merchant.updateAuthority.go | 10 +-- service/leshuazf/app.go | 82 ------------------- service/leshuazf/client.go | 44 ++++++++++ service/leshuazf/const.go | 10 +++ service/leshuazf/data.area.go | 10 +-- service/leshuazf/data.bankbranch2.go | 10 +-- service/leshuazf/data.mcc.go | 10 +-- service/leshuazf/get.go | 13 +++ service/leshuazf/mongo.go | 4 +- service/leshuazf/params.go | 27 ------ service/leshuazf/pgsql.go | 10 +-- service/leshuazf/request.go | 51 ++++++++++++ service/leshuazf/sign.go | 4 +- service/meituan/pgsql.go | 2 +- 23 files changed, 157 insertions(+), 148 deletions(-) delete mode 100644 service/leshuazf/app.go create mode 100644 service/leshuazf/client.go create mode 100644 service/leshuazf/const.go create mode 100644 service/leshuazf/get.go delete mode 100644 service/leshuazf/params.go create mode 100644 service/leshuazf/request.go diff --git a/service/dingdanxia/pgsql.go b/service/dingdanxia/pgsql.go index 4b92c39c..e82af9b1 100644 --- a/service/dingdanxia/pgsql.go +++ b/service/dingdanxia/pgsql.go @@ -16,7 +16,7 @@ func (c *Client) postgresqlLog(request gorequest.Response) { RequestApi: gorequest.UriParse(request.RequestUri).Path, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestParams)), //【请求】参数 - RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【返回】头部 + RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【请求】头部 ResponseHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.ResponseHeader)), //【返回】头部 ResponseStatusCode: request.ResponseStatusCode, //【返回】状态码 ResponseBody: request.ResponseBody, //【返回】内容 diff --git a/service/dingtalk/pgsql.go b/service/dingtalk/pgsql.go index 858069cc..4b877eb3 100644 --- a/service/dingtalk/pgsql.go +++ b/service/dingtalk/pgsql.go @@ -16,7 +16,7 @@ func (c *Client) postgresqlLog(request gorequest.Response) { RequestApi: gorequest.UriParse(request.RequestUri).Path, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestParams)), //【请求】参数 - RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【返回】头部 + RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【请求】头部 ResponseHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.ResponseHeader)), //【返回】头部 ResponseStatusCode: request.ResponseStatusCode, //【返回】状态码 ResponseBody: request.ResponseBody, //【返回】内容 diff --git a/service/douyin/pgsql.go b/service/douyin/pgsql.go index 1dea21fd..a208999d 100644 --- a/service/douyin/pgsql.go +++ b/service/douyin/pgsql.go @@ -16,7 +16,7 @@ func (c *Client) postgresqlLog(request gorequest.Response) { RequestApi: gorequest.UriParse(request.RequestUri).Path, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestParams)), //【请求】参数 - RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【返回】头部 + RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【请求】头部 ResponseHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.ResponseHeader)), //【返回】头部 ResponseStatusCode: request.ResponseStatusCode, //【返回】状态码 ResponseBody: request.ResponseBody, //【返回】内容 diff --git a/service/eastiot/pgsql.go b/service/eastiot/pgsql.go index 8e85ab25..ed9ead99 100644 --- a/service/eastiot/pgsql.go +++ b/service/eastiot/pgsql.go @@ -16,7 +16,7 @@ func (c *Client) postgresqlLog(request gorequest.Response) { RequestApi: gorequest.UriParse(request.RequestUri).Path, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestParams)), //【请求】参数 - RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【返回】头部 + RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【请求】头部 ResponseHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.ResponseHeader)), //【返回】头部 ResponseStatusCode: request.ResponseStatusCode, //【返回】状态码 ResponseBody: request.ResponseBody, //【返回】内容 diff --git a/service/ejiaofei/pgsql.go b/service/ejiaofei/pgsql.go index 536c4fa4..cb2db2c4 100644 --- a/service/ejiaofei/pgsql.go +++ b/service/ejiaofei/pgsql.go @@ -17,7 +17,7 @@ func (c *Client) postgresqlLog(request gorequest.Response) { RequestApi: gorequest.UriParse(request.RequestUri).Path, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestParams)), //【请求】参数 - RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【返回】头部 + RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【请求】头部 ResponseHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.ResponseHeader)), //【返回】头部 ResponseStatusCode: request.ResponseStatusCode, //【返回】状态码 ResponseBody: datatypes.JSON(gojson.JsonEncodeNoError(gomongo.XmlDecodeNoError(request.ResponseBody))), //【返回】内容 diff --git a/service/feishu/pgsql.go b/service/feishu/pgsql.go index 343494ec..cf11bb62 100644 --- a/service/feishu/pgsql.go +++ b/service/feishu/pgsql.go @@ -16,7 +16,7 @@ func (c *Client) postgresqlLog(request gorequest.Response) { RequestApi: gorequest.UriParse(request.RequestUri).Path, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestParams)), //【请求】参数 - RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【返回】头部 + RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【请求】头部 ResponseHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.ResponseHeader)), //【返回】头部 ResponseStatusCode: request.ResponseStatusCode, //【返回】状态码 ResponseBody: request.ResponseBody, //【返回】内容 diff --git a/service/jd/pgsql.go b/service/jd/pgsql.go index a5734d30..eb38abf4 100644 --- a/service/jd/pgsql.go +++ b/service/jd/pgsql.go @@ -16,7 +16,7 @@ func (c *Client) postgresqlLog(api string, request gorequest.Response) { RequestApi: api, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestParams)), //【请求】参数 - RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【返回】头部 + RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【请求】头部 ResponseHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.ResponseHeader)), //【返回】头部 ResponseStatusCode: request.ResponseStatusCode, //【返回】状态码 ResponseBody: request.ResponseBody, //【返回】内容 diff --git a/service/kashangwl/pgsql.go b/service/kashangwl/pgsql.go index 527d978d..6532faa6 100644 --- a/service/kashangwl/pgsql.go +++ b/service/kashangwl/pgsql.go @@ -16,7 +16,7 @@ func (c *Client) postgresqlLog(request gorequest.Response) { RequestApi: gorequest.UriParse(request.RequestUri).Path, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestParams)), //【请求】参数 - RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【返回】头部 + RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【请求】头部 ResponseHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.ResponseHeader)), //【返回】头部 ResponseStatusCode: request.ResponseStatusCode, //【返回】状态码 ResponseBody: request.ResponseBody, //【返回】内容 diff --git a/service/kuaishou/pgsql.go b/service/kuaishou/pgsql.go index 0416e172..cdf62175 100644 --- a/service/kuaishou/pgsql.go +++ b/service/kuaishou/pgsql.go @@ -16,7 +16,7 @@ func (c *Client) postgresqlLog(request gorequest.Response) { RequestApi: gorequest.UriParse(request.RequestUri).Path, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestParams)), //【请求】参数 - RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【返回】头部 + RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【请求】头部 ResponseHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.ResponseHeader)), //【返回】头部 ResponseStatusCode: request.ResponseStatusCode, //【返回】状态码 ResponseBody: request.ResponseBody, //【返回】内容 diff --git a/service/leshuazf/apiv2.merchant.updateAuthority.go b/service/leshuazf/apiv2.merchant.updateAuthority.go index 207af115..2d298702 100644 --- a/service/leshuazf/apiv2.merchant.updateAuthority.go +++ b/service/leshuazf/apiv2.merchant.updateAuthority.go @@ -16,19 +16,19 @@ type ApiV2MerchantUpdateAuthorityResult struct { Err error // 错误 } -func NewApiV2MerchantUpdateAuthorityResult(result ApiV2MerchantUpdateAuthorityResponse, body []byte, http gorequest.Response, err error) *ApiV2MerchantUpdateAuthorityResult { +func newApiV2MerchantUpdateAuthorityResult(result ApiV2MerchantUpdateAuthorityResponse, body []byte, http gorequest.Response, err error) *ApiV2MerchantUpdateAuthorityResult { return &ApiV2MerchantUpdateAuthorityResult{Result: result, Body: body, Http: http, Err: err} } // ApiV2MerchantUpdateAuthority 给商户开通D0交易/结算权限接口。其中D0交易影响交易接口内t0字段能否标1,D0结算影响商户该种支付方式的秒到 // https://www.yuque.com/leshuazf/doc/dbmxyi#Vw97n -func (app *App) ApiV2MerchantUpdateAuthority(notMustParams ...Params) *ApiV2MerchantUpdateAuthorityResult { +func (c *Client) ApiV2MerchantUpdateAuthority(notMustParams ...gorequest.Params) *ApiV2MerchantUpdateAuthorityResult { // 参数 - params := app.NewParamsWith(notMustParams...) + params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := app.request("apiv2/merchant/updateAuthority", params, http.MethodPost) + request, err := c.request("/apiv2/merchant/updateAuthority", params, http.MethodPost) // 定义 var response ApiV2MerchantUpdateAuthorityResponse err = json.Unmarshal(request.ResponseBody, &response) - return NewApiV2MerchantUpdateAuthorityResult(response, request.ResponseBody, request, err) + return newApiV2MerchantUpdateAuthorityResult(response, request.ResponseBody, request, err) } diff --git a/service/leshuazf/app.go b/service/leshuazf/app.go deleted file mode 100644 index 7d582cdb..00000000 --- a/service/leshuazf/app.go +++ /dev/null @@ -1,82 +0,0 @@ -package leshuazf - -import ( - "go.dtapp.net/library/utils/golog" - "go.dtapp.net/library/utils/gomongo" - "go.dtapp.net/library/utils/gorandom" - "go.dtapp.net/library/utils/gorequest" - "go.dtapp.net/library/utils/gotime" - "gorm.io/gorm" -) - -// App 乐刷 -type App struct { - agentId string // 服务商编号,由乐刷分配的接入方唯一标识,明文传输。 - Environment string // 环境 - KeyAgent string - mongo *gomongo.Client // 日志数据库 - pgsql *gorm.DB // pgsql数据库 - client *gorequest.App // 请求客户端 - log *golog.Api // 日志服务 - logTableName string // 日志表名 - logStatus bool // 日志状态 -} - -func NewApp(agentId string, environment string, keyAgent string, pgsql *gorm.DB) *App { - app := &App{agentId: agentId, Environment: environment, KeyAgent: keyAgent} - app.client = gorequest.NewHttp() - if pgsql != nil { - app.pgsql = pgsql - app.logStatus = true - app.logTableName = "leshuazf" - app.log = golog.NewApi(&golog.ApiConfig{ - Db: pgsql, - TableName: app.logTableName, - }) - } - return app -} - -func (app *App) request(url string, params map[string]interface{}, method string) (resp gorequest.Response, err error) { - - // 环境 - if app.Environment == "test" { - url = "http://t-saas-mch.lepass.cn/" + url - } else { - url = "https://saas-mch.leshuazf.com/" + url - } - - // 参数 - params["agentId"] = app.agentId // 服务商编号,由乐刷分配的接入方唯一标识,明文传输。 - params["version"] = "2.0" // 目前固定值2.0 - params["reqSerialNo"] = gotime.Current().SetFormat("20060102150405") + gorandom.Numeric(5) // 请求流水号(yyyyMMddHHmmssSSSXXXXX,其中 XXXXX为5位顺序号,禁止使用UUID等无意义数据) - params["sign"] = app.getSign(params) - - // 创建请求 - client := app.client - - // 设置请求地址 - client.SetUri(url) - - // 设置方式 - client.SetMethod(method) - - // 设置格式 - client.SetContentTypeForm() - - // 设置参数 - client.SetParams(params) - - // 发起请求 - request, err := client.Request() - if err != nil { - return gorequest.Response{}, err - } - - // 日志 - if app.logStatus == true { - go app.postgresqlLog(request) - } - - return request, err -} diff --git a/service/leshuazf/client.go b/service/leshuazf/client.go new file mode 100644 index 00000000..abf827f8 --- /dev/null +++ b/service/leshuazf/client.go @@ -0,0 +1,44 @@ +package leshuazf + +import ( + "go.dtapp.net/library/utils/golog" + "go.dtapp.net/library/utils/gomongo" + "go.dtapp.net/library/utils/gorequest" + "gorm.io/gorm" +) + +type ConfigClient struct { + AgentId string // 服务商编号,由乐刷分配的接入方唯一标识,明文传输。 + Environment string // 环境 + KeyAgent string + MongoDb *gomongo.Client // 日志数据库 + PgsqlDb *gorm.DB // pgsql数据库 +} + +// Client 乐刷 +type Client struct { + client *gorequest.App // 请求客户端 + log *golog.ApiClient // 日志服务 + logStatus bool // 日志状态 + config *ConfigClient // 配置 +} + +func NewClient(config *ConfigClient) (*Client, error) { + + var err error + c := &Client{config: config} + + c.client = gorequest.NewHttp() + if c.config.PgsqlDb != nil { + c.logStatus = true + c.log, err = golog.NewApiClient(&golog.ConfigApiClient{ + Db: c.config.PgsqlDb, + TableName: logTable, + }) + if err != nil { + return nil, err + } + } + + return c, nil +} diff --git a/service/leshuazf/const.go b/service/leshuazf/const.go new file mode 100644 index 00000000..6769b161 --- /dev/null +++ b/service/leshuazf/const.go @@ -0,0 +1,10 @@ +package leshuazf + +const ( + apiUrl = "https://saas-mch.leshuazf.com" + apiTestUrl = "http://t-saas-mch.lepass.cn" +) + +const ( + logTable = "leshuazf" +) diff --git a/service/leshuazf/data.area.go b/service/leshuazf/data.area.go index d7f413a2..b22ac489 100644 --- a/service/leshuazf/data.area.go +++ b/service/leshuazf/data.area.go @@ -24,19 +24,19 @@ type DataAreaResult struct { Err error // 错误 } -func NewDataAreaResult(result DataAreaResponse, body []byte, http gorequest.Response, err error) *DataAreaResult { +func newDataAreaResult(result DataAreaResponse, body []byte, http gorequest.Response, err error) *DataAreaResult { return &DataAreaResult{Result: result, Body: body, Http: http, Err: err} } // DataArea 代理商通过地区信息来查地区详细信息 // https://www.yuque.com/leshuazf/doc/dbmxyi#YwJl7 -func (app *App) DataArea(notMustParams ...Params) *DataAreaResult { +func (c *Client) DataArea(notMustParams ...gorequest.Params) *DataAreaResult { // 参数 - params := app.NewParamsWith(notMustParams...) + params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := app.request("data/area", params, http.MethodPost) + request, err := c.request("/data/area", params, http.MethodPost) // 定义 var response DataAreaResponse err = json.Unmarshal(request.ResponseBody, &response) - return NewDataAreaResult(response, request.ResponseBody, request, err) + return newDataAreaResult(response, request.ResponseBody, request, err) } diff --git a/service/leshuazf/data.bankbranch2.go b/service/leshuazf/data.bankbranch2.go index 5cad0481..7204e349 100644 --- a/service/leshuazf/data.bankbranch2.go +++ b/service/leshuazf/data.bankbranch2.go @@ -37,19 +37,19 @@ type DataBankBranch2Result struct { Err error // 错误 } -func NewDataBankBranch2Result(result DataBankBranch2Response, body []byte, http gorequest.Response, err error) *DataBankBranch2Result { +func newDataBankBranch2Result(result DataBankBranch2Response, body []byte, http gorequest.Response, err error) *DataBankBranch2Result { return &DataBankBranch2Result{Result: result, Body: body, Http: http, Err: err} } // DataBankBranch2 代理商通过联行号来查支行信息 // https://www.yuque.com/leshuazf/doc/dbmxyi#QYl0c -func (app *App) DataBankBranch2(notMustParams ...Params) *DataBankBranch2Result { +func (c *Client) DataBankBranch2(notMustParams ...gorequest.Params) *DataBankBranch2Result { // 参数 - params := app.NewParamsWith(notMustParams...) + params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := app.request("data/bankbranch2", params, http.MethodPost) + request, err := c.request("/data/bankbranch2", params, http.MethodPost) // 定义 var response DataBankBranch2Response err = json.Unmarshal(request.ResponseBody, &response) - return NewDataBankBranch2Result(response, request.ResponseBody, request, err) + return newDataBankBranch2Result(response, request.ResponseBody, request, err) } diff --git a/service/leshuazf/data.mcc.go b/service/leshuazf/data.mcc.go index 29609b0d..25490f8c 100644 --- a/service/leshuazf/data.mcc.go +++ b/service/leshuazf/data.mcc.go @@ -23,19 +23,19 @@ type DataMccResult struct { Err error // 错误 } -func NewDataMccResult(result DataMccResponse, body []byte, http gorequest.Response, err error) *DataMccResult { +func newDataMccResult(result DataMccResponse, body []byte, http gorequest.Response, err error) *DataMccResult { return &DataMccResult{Result: result, Body: body, Http: http, Err: err} } // DataMcc 代理商通过MccCode来查商户类别明细 // https://www.yuque.com/leshuazf/doc/dbmxyi#jRTHN -func (app *App) DataMcc(notMustParams ...Params) *DataMccResult { +func (c *Client) DataMcc(notMustParams ...gorequest.Params) *DataMccResult { // 参数 - params := app.NewParamsWith(notMustParams...) + params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := app.request("data/mcc", params, http.MethodPost) + request, err := c.request("/data/mcc", params, http.MethodPost) // 定义 var response DataMccResponse err = json.Unmarshal(request.ResponseBody, &response) - return NewDataMccResult(response, request.ResponseBody, request, err) + return newDataMccResult(response, request.ResponseBody, request, err) } diff --git a/service/leshuazf/get.go b/service/leshuazf/get.go new file mode 100644 index 00000000..b1518605 --- /dev/null +++ b/service/leshuazf/get.go @@ -0,0 +1,13 @@ +package leshuazf + +func (c *Client) GetEnvironment() string { + return c.config.Environment +} + +func (c *Client) GetAgentId() string { + return c.config.AgentId +} + +func (c *Client) GetKeyAgent() string { + return c.config.KeyAgent +} diff --git a/service/leshuazf/mongo.go b/service/leshuazf/mongo.go index b020187e..50d38db1 100644 --- a/service/leshuazf/mongo.go +++ b/service/leshuazf/mongo.go @@ -30,8 +30,8 @@ func (m *mongoZap) TableName() string { return "leshuazf" } -func (app *App) mongoLog(request gorequest.Response) { - _, _ = app.mongo.Model(&mongoZap{}).InsertOne(mongoZap{ +func (c *Client) mongoLog(request gorequest.Response) { + _, _ = c.config.MongoDb.Model(&mongoZap{}).InsertOne(mongoZap{ RequestTime: gomongo.BsonTime(request.RequestTime), //【请求】时间 RequestUri: request.RequestUri, //【请求】链接 RequestUrl: gorequest.UriParse(request.RequestUri).Url, //【请求】链接 diff --git a/service/leshuazf/params.go b/service/leshuazf/params.go deleted file mode 100644 index a294b3ab..00000000 --- a/service/leshuazf/params.go +++ /dev/null @@ -1,27 +0,0 @@ -package leshuazf - -// Params 请求参数 -type Params map[string]interface{} - -func NewParams() Params { - p := make(Params) - return p -} - -func (app *App) NewParamsWith(params ...Params) Params { - p := make(Params) - for _, v := range params { - p.SetParams(v) - } - return p -} - -func (p Params) Set(key string, value interface{}) { - p[key] = value -} - -func (p Params) SetParams(params Params) { - for key, value := range params { - p[key] = value - } -} diff --git a/service/leshuazf/pgsql.go b/service/leshuazf/pgsql.go index 046f2409..b61a2e82 100644 --- a/service/leshuazf/pgsql.go +++ b/service/leshuazf/pgsql.go @@ -8,19 +8,19 @@ import ( ) // 记录日志 -func (app *App) postgresqlLog(request gorequest.Response) { - app.log.Api.Record(golog.ApiPostgresqlLog{ - RequestTime: request.RequestTime, //【请求】时间 +func (c *Client) postgresqlLog(request gorequest.Response) { + c.log.Record(golog.ApiPostgresqlLog{ + RequestTime: golog.TimeString{Time: request.RequestTime}, //【请求】时间 RequestUri: request.RequestUri, //【请求】链接 RequestUrl: gorequest.UriParse(request.RequestUri).Url, //【请求】链接 RequestApi: gorequest.UriParse(request.RequestUri).Path, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestParams)), //【请求】参数 - RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【返回】头部 + RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【请求】头部 ResponseHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.ResponseHeader)), //【返回】头部 ResponseStatusCode: request.ResponseStatusCode, //【返回】状态码 ResponseBody: request.ResponseBody, //【返回】内容 ResponseContentLength: request.ResponseContentLength, //【返回】大小 - ResponseTime: request.ResponseTime, //【返回】时间 + ResponseTime: golog.TimeString{Time: request.ResponseTime}, //【返回】时间 }) } diff --git a/service/leshuazf/request.go b/service/leshuazf/request.go new file mode 100644 index 00000000..48719673 --- /dev/null +++ b/service/leshuazf/request.go @@ -0,0 +1,51 @@ +package leshuazf + +import ( + "go.dtapp.net/library/utils/gorandom" + "go.dtapp.net/library/utils/gorequest" + "go.dtapp.net/library/utils/gotime" +) + +func (c *Client) request(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) + + // 发起请求 + request, err := client.Request() + if err != nil { + return gorequest.Response{}, err + } + + // 日志 + if c.logStatus == true { + go c.postgresqlLog(request) + } + + return request, err +} diff --git a/service/leshuazf/sign.go b/service/leshuazf/sign.go index f48949f3..117737a5 100644 --- a/service/leshuazf/sign.go +++ b/service/leshuazf/sign.go @@ -9,7 +9,7 @@ import ( // 数据签名 // https://www.yuque.com/leshuazf/doc/dbmxyi#Nr9Ps -func (app *App) getSign(params map[string]interface{}) string { +func (c *Client) getSign(params map[string]interface{}) string { // 参数按照参数名的字典升序排列 var keys []string for k := range params { @@ -17,5 +17,5 @@ func (app *App) getSign(params map[string]interface{}) string { } sort.Strings(keys) str, _ := json.Marshal(keys) // data字符串值 - return gobase64.Encode(gomd5.ToLower("lepos" + app.KeyAgent + string(str))) + return gobase64.Encode(gomd5.ToLower("lepos" + c.GetKeyAgent() + string(str))) } diff --git a/service/meituan/pgsql.go b/service/meituan/pgsql.go index af8577de..6b2049cd 100644 --- a/service/meituan/pgsql.go +++ b/service/meituan/pgsql.go @@ -16,7 +16,7 @@ func (c *Client) postgresqlLog(request gorequest.Response) { RequestApi: gorequest.UriParse(request.RequestUri).Path, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestParams)), //【请求】参数 - RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【返回】头部 + RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【请求】头部 ResponseHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.ResponseHeader)), //【返回】头部 ResponseStatusCode: request.ResponseStatusCode, //【返回】状态码 ResponseBody: request.ResponseBody, //【返回】内容