From 50011b492a9e6dce0e6cc8db543cbdc3263da06d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Thu, 27 Apr 2023 11:54:57 +0800 Subject: [PATCH] - update wechatopen --- .../cgi-bin.account.getaccountbasicinfo.go | 19 +-- .../cgi-bin.component.api_authorizer_token.go | 30 ++-- .../cgi-bin.component.api_component_token.go | 23 +-- ...gi-bin.component.api_create_preauthcode.go | 23 +-- ...i-bin.component.api_get_authorizer_info.go | 28 ++-- .../cgi-bin.component.api_query_auth.go | 24 +-- ...cgi-bin.component.api_start_push_ticket.go | 21 +-- ...-bin.component.fastregisterweapp.create.go | 12 +- ...-bin.component.fastregisterweapp.search.go | 12 +- .../cgi-bin.component.getprivacysetting.go | 21 +-- .../cgi-bin.component.setprivacysetting.go | 19 +-- .../wechatopen/cgi-bin.get_api_domain_ip.go | 10 +- .../cgi-bin.material.get_material.go | 20 +-- service/wechatopen/cgi-bin.open.sameentity.go | 12 +- service/wechatopen/cgi-bin.openapi.rid.get.go | 54 +++++++ service/wechatopen/cgi-bin.shorturl.go | 24 ++- .../cgi-bin.wxopen.qrcodejumpadd.go | 19 +-- .../cgi-bin.wxopen.qrcodejumpdelete.go | 21 +-- .../cgi-bin.wxopen.qrcodejumpdownloa.go | 19 +-- .../cgi-bin.wxopen.qrcodejumpget.go | 19 +-- .../cgi-bin.wxopen.qrcodejumppublish.go | 21 +-- service/wechatopen/check.go | 27 ++-- service/wechatopen/client.go | 65 ++++---- service/wechatopen/config.go | 13 -- ...acube.getweanalysisappiddailyretaininfo.go | 20 +-- ...ube.getweanalysisappiddailysummarytrend.go | 20 +-- ...acube.getweanalysisappiddailyvisittrend.go | 20 +-- ...ube.getweanalysisappidmonthlyretaininfo.go | 20 +-- ...ube.getweanalysisappidmonthlyvisittrend.go | 20 +-- ...datacube.getweanalysisappiduserportrait.go | 20 +-- ...ube.getweanalysisappidvisitdistribution.go | 20 +-- .../datacube.getweanalysisappidvisitpage.go | 20 +-- ...cube.getweanalysisappidweeklyretaininfo.go | 20 +-- ...cube.getweanalysisappidweeklyvisittrend.go | 20 +-- service/wechatopen/error.go | 16 -- service/wechatopen/get.go | 65 +++++--- service/wechatopen/redis.go | 151 ------------------ service/wechatopen/request.go | 4 +- .../wechatopen/service_http.verify_ticket.go | 4 +- service/wechatopen/set.go | 33 ++++ service/wechatopen/sign.decrypt.go | 4 +- .../sns.component.jscode2session.go | 20 +-- service/wechatopen/tcb.wxpaylist.go | 13 +- service/wechatopen/wxa.addtotemplate.go | 19 +-- service/wechatopen/wxa.bind_tester.go | 19 +-- .../wxa.business.getuserphonenumber.go | 19 +-- service/wechatopen/wxa.commit.go | 19 +-- service/wechatopen/wxa.deletetemplate.go | 15 +- service/wechatopen/wxa.get_auditstatus.go | 19 +-- service/wechatopen/wxa.get_category.go | 19 +-- .../wechatopen/wxa.get_effective_domain.go | 19 +-- .../wechatopen/wxa.get_latest_auditstatus.go | 19 +-- service/wechatopen/wxa.get_page.go | 19 +-- service/wechatopen/wxa.get_qrcode.go | 23 +-- ...ltamsinfo.agency_get_custom_share_ratio.go | 66 ++++++++ .../wxa.getdefaultamsinfo.get_share_ratio.go | 63 ++++++++ .../wechatopen/wxa.gettemplatedraftlist.go | 15 +- service/wechatopen/wxa.gettemplatelist.go | 15 +- service/wechatopen/wxa.getuserriskrank.go | 9 +- service/wechatopen/wxa.getversioninfo.go | 19 +-- service/wechatopen/wxa.getwxacodeunlimit.go | 22 +-- service/wechatopen/wxa.media_check_async.go | 7 +- service/wechatopen/wxa.memberauth.go | 21 +-- service/wechatopen/wxa.modify_domain.go | 15 +- .../wechatopen/wxa.modify_domain_directly.go | 15 +- service/wechatopen/wxa.msg_sec_check.go | 7 +- ...tionams.agency_check_can_open_publisher.go | 61 +++++++ ...xa.operationams.agency_create_publisher.go | 68 ++++++++ .../wxa.operationams.agency_get_settlement.go | 1 + service/wechatopen/wxa.release.go | 19 +-- service/wechatopen/wxa.revertcoderelease.go | 19 +-- .../wxa.security.apply_privacy_interface.go | 15 +- .../wxa.security.applysetorderpathinfo.go | 15 +- .../wxa.security.get_privacy_interface.go | 15 +- .../wxa.security.getorderpathinfo.go | 15 +- ...ltamsinfo.agency_set_custom_share_ratio.go | 63 ++++++++ .../wxa.setdefaultamsinfo.set_share_ratio.go | 63 ++++++++ service/wechatopen/wxa.setwebviewdomain.go | 15 +- service/wechatopen/wxa.submit_audit.go | 15 +- service/wechatopen/wxa.unbind_tester.go | 19 +-- .../wxaapi.wxaembedded.add_embedded.go | 15 +- .../wxaapi.wxaembedded.del_authorize.go | 15 +- .../wxaapi.wxaembedded.del_embedded.go | 15 +- .../wechatopen/wxaapi.wxaembedded.get_list.go | 15 +- .../wxaapi.wxaembedded.get_own_list.go | 15 +- .../wxaapi.wxaembedded.set_authorize.go | 16 +- 86 files changed, 924 insertions(+), 1119 deletions(-) create mode 100644 service/wechatopen/cgi-bin.openapi.rid.get.go delete mode 100644 service/wechatopen/error.go delete mode 100644 service/wechatopen/redis.go create mode 100644 service/wechatopen/set.go create mode 100644 service/wechatopen/wxa.getdefaultamsinfo.agency_get_custom_share_ratio.go create mode 100644 service/wechatopen/wxa.getdefaultamsinfo.get_share_ratio.go create mode 100644 service/wechatopen/wxa.operationams.agency_check_can_open_publisher.go create mode 100644 service/wechatopen/wxa.operationams.agency_create_publisher.go create mode 100644 service/wechatopen/wxa.operationams.agency_get_settlement.go create mode 100644 service/wechatopen/wxa.setdefaultamsinfo.agency_set_custom_share_ratio.go create mode 100644 service/wechatopen/wxa.setdefaultamsinfo.set_share_ratio.go diff --git a/service/wechatopen/cgi-bin.account.getaccountbasicinfo.go b/service/wechatopen/cgi-bin.account.getaccountbasicinfo.go index dc8d12d8..5f25018f 100644 --- a/service/wechatopen/cgi-bin.account.getaccountbasicinfo.go +++ b/service/wechatopen/cgi-bin.account.getaccountbasicinfo.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -57,26 +56,18 @@ func newCgiBinAccountGetAccountBasicInfoResult(result CgiBinAccountGetAccountBas // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_Basic_Info/Mini_Program_Information_Settings.html func (c *Client) CgiBinAccountGetAccountBasicInfo(ctx context.Context, notMustParams ...gorequest.Params) (*CgiBinAccountGetAccountBasicInfoResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newCgiBinAccountGetAccountBasicInfoResult(CgiBinAccountGetAccountBasicInfoResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/account/getaccountbasicinfo?access_token=%v", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet) + request, err := c.request(ctx, apiUrl+"/cgi-bin/account/getaccountbasicinfo?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodGet) if err != nil { - return nil, err + return newCgiBinAccountGetAccountBasicInfoResult(CgiBinAccountGetAccountBasicInfoResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinAccountGetAccountBasicInfoResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinAccountGetAccountBasicInfoResult(response, request.ResponseBody, request), nil + return newCgiBinAccountGetAccountBasicInfoResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/cgi-bin.component.api_authorizer_token.go b/service/wechatopen/cgi-bin.component.api_authorizer_token.go index 81fbfce9..5d79150b 100644 --- a/service/wechatopen/cgi-bin.component.api_authorizer_token.go +++ b/service/wechatopen/cgi-bin.component.api_authorizer_token.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -27,32 +26,23 @@ func newCgiBinComponentApiAuthorizerTokenResult(result CgiBinComponentApiAuthori // CgiBinComponentApiAuthorizerToken 获取/刷新接口调用令牌 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html -func (c *Client) CgiBinComponentApiAuthorizerToken(ctx context.Context, authorizerRefreshToken string) (*CgiBinComponentApiAuthorizerTokenResult, error) { +func (c *Client) CgiBinComponentApiAuthorizerToken(ctx context.Context, authorizerRefreshToken string, notMustParams ...gorequest.Params) (*CgiBinComponentApiAuthorizerTokenResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newCgiBinComponentApiAuthorizerTokenResult(CgiBinComponentApiAuthorizerTokenResponse{}, []byte{}, gorequest.Response{}, c.GetAuthorizerAppid(ctx)), err } // 参数 - param := gorequest.NewParams() - param["component_appid"] = c.GetComponentAppId() // 第三方平台 appid - param["authorizer_appid"] = c.GetAuthorizerAppid() // 授权方 appid - param["authorizer_refresh_token"] = authorizerRefreshToken // 授权码, 会在授权成功时返回给第三方平台 - params := gorequest.NewParamsWith(param) + params := gorequest.NewParamsWith(notMustParams...) + params.Set("component_appid", c.GetComponentAppId(ctx)) // 第三方平台appid + params.Set("authorizer_appid", c.GetAuthorizerAppid(ctx)) // 授权方appid + params.Set("authorizer_refresh_token", authorizerRefreshToken) // 授权码会在授权成功时返回给第三方平台 // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/api_authorizer_token?component_access_token=%v", c.GetComponentAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/cgi-bin/component/api_authorizer_token?component_access_token="+c.GetComponentAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinComponentApiAuthorizerTokenResult(CgiBinComponentApiAuthorizerTokenResponse{}, request.ResponseBody, request, params.Get("authorizer_appid").(string)), err } // 定义 var response CgiBinComponentApiAuthorizerTokenResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinComponentApiAuthorizerTokenResult(response, request.ResponseBody, request, param["authorizer_appid"].(string)), nil + return newCgiBinComponentApiAuthorizerTokenResult(response, request.ResponseBody, request, params.Get("authorizer_appid").(string)), err } diff --git a/service/wechatopen/cgi-bin.component.api_component_token.go b/service/wechatopen/cgi-bin.component.api_component_token.go index 532bfb26..b422a10b 100644 --- a/service/wechatopen/cgi-bin.component.api_component_token.go +++ b/service/wechatopen/cgi-bin.component.api_component_token.go @@ -24,28 +24,19 @@ func newCgiBinComponentApiComponentTokenResult(result CgiBinComponentApiComponen // CgiBinComponentApiComponentToken 令牌 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/component_access_token.html -func (c *Client) CgiBinComponentApiComponentToken(ctx context.Context) (*CgiBinComponentApiComponentTokenResult, error) { - // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } +func (c *Client) CgiBinComponentApiComponentToken(ctx context.Context, notMustParams ...gorequest.Params) (*CgiBinComponentApiComponentTokenResult, error) { // 参数 - param := gorequest.NewParams() - param["component_appid"] = c.GetComponentAppId() // 第三方平台 appid - param["component_appsecret"] = c.GetComponentAppSecret() // 第三方平台 appsecret - param["component_verify_ticket"] = c.GetComponentVerifyTicket(ctx) // 微信后台推送的 ticket - params := gorequest.NewParamsWith(param) + params := gorequest.NewParamsWith(notMustParams...) + params.Set("component_appid", c.GetComponentAppId(ctx)) // 第三方平台appid + params.Set("component_appsecret", c.GetComponentAppSecret(ctx)) // 第三方平台appsecret + params.Set("component_verify_ticket", c.GetComponentVerifyTicket(ctx)) // 微信后台推送的ticket // 请求 request, err := c.request(ctx, apiUrl+"/cgi-bin/component/api_component_token", params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinComponentApiComponentTokenResult(CgiBinComponentApiComponentTokenResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinComponentApiComponentTokenResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinComponentApiComponentTokenResult(response, request.ResponseBody, request), nil + return newCgiBinComponentApiComponentTokenResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/cgi-bin.component.api_create_preauthcode.go b/service/wechatopen/cgi-bin.component.api_create_preauthcode.go index 653396f7..68562354 100644 --- a/service/wechatopen/cgi-bin.component.api_create_preauthcode.go +++ b/service/wechatopen/cgi-bin.component.api_create_preauthcode.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -25,27 +24,17 @@ func newCgiBinComponentApiCreatePreAuthCodenResult(result CgiBinComponentApiCrea // CgiBinComponentApiCreatePreAuthCoden 预授权码 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/pre_auth_code.html -func (c *Client) CgiBinComponentApiCreatePreAuthCoden(ctx context.Context) (*CgiBinComponentApiCreatePreAuthCodenResult, error) { - // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } +func (c *Client) CgiBinComponentApiCreatePreAuthCoden(ctx context.Context, notMustParams ...gorequest.Params) (*CgiBinComponentApiCreatePreAuthCodenResult, error) { // 参数 - param := gorequest.NewParams() - param["component_appid"] = c.GetComponentAppId() // 第三方平台 appid - params := gorequest.NewParamsWith(param) + params := gorequest.NewParamsWith(notMustParams...) + params.Set("component_appid", c.GetComponentAppId(ctx)) // 第三方平台appid // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/api_create_preauthcode?component_access_token=%v", c.GetComponentAccessToken(ctx)), params, http.MethodPost) - + request, err := c.request(ctx, apiUrl+"/cgi-bin/component/api_create_preauthcode?component_access_token="+c.GetComponentAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinComponentApiCreatePreAuthCodenResult(CgiBinComponentApiCreatePreAuthCodenResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinComponentApiCreatePreAuthCodenResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinComponentApiCreatePreAuthCodenResult(response, request.ResponseBody, request), nil + return newCgiBinComponentApiCreatePreAuthCodenResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/cgi-bin.component.api_get_authorizer_info.go b/service/wechatopen/cgi-bin.component.api_get_authorizer_info.go index 950964ef..8970862c 100644 --- a/service/wechatopen/cgi-bin.component.api_get_authorizer_info.go +++ b/service/wechatopen/cgi-bin.component.api_get_authorizer_info.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -83,31 +82,22 @@ func newCgiBinComponentApiGetAuthorizerInfoResult(result CgiBinComponentApiGetAu // CgiBinComponentApiGetAuthorizerInfo 获取授权帐号详情 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_get_authorizer_info.html -func (c *Client) CgiBinComponentApiGetAuthorizerInfo(ctx context.Context) (*CgiBinComponentApiGetAuthorizerInfoResult, error) { +func (c *Client) CgiBinComponentApiGetAuthorizerInfo(ctx context.Context, notMustParams ...gorequest.Params) (*CgiBinComponentApiGetAuthorizerInfoResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerIsConfig(ctx); err != nil { + return newCgiBinComponentApiGetAuthorizerInfoResult(CgiBinComponentApiGetAuthorizerInfoResponse{}, []byte{}, gorequest.Response{}), err } // 参数 - param := gorequest.NewParams() - param["component_appid"] = c.GetComponentAppId() // 第三方平台 appid - param["authorizer_appid"] = c.GetAuthorizerAppid() // 授权方 appid - params := gorequest.NewParamsWith(param) + params := gorequest.NewParamsWith(notMustParams...) + params.Set("component_appid", c.GetComponentAppId(ctx)) // 第三方平台appid + params.Set("authorizer_appid", c.GetAuthorizerAppid(ctx)) // 授权方appid // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/api_get_authorizer_info?component_access_token=%v", c.GetComponentAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/cgi-bin/component/api_get_authorizer_info?component_access_token="+c.GetComponentAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinComponentApiGetAuthorizerInfoResult(CgiBinComponentApiGetAuthorizerInfoResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinComponentApiGetAuthorizerInfoResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinComponentApiGetAuthorizerInfoResult(response, request.ResponseBody, request), nil + return newCgiBinComponentApiGetAuthorizerInfoResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/cgi-bin.component.api_query_auth.go b/service/wechatopen/cgi-bin.component.api_query_auth.go index f4f63b96..40daf58d 100644 --- a/service/wechatopen/cgi-bin.component.api_query_auth.go +++ b/service/wechatopen/cgi-bin.component.api_query_auth.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -39,27 +38,18 @@ func newCgiBinComponentApiQueryAuthResult(result CgiBinComponentApiQueryAuthResp // CgiBinComponentApiQueryAuth 使用授权码获取授权信息 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/authorization_info.html -func (c *Client) CgiBinComponentApiQueryAuth(ctx context.Context, authorizationCode string) (*CgiBinComponentApiQueryAuthResult, error) { - // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } +func (c *Client) CgiBinComponentApiQueryAuth(ctx context.Context, authorizationCode string, notMustParams ...gorequest.Params) (*CgiBinComponentApiQueryAuthResult, error) { // 参数 - param := gorequest.NewParams() - param["component_appid"] = c.GetComponentAppId() // 第三方平台 appid - param["authorization_code"] = authorizationCode // 授权码, 会在授权成功时返回给第三方平台 - params := gorequest.NewParamsWith(param) + params := gorequest.NewParamsWith(notMustParams...) + params.Set("component_appid", c.GetComponentAppId(ctx)) // 第三方平台appid + params.Set("authorization_code", authorizationCode) // 授权码会在授权成功时返回给第三方平台 // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/api_query_auth?component_access_token=%v", c.GetComponentAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/cgi-bin/component/api_query_auth?component_access_token="+c.GetComponentAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinComponentApiQueryAuthResult(CgiBinComponentApiQueryAuthResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinComponentApiQueryAuthResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinComponentApiQueryAuthResult(response, request.ResponseBody, request), nil + return newCgiBinComponentApiQueryAuthResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/cgi-bin.component.api_start_push_ticket.go b/service/wechatopen/cgi-bin.component.api_start_push_ticket.go index 738cfcdd..01a5acff 100644 --- a/service/wechatopen/cgi-bin.component.api_start_push_ticket.go +++ b/service/wechatopen/cgi-bin.component.api_start_push_ticket.go @@ -26,27 +26,18 @@ func newCgiBinComponentApiStartPushTicketResult(result CgiBinComponentApiStartPu // CgiBinComponentApiStartPushTicket 启动ticket推送服务 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/component_verify_ticket_service.html -func (c *Client) CgiBinComponentApiStartPushTicket(ctx context.Context) (*CgiBinComponentApiStartPushTicketResult, error) { - // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } +func (c *Client) CgiBinComponentApiStartPushTicket(ctx context.Context, notMustParams ...gorequest.Params) (*CgiBinComponentApiStartPushTicketResult, error) { // 参数 - param := gorequest.NewParams() - param["component_appid"] = c.GetComponentAppId() // 平台型第三方平台的appid - param["component_secret"] = c.GetComponentAppSecret() // 平台型第三方平台的APPSECRET - params := gorequest.NewParamsWith(param) + params := gorequest.NewParamsWith(notMustParams...) + params.Set("component_appid", c.GetComponentAppId(ctx)) // 第三方平台appid + params.Set("component_secret", c.GetComponentAppSecret(ctx)) // 第三方平台app_secret // 请求 request, err := c.request(ctx, apiUrl+"/cgi-bin/component/api_start_push_ticket", params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinComponentApiStartPushTicketResult(CgiBinComponentApiStartPushTicketResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinComponentApiStartPushTicketResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinComponentApiStartPushTicketResult(response, request.ResponseBody, request), nil + return newCgiBinComponentApiStartPushTicketResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/cgi-bin.component.fastregisterweapp.create.go b/service/wechatopen/cgi-bin.component.fastregisterweapp.create.go index 41febc91..376cf55a 100644 --- a/service/wechatopen/cgi-bin.component.fastregisterweapp.create.go +++ b/service/wechatopen/cgi-bin.component.fastregisterweapp.create.go @@ -26,25 +26,17 @@ func newCgiBinComponentFastRegisterWeAppCreateResult(result CgiBinComponentFastR // CgiBinComponentFastRegisterWeAppCreate 快速注册企业小程序 // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/register-management/fast-registration-ent/registerMiniprogram.html func (c *Client) CgiBinComponentFastRegisterWeAppCreate(ctx context.Context, notMustParams ...gorequest.Params) (*CgiBinComponentFastRegisterWeAppCreateResult, error) { - // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 request, err := c.request(ctx, apiUrl+"/cgi-bin/component/fastregisterweapp?action=create&component_access_token="+c.GetComponentAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinComponentFastRegisterWeAppCreateResult(CgiBinComponentFastRegisterWeAppCreateResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinComponentFastRegisterWeAppCreateResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinComponentFastRegisterWeAppCreateResult(response, request.ResponseBody, request), nil + return newCgiBinComponentFastRegisterWeAppCreateResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/cgi-bin.component.fastregisterweapp.search.go b/service/wechatopen/cgi-bin.component.fastregisterweapp.search.go index c8853eea..dffaac91 100644 --- a/service/wechatopen/cgi-bin.component.fastregisterweapp.search.go +++ b/service/wechatopen/cgi-bin.component.fastregisterweapp.search.go @@ -26,25 +26,17 @@ func newCgiBinComponentFastRegisterWeAppSearchResult(result CgiBinComponentFastR // CgiBinComponentFastRegisterWeAppSearch 快速注册企业小程序 // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/register-management/fast-registration-ent/registerMiniprogram.html#%E4%BA%8C%E3%80%81%E6%9F%A5%E8%AF%A2%E5%88%9B%E5%BB%BA%E4%BB%BB%E5%8A%A1%E7%8A%B6%E6%80%81 func (c *Client) CgiBinComponentFastRegisterWeAppSearch(ctx context.Context, notMustParams ...gorequest.Params) (*CgiBinComponentFastRegisterWeAppSearchResult, error) { - // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 request, err := c.request(ctx, apiUrl+"/cgi-bin/component/fastregisterweapp?action=search&component_access_token="+c.GetComponentAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinComponentFastRegisterWeAppSearchResult(CgiBinComponentFastRegisterWeAppSearchResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinComponentFastRegisterWeAppSearchResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinComponentFastRegisterWeAppSearchResult(response, request.ResponseBody, request), nil + return newCgiBinComponentFastRegisterWeAppSearchResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/cgi-bin.component.getprivacysetting.go b/service/wechatopen/cgi-bin.component.getprivacysetting.go index 22ce40b4..094dae90 100644 --- a/service/wechatopen/cgi-bin.component.getprivacysetting.go +++ b/service/wechatopen/cgi-bin.component.getprivacysetting.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -60,27 +59,19 @@ func newCgiBinComponentGetPrivacySettingResult(result CgiBinComponentGetPrivacyS // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/privacy_config/get_privacy_setting.html func (c *Client) CgiBinComponentGetPrivacySetting(ctx context.Context, privacyVer int, notMustParams ...gorequest.Params) (*CgiBinComponentGetPrivacySettingResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newCgiBinComponentGetPrivacySettingResult(CgiBinComponentGetPrivacySettingResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) - params["privacy_ver"] = privacyVer + params.Set("privacy_ver", privacyVer) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/getprivacysetting?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/cgi-bin/component/getprivacysetting?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinComponentGetPrivacySettingResult(CgiBinComponentGetPrivacySettingResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinComponentGetPrivacySettingResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinComponentGetPrivacySettingResult(response, request.ResponseBody, request), nil + return newCgiBinComponentGetPrivacySettingResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/cgi-bin.component.setprivacysetting.go b/service/wechatopen/cgi-bin.component.setprivacysetting.go index 0155d221..65616ec6 100644 --- a/service/wechatopen/cgi-bin.component.setprivacysetting.go +++ b/service/wechatopen/cgi-bin.component.setprivacysetting.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -27,28 +26,20 @@ func newCgiBinComponentSetPrivacySettingResult(result CgiBinComponentSetPrivacyS // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/privacy_config/set_privacy_setting.html func (c *Client) CgiBinComponentSetPrivacySetting(ctx context.Context, notMustParams ...gorequest.Params) (*CgiBinComponentSetPrivacySettingResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newCgiBinComponentSetPrivacySettingResult(CgiBinComponentSetPrivacySettingResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/setprivacysetting?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/cgi-bin/component/setprivacysetting?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinComponentSetPrivacySettingResult(CgiBinComponentSetPrivacySettingResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinComponentSetPrivacySettingResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinComponentSetPrivacySettingResult(response, request.ResponseBody, request), nil + return newCgiBinComponentSetPrivacySettingResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/cgi-bin.get_api_domain_ip.go b/service/wechatopen/cgi-bin.get_api_domain_ip.go index 40897b88..34209e83 100644 --- a/service/wechatopen/cgi-bin.get_api_domain_ip.go +++ b/service/wechatopen/cgi-bin.get_api_domain_ip.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -28,15 +27,12 @@ func (c *Client) CgiBinGetApiDomainIp(ctx context.Context, componentAccessToken // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/get_api_domain_ip?access_token=%s", componentAccessToken), params, http.MethodGet) + request, err := c.request(ctx, apiUrl+"/cgi-bin/get_api_domain_ip?access_token="+componentAccessToken, params, http.MethodGet) if err != nil { - return nil, err + return NewGetCallBackIpResult(GetCallBackIpResponse{}, request.ResponseBody, request), err } // 定义 var response GetCallBackIpResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return NewGetCallBackIpResult(response, request.ResponseBody, request), nil + return NewGetCallBackIpResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/cgi-bin.material.get_material.go b/service/wechatopen/cgi-bin.material.get_material.go index ea0c921a..a32f23ff 100644 --- a/service/wechatopen/cgi-bin.material.get_material.go +++ b/service/wechatopen/cgi-bin.material.get_material.go @@ -4,7 +4,6 @@ import ( "bytes" "context" "errors" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "github.com/dtapps/go-library/utils/gostorage" @@ -30,30 +29,21 @@ func newCgiBinMaterialGetMaterialResult(result CgiBinMaterialGetMaterialResponse // https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/Getting_Permanent_Assets.html func (c *Client) CgiBinMaterialGetMaterial(ctx context.Context, mediaId string, notMustParams ...gorequest.Params) (*CgiBinMaterialGetMaterialResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newCgiBinMaterialGetMaterialResult(CgiBinMaterialGetMaterialResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) - params["media_id"] = mediaId // 要获取的素材的media_id + params.Set("media_id", mediaId) // 要获取的素材的media_id // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/material/get_material?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/cgi-bin/material/get_material?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinMaterialGetMaterialResult(CgiBinMaterialGetMaterialResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinMaterialGetMaterialResponse // 判断内容是否为图片 err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - // 可能是图片 - return newCgiBinMaterialGetMaterialResult(CgiBinMaterialGetMaterialResponse{}, request.ResponseBody, request), nil - } return newCgiBinMaterialGetMaterialResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/cgi-bin.open.sameentity.go b/service/wechatopen/cgi-bin.open.sameentity.go index 57773ede..2f5d9e37 100644 --- a/service/wechatopen/cgi-bin.open.sameentity.go +++ b/service/wechatopen/cgi-bin.open.sameentity.go @@ -26,23 +26,15 @@ func newCgiBinOpenSameEnTityResult(result CgiBinOpenSameEnTityResponse, body []b // CgiBinOpenSameEnTity 获取授权绑定的商户号列表 // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/cloudbase-common/wechatpay/getWechatPayList.html func (c *Client) CgiBinOpenSameEnTity(ctx context.Context, notMustParams ...gorequest.Params) (*CgiBinOpenSameEnTityResult, error) { - // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 request, err := c.request(ctx, apiUrl+"/cgi-bin/open/sameentity?access_token="+c.GetComponentAccessToken(ctx), params, http.MethodGet) if err != nil { - return nil, err + return newCgiBinOpenSameEnTityResult(CgiBinOpenSameEnTityResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinOpenSameEnTityResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinOpenSameEnTityResult(response, request.ResponseBody, request), nil + return newCgiBinOpenSameEnTityResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/cgi-bin.openapi.rid.get.go b/service/wechatopen/cgi-bin.openapi.rid.get.go new file mode 100644 index 00000000..1719785f --- /dev/null +++ b/service/wechatopen/cgi-bin.openapi.rid.get.go @@ -0,0 +1,54 @@ +package wechatopen + +import ( + "context" + "github.com/dtapps/go-library/utils/gojson" + "github.com/dtapps/go-library/utils/gorequest" + "net/http" +) + +type CgiBinOpenapiRidGetResponse struct { + Errcode int `json:"errcode"` + Errmsg string `json:"errmsg"` + Request struct { + InvokeTime int `json:"invoke_time"` // 发起请求的时间戳 + CostInMs int `json:"cost_in_ms"` // 请求毫秒级耗时 + RequestUrl string `json:"request_url"` // 请求的URL参数 + RequestBody string `json:"request_body"` // post请求的请求参数 + ResponseBody string `json:"response_body"` // 接口请求返回参数 + ClientIp string `json:"client_ip"` // 接口请求的客户端ip + } `json:"request"` +} + +type CgiBinOpenapiRidGetResult struct { + Result CgiBinOpenapiRidGetResponse // 结果 + Body []byte // 内容 + Http gorequest.Response // 请求 +} + +func newCgiBinOpenapiRidGetResult(result CgiBinOpenapiRidGetResponse, body []byte, http gorequest.Response) *CgiBinOpenapiRidGetResult { + return &CgiBinOpenapiRidGetResult{Result: result, Body: body, Http: http} +} + +// CgiBinOpenapiRidGet 查询rid信息 +// https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/openapi/getRidInfo.html +func (c *Client) CgiBinOpenapiRidGet(ctx context.Context, rid string, notMustParams ...gorequest.Params) (*CgiBinOpenapiRidGetResult, error) { + // 检查 + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newCgiBinOpenapiRidGetResult(CgiBinOpenapiRidGetResponse{}, []byte{}, gorequest.Response{}), err + } + // 参数 + params := gorequest.NewParamsWith(notMustParams...) + if rid != "" { + params.Set("rid", rid) + } + // 请求 + request, err := c.request(ctx, apiUrl+"/cgi-bin/openapi/rid/get?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) + if err != nil { + return newCgiBinOpenapiRidGetResult(CgiBinOpenapiRidGetResponse{}, request.ResponseBody, request), err + } + // 定义 + var response CgiBinOpenapiRidGetResponse + err = gojson.Unmarshal(request.ResponseBody, &response) + return newCgiBinOpenapiRidGetResult(response, request.ResponseBody, request), err +} diff --git a/service/wechatopen/cgi-bin.shorturl.go b/service/wechatopen/cgi-bin.shorturl.go index 732a410b..14c0fe0c 100644 --- a/service/wechatopen/cgi-bin.shorturl.go +++ b/service/wechatopen/cgi-bin.shorturl.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -28,25 +27,20 @@ func newCgiBinShortUrlResult(result CgiBinShortUrlResponse, body []byte, http go // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/qrcode/shorturl.html func (c *Client) CgiBinShortUrl(ctx context.Context, longUrl string, notMustParams ...gorequest.Params) (*CgiBinShortUrlResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newCgiBinShortUrlResult(CgiBinShortUrlResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) - params["action"] = "long2short" // 此处填long2short,代表长链接转短链接 - params["long_url"] = longUrl // 需要转换的长链接,支持http://、https://、weixin://wxpay 格式的url + params.Set("action", "long2short") // 此处填long2short,代表长链接转短链接 + params.Set("long_url", longUrl) // 需要转换的长链接,支持http://、https://、weixin://wxpay 格式的url // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/shorturl?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/cgi-bin/shorturl?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) + if err != nil { + return newCgiBinShortUrlResult(CgiBinShortUrlResponse{}, request.ResponseBody, request), err + } // 定义 var response CgiBinShortUrlResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinShortUrlResult(response, request.ResponseBody, request), nil + return newCgiBinShortUrlResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/cgi-bin.wxopen.qrcodejumpadd.go b/service/wechatopen/cgi-bin.wxopen.qrcodejumpadd.go index 8dfcb557..6de8dad8 100644 --- a/service/wechatopen/cgi-bin.wxopen.qrcodejumpadd.go +++ b/service/wechatopen/cgi-bin.wxopen.qrcodejumpadd.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -27,28 +26,20 @@ func newCgiBinWxOpenQrCodeJumpAddResult(result CgiBinWxOpenQrCodeJumpAddResponse // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/qrcode/qrcodejumpadd.html func (c *Client) CgiBinWxOpenQrCodeJumpAdd(ctx context.Context, notMustParams ...gorequest.Params) (*CgiBinWxOpenQrCodeJumpAddResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newCgiBinWxOpenQrCodeJumpAddResult(CgiBinWxOpenQrCodeJumpAddResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/wxopen/qrcodejumpadd?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/cgi-bin/wxopen/qrcodejumpadd?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinWxOpenQrCodeJumpAddResult(CgiBinWxOpenQrCodeJumpAddResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinWxOpenQrCodeJumpAddResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinWxOpenQrCodeJumpAddResult(response, request.ResponseBody, request), nil + return newCgiBinWxOpenQrCodeJumpAddResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/cgi-bin.wxopen.qrcodejumpdelete.go b/service/wechatopen/cgi-bin.wxopen.qrcodejumpdelete.go index a258dad1..0108be10 100644 --- a/service/wechatopen/cgi-bin.wxopen.qrcodejumpdelete.go +++ b/service/wechatopen/cgi-bin.wxopen.qrcodejumpdelete.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -27,27 +26,19 @@ func newCgiBinWxOpenQrCodeJumpDeleteResult(result CgiBinWxOpenQrCodeJumpDeleteRe // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/qrcode/qrcodejumpdelete.html func (c *Client) CgiBinWxOpenQrCodeJumpDelete(ctx context.Context, prefix string, notMustParams ...gorequest.Params) (*CgiBinWxOpenQrCodeJumpDeleteResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newCgiBinWxOpenQrCodeJumpDeleteResult(CgiBinWxOpenQrCodeJumpDeleteResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) - params["prefix"] = prefix + params.Set("prefix", prefix) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/wxopen/qrcodejumpdelete?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/cgi-bin/wxopen/qrcodejumpdelete?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinWxOpenQrCodeJumpDeleteResult(CgiBinWxOpenQrCodeJumpDeleteResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinWxOpenQrCodeJumpDeleteResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinWxOpenQrCodeJumpDeleteResult(response, request.ResponseBody, request), nil + return newCgiBinWxOpenQrCodeJumpDeleteResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/cgi-bin.wxopen.qrcodejumpdownloa.go b/service/wechatopen/cgi-bin.wxopen.qrcodejumpdownloa.go index 22e4a2f7..e7472d65 100644 --- a/service/wechatopen/cgi-bin.wxopen.qrcodejumpdownloa.go +++ b/service/wechatopen/cgi-bin.wxopen.qrcodejumpdownloa.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -29,26 +28,18 @@ func newCgiBinWxOpenQrCodeJumpDownloadResult(result CgiBinWxOpenQrCodeJumpDownlo // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/qrcode/qrcodejumpdownload.html func (c *Client) CgiBinWxOpenQrCodeJumpDownload(ctx context.Context, notMustParams ...gorequest.Params) (*CgiBinWxOpenQrCodeJumpDownloadResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newCgiBinWxOpenQrCodeJumpDownloadResult(CgiBinWxOpenQrCodeJumpDownloadResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/wxopen/qrcodejumpdownload?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/cgi-bin/wxopen/qrcodejumpdownload?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinWxOpenQrCodeJumpDownloadResult(CgiBinWxOpenQrCodeJumpDownloadResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinWxOpenQrCodeJumpDownloadResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinWxOpenQrCodeJumpDownloadResult(response, request.ResponseBody, request), nil + return newCgiBinWxOpenQrCodeJumpDownloadResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/cgi-bin.wxopen.qrcodejumpget.go b/service/wechatopen/cgi-bin.wxopen.qrcodejumpget.go index a8e5efb6..ceabc543 100644 --- a/service/wechatopen/cgi-bin.wxopen.qrcodejumpget.go +++ b/service/wechatopen/cgi-bin.wxopen.qrcodejumpget.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -38,26 +37,18 @@ func newCgiBinWxOpenQrCodeJumpGetResult(result CgiBinWxOpenQrCodeJumpGetResponse // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/qrcode/qrcodejumpadd.html func (c *Client) CgiBinWxOpenQrCodeJumpGet(ctx context.Context, notMustParams ...gorequest.Params) (*CgiBinWxOpenQrCodeJumpGetResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newCgiBinWxOpenQrCodeJumpGetResult(CgiBinWxOpenQrCodeJumpGetResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/wxopen/qrcodejumpget?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/cgi-bin/wxopen/qrcodejumpget?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinWxOpenQrCodeJumpGetResult(CgiBinWxOpenQrCodeJumpGetResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinWxOpenQrCodeJumpGetResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinWxOpenQrCodeJumpGetResult(response, request.ResponseBody, request), nil + return newCgiBinWxOpenQrCodeJumpGetResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/cgi-bin.wxopen.qrcodejumppublish.go b/service/wechatopen/cgi-bin.wxopen.qrcodejumppublish.go index ec2bc5fc..e1a09bd5 100644 --- a/service/wechatopen/cgi-bin.wxopen.qrcodejumppublish.go +++ b/service/wechatopen/cgi-bin.wxopen.qrcodejumppublish.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -27,29 +26,21 @@ func newCgiBinWxOpenQrCodeJumpPublishResult(result CgiBinWxOpenQrCodeJumpPublish // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/qrcode/qrcodejumppublish.html func (c *Client) CgiBinWxOpenQrCodeJumpPublish(ctx context.Context, prefix string, notMustParams ...gorequest.Params) (*CgiBinWxOpenQrCodeJumpPublishResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newCgiBinWxOpenQrCodeJumpPublishResult(CgiBinWxOpenQrCodeJumpPublishResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) - params["prefix"] = prefix + params.Set("prefix", prefix) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/wxopen/qrcodejumppublish?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/cgi-bin/wxopen/qrcodejumppublish?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newCgiBinWxOpenQrCodeJumpPublishResult(CgiBinWxOpenQrCodeJumpPublishResponse{}, request.ResponseBody, request), err } // 定义 var response CgiBinWxOpenQrCodeJumpPublishResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newCgiBinWxOpenQrCodeJumpPublishResult(response, request.ResponseBody, request), nil + return newCgiBinWxOpenQrCodeJumpPublishResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/check.go b/service/wechatopen/check.go index 92cb4aa5..189e21a2 100644 --- a/service/wechatopen/check.go +++ b/service/wechatopen/check.go @@ -1,21 +1,26 @@ package wechatopen -func (c *Client) checkComponentIsConfig() error { - componentAppId := c.GetComponentAppId() - if componentAppId == "" { - return componentAppIdNoConfig - } - componentAppSecret := c.GetComponentAppSecret() - if componentAppSecret == "" { - return componentAppSecretNoConfig +import ( + "context" + "errors" +) + +func (c *Client) checkAuthorizerIsConfig(ctx context.Context) error { + authorizerAppid := c.GetAuthorizerAppid(ctx) + if authorizerAppid == "" { + return errors.New("请配置 authorizerAppid") } return nil } -func (c *Client) checkAuthorizerIsConfig() error { - authorizerAppid := c.GetAuthorizerAppid() +func (c *Client) checkAuthorizerConfig(ctx context.Context) error { + authorizerAppid := c.GetAuthorizerAppid(ctx) if authorizerAppid == "" { - return authorizerAppidNoConfig + return errors.New("请配置 authorizerAppid") + } + authorizerAccessToken := c.GetAuthorizerAccessToken(ctx) + if authorizerAccessToken == "" { + return errors.New("请配置 authorizerAccessToken") } return nil } diff --git a/service/wechatopen/client.go b/service/wechatopen/client.go index 156fed76..688d2b13 100644 --- a/service/wechatopen/client.go +++ b/service/wechatopen/client.go @@ -1,50 +1,33 @@ package wechatopen import ( - "github.com/dtapps/go-library/utils/dorm" + "errors" "github.com/dtapps/go-library/utils/golog" "github.com/dtapps/go-library/utils/gorequest" ) -// 缓存前缀 -// wechat_open:component_verify_ticket: -// wechat_open:component_access_token: -// wechat_open:authorizer_access_token: -// wechat_open:pre_auth_code: -type redisCachePrefixFun func() (componentVerifyTicket, componentAccessToken, authorizerAccessToken, preAuthCode string) - // ClientConfig 实例配置 type ClientConfig struct { - AuthorizerAppid string `json:"authorizer_appid"` // 授权方 appid - ComponentAppId string `json:"component_app_id"` // 第三方平台 appid - ComponentAppSecret string // 第三方平台 app_secret - MessageToken string - MessageKey string - RedisClient *dorm.RedisClient // 缓存数据库 - RedisCachePrefixFun redisCachePrefixFun // 缓存前缀 + ComponentAppId string `json:"component_app_id"` // 第三方平台appid + ComponentAppSecret string `json:"component_app_secret"` // 第三方平台app_secret + MessageToken string `json:"message_token"` // 第三方平台消息令牌 + MessageKey string `json:"message_key"` // 第三方平台消息密钥 } // Client 实例 type Client struct { requestClient *gorequest.App // 请求服务 config struct { - componentAccessToken string // 第三方平台 access_token - componentVerifyTicket string // 微信后台推送的 ticket - preAuthCode string // 预授权码 - authorizerAccessToken string // 接口调用令牌 - authorizerRefreshToken string // 刷新令牌 - authorizerAppid string // 授权方 appid componentAppId string // 第三方平台appid componentAppSecret string // 第三方平台app_secret - messageToken string - messageKey string - } - cache struct { - redisClient *dorm.RedisClient // 缓存数据库 - componentVerifyTicketPrefix string - componentAccessTokenPrefix string - authorizerAccessTokenPrefix string - preAuthCodePrefix string + messageToken string // 第三方平台消息令牌 + messageKey string // 第三方平台消息密钥 + componentAccessToken string // 第三方平台access_token + componentVerifyTicket string // 第三方平台推送ticket + preAuthCode string // 第三方平台预授权码 + authorizerAppid string // 授权方appid + authorizerAccessToken string // 授权方access_token + authorizerRefreshToken string // 授权方refresh_token } log struct { status bool // 状态 @@ -57,19 +40,27 @@ func NewClient(config *ClientConfig) (*Client, error) { c := &Client{} + if config.ComponentAppId == "" { + return nil, errors.New("请配置 ComponentAppId") + } c.config.componentAppId = config.ComponentAppId + + if config.ComponentAppSecret == "" { + return nil, errors.New("请配置 ComponentAppSecret") + } c.config.componentAppSecret = config.ComponentAppSecret + + if config.MessageToken == "" { + return nil, errors.New("请配置 MessageToken") + } c.config.messageToken = config.MessageToken + + if config.MessageKey == "" { + return nil, errors.New("请配置 MessageKey") + } c.config.messageKey = config.MessageKey c.requestClient = gorequest.NewHttp() - c.cache.redisClient = config.RedisClient - - c.cache.componentVerifyTicketPrefix, c.cache.componentAccessTokenPrefix, c.cache.authorizerAccessTokenPrefix, c.cache.preAuthCodePrefix = config.RedisCachePrefixFun() - if c.cache.componentVerifyTicketPrefix == "" || c.cache.componentAccessTokenPrefix == "" || c.cache.authorizerAccessTokenPrefix == "" || c.cache.preAuthCodePrefix == "" { - return nil, redisCachePrefixNoConfig - } - return c, nil } diff --git a/service/wechatopen/config.go b/service/wechatopen/config.go index 9189abb3..d882fed6 100644 --- a/service/wechatopen/config.go +++ b/service/wechatopen/config.go @@ -2,19 +2,6 @@ package wechatopen import "github.com/dtapps/go-library/utils/golog" -// ConfigComponent 配置 -func (c *Client) ConfigComponent(componentAppId, componentAppSecret string) *Client { - c.config.componentAppId = componentAppId - c.config.componentAppSecret = componentAppSecret - return c -} - -// ConfigAuthorizer 配置第三方 -func (c *Client) ConfigAuthorizer(authorizerAppid string) *Client { - c.config.authorizerAppid = authorizerAppid - return c -} - // ConfigApiClientFun 日志配置 func (c *Client) ConfigApiClientFun(apiClientFun golog.ApiClientFun) { apiClient := apiClientFun() diff --git a/service/wechatopen/datacube.getweanalysisappiddailyretaininfo.go b/service/wechatopen/datacube.getweanalysisappiddailyretaininfo.go index 24341546..4b775700 100644 --- a/service/wechatopen/datacube.getweanalysisappiddailyretaininfo.go +++ b/service/wechatopen/datacube.getweanalysisappiddailyretaininfo.go @@ -31,30 +31,22 @@ func newDataCubeGetWeAnAlySisAppidDailyRetainInfoResult(result DataCubeGetWeAnAl // DataCubeGetWeAnAlySisAppidDailyRetainInfo 获取用户访问小程序日留存 // https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/data-analysis/visit-retain/getDailyRetain.html -func (c *Client) DataCubeGetWeAnAlySisAppidDailyRetainInfo(ctx context.Context, beginDate, endDate string) (*DataCubeGetWeAnAlySisAppidDailyRetainInfoResult, error) { +func (c *Client) DataCubeGetWeAnAlySisAppidDailyRetainInfo(ctx context.Context, beginDate, endDate string, notMustParams ...gorequest.Params) (*DataCubeGetWeAnAlySisAppidDailyRetainInfoResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newDataCubeGetWeAnAlySisAppidDailyRetainInfoResult(DataCubeGetWeAnAlySisAppidDailyRetainInfoResponse{}, []byte{}, gorequest.Response{}), err } // 参数 - params := gorequest.NewParams() + params := gorequest.NewParamsWith(notMustParams...) params.Set("begin_date", beginDate) params.Set("end_date", endDate) // 请求 request, err := c.request(ctx, apiUrl+"/datacube/getweanalysisappiddailyretaininfo?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newDataCubeGetWeAnAlySisAppidDailyRetainInfoResult(DataCubeGetWeAnAlySisAppidDailyRetainInfoResponse{}, request.ResponseBody, request), err } // 定义 var response DataCubeGetWeAnAlySisAppidDailyRetainInfoResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newDataCubeGetWeAnAlySisAppidDailyRetainInfoResult(response, request.ResponseBody, request), nil + return newDataCubeGetWeAnAlySisAppidDailyRetainInfoResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/datacube.getweanalysisappiddailysummarytrend.go b/service/wechatopen/datacube.getweanalysisappiddailysummarytrend.go index b0f038cc..8094f85a 100644 --- a/service/wechatopen/datacube.getweanalysisappiddailysummarytrend.go +++ b/service/wechatopen/datacube.getweanalysisappiddailysummarytrend.go @@ -28,30 +28,22 @@ func newDataCubeGetWeAnAlySisAppidDailySummaryTrendResult(result DataCubeGetWeAn // DataCubeGetWeAnAlySisAppidDailySummaryTrend 获取用户访问小程序数据概况 // https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/data-analysis/others/getDailySummary.html -func (c *Client) DataCubeGetWeAnAlySisAppidDailySummaryTrend(ctx context.Context, beginDate, endDate string) (*DataCubeGetWeAnAlySisAppidDailySummaryTrendResult, error) { +func (c *Client) DataCubeGetWeAnAlySisAppidDailySummaryTrend(ctx context.Context, beginDate, endDate string, notMustParams ...gorequest.Params) (*DataCubeGetWeAnAlySisAppidDailySummaryTrendResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newDataCubeGetWeAnAlySisAppidDailySummaryTrendResult(DataCubeGetWeAnAlySisAppidDailySummaryTrendResponse{}, []byte{}, gorequest.Response{}), err } // 参数 - params := gorequest.NewParams() + params := gorequest.NewParamsWith(notMustParams...) params.Set("begin_date", beginDate) params.Set("end_date", endDate) // 请求 request, err := c.request(ctx, apiUrl+"/datacube/getweanalysisappiddailysummarytrend?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newDataCubeGetWeAnAlySisAppidDailySummaryTrendResult(DataCubeGetWeAnAlySisAppidDailySummaryTrendResponse{}, request.ResponseBody, request), err } // 定义 var response DataCubeGetWeAnAlySisAppidDailySummaryTrendResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newDataCubeGetWeAnAlySisAppidDailySummaryTrendResult(response, request.ResponseBody, request), nil + return newDataCubeGetWeAnAlySisAppidDailySummaryTrendResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/datacube.getweanalysisappiddailyvisittrend.go b/service/wechatopen/datacube.getweanalysisappiddailyvisittrend.go index 614864f3..33b6fb97 100644 --- a/service/wechatopen/datacube.getweanalysisappiddailyvisittrend.go +++ b/service/wechatopen/datacube.getweanalysisappiddailyvisittrend.go @@ -32,30 +32,22 @@ func newDataCubeGetWeAnAlySisAppidDailyVisitTrendResult(result DataCubeGetWeAnAl // DataCubeGetWeAnAlySisAppidDailyVisitTrend 获取用户访问小程序数据日趋势 // https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/data-analysis/visit-trend/getDailyVisitTrend.html -func (c *Client) DataCubeGetWeAnAlySisAppidDailyVisitTrend(ctx context.Context, beginDate, endDate string) (*DataCubeGetWeAnAlySisAppidDailyVisitTrendResult, error) { +func (c *Client) DataCubeGetWeAnAlySisAppidDailyVisitTrend(ctx context.Context, beginDate, endDate string, notMustParams ...gorequest.Params) (*DataCubeGetWeAnAlySisAppidDailyVisitTrendResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newDataCubeGetWeAnAlySisAppidDailyVisitTrendResult(DataCubeGetWeAnAlySisAppidDailyVisitTrendResponse{}, []byte{}, gorequest.Response{}), err } // 参数 - params := gorequest.NewParams() + params := gorequest.NewParamsWith(notMustParams...) params.Set("begin_date", beginDate) params.Set("end_date", endDate) // 请求 request, err := c.request(ctx, apiUrl+"/datacube/getweanalysisappiddailyvisittrend?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newDataCubeGetWeAnAlySisAppidDailyVisitTrendResult(DataCubeGetWeAnAlySisAppidDailyVisitTrendResponse{}, request.ResponseBody, request), err } // 定义 var response DataCubeGetWeAnAlySisAppidDailyVisitTrendResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newDataCubeGetWeAnAlySisAppidDailyVisitTrendResult(response, request.ResponseBody, request), nil + return newDataCubeGetWeAnAlySisAppidDailyVisitTrendResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/datacube.getweanalysisappidmonthlyretaininfo.go b/service/wechatopen/datacube.getweanalysisappidmonthlyretaininfo.go index 0cee1f98..b42f2074 100644 --- a/service/wechatopen/datacube.getweanalysisappidmonthlyretaininfo.go +++ b/service/wechatopen/datacube.getweanalysisappidmonthlyretaininfo.go @@ -31,30 +31,22 @@ func newDataCubeGetWeAnAlySisAppidMonthlyRetainInfoResult(result DataCubeGetWeAn // DataCubeGetWeAnAlySisAppidMonthlyRetainInfo 获取用户访问小程序月留存 // https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/data-analysis/visit-retain/getMonthlyRetain.html -func (c *Client) DataCubeGetWeAnAlySisAppidMonthlyRetainInfo(ctx context.Context, beginDate, endDate string) (*DataCubeGetWeAnAlySisAppidMonthlyRetainInfoResult, error) { +func (c *Client) DataCubeGetWeAnAlySisAppidMonthlyRetainInfo(ctx context.Context, beginDate, endDate string, notMustParams ...gorequest.Params) (*DataCubeGetWeAnAlySisAppidMonthlyRetainInfoResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newDataCubeGetWeAnAlySisAppidMonthlyRetainInfoResult(DataCubeGetWeAnAlySisAppidMonthlyRetainInfoResponse{}, []byte{}, gorequest.Response{}), err } // 参数 - params := gorequest.NewParams() + params := gorequest.NewParamsWith(notMustParams...) params.Set("begin_date", beginDate) params.Set("end_date", endDate) // 请求 request, err := c.request(ctx, apiUrl+"/datacube/getweanalysisappidmonthlyretaininfo?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newDataCubeGetWeAnAlySisAppidMonthlyRetainInfoResult(DataCubeGetWeAnAlySisAppidMonthlyRetainInfoResponse{}, request.ResponseBody, request), err } // 定义 var response DataCubeGetWeAnAlySisAppidMonthlyRetainInfoResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newDataCubeGetWeAnAlySisAppidMonthlyRetainInfoResult(response, request.ResponseBody, request), nil + return newDataCubeGetWeAnAlySisAppidMonthlyRetainInfoResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/datacube.getweanalysisappidmonthlyvisittrend.go b/service/wechatopen/datacube.getweanalysisappidmonthlyvisittrend.go index 1b894a01..567531c7 100644 --- a/service/wechatopen/datacube.getweanalysisappidmonthlyvisittrend.go +++ b/service/wechatopen/datacube.getweanalysisappidmonthlyvisittrend.go @@ -32,30 +32,22 @@ func newDataCubeGetWeAnAlySisAppidMonthlyVisitTrendResult(result DataCubeGetWeAn // DataCubeGetWeAnAlySisAppidMonthlyVisitTrend 获取用户访问小程序数据月趋势 // https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/data-analysis/visit-trend/getMonthlyVisitTrend.html -func (c *Client) DataCubeGetWeAnAlySisAppidMonthlyVisitTrend(ctx context.Context, beginDate, endDate string) (*DataCubeGetWeAnAlySisAppidMonthlyVisitTrendResult, error) { +func (c *Client) DataCubeGetWeAnAlySisAppidMonthlyVisitTrend(ctx context.Context, beginDate, endDate string, notMustParams ...gorequest.Params) (*DataCubeGetWeAnAlySisAppidMonthlyVisitTrendResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newDataCubeGetWeAnAlySisAppidMonthlyVisitTrendResult(DataCubeGetWeAnAlySisAppidMonthlyVisitTrendResponse{}, []byte{}, gorequest.Response{}), err } // 参数 - params := gorequest.NewParams() + params := gorequest.NewParamsWith(notMustParams...) params.Set("begin_date", beginDate) params.Set("end_date", endDate) // 请求 request, err := c.request(ctx, apiUrl+"/datacube/getweanalysisappidmonthlyvisittrend?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newDataCubeGetWeAnAlySisAppidMonthlyVisitTrendResult(DataCubeGetWeAnAlySisAppidMonthlyVisitTrendResponse{}, request.ResponseBody, request), err } // 定义 var response DataCubeGetWeAnAlySisAppidMonthlyVisitTrendResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newDataCubeGetWeAnAlySisAppidMonthlyVisitTrendResult(response, request.ResponseBody, request), nil + return newDataCubeGetWeAnAlySisAppidMonthlyVisitTrendResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/datacube.getweanalysisappiduserportrait.go b/service/wechatopen/datacube.getweanalysisappiduserportrait.go index 9fbf8422..a8a612d8 100644 --- a/service/wechatopen/datacube.getweanalysisappiduserportrait.go +++ b/service/wechatopen/datacube.getweanalysisappiduserportrait.go @@ -85,30 +85,22 @@ func newDataCubeGetWeAnAlySisAppidUserPortraitResult(result DataCubeGetWeAnAlySi // DataCubeGetWeAnAlySisAppidUserPortrait 获取小程序用户画像分布 // https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/data-analysis/others/getUserPortrait.html -func (c *Client) DataCubeGetWeAnAlySisAppidUserPortrait(ctx context.Context, beginDate, endDate string) (*DataCubeGetWeAnAlySisAppidUserPortraitResult, error) { +func (c *Client) DataCubeGetWeAnAlySisAppidUserPortrait(ctx context.Context, beginDate, endDate string, notMustParams ...gorequest.Params) (*DataCubeGetWeAnAlySisAppidUserPortraitResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newDataCubeGetWeAnAlySisAppidUserPortraitResult(DataCubeGetWeAnAlySisAppidUserPortraitResponse{}, []byte{}, gorequest.Response{}), err } // 参数 - params := gorequest.NewParams() + params := gorequest.NewParamsWith(notMustParams...) params.Set("begin_date", beginDate) params.Set("end_date", endDate) // 请求 request, err := c.request(ctx, apiUrl+"/datacube/getweanalysisappiduserportrait?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newDataCubeGetWeAnAlySisAppidUserPortraitResult(DataCubeGetWeAnAlySisAppidUserPortraitResponse{}, request.ResponseBody, request), err } // 定义 var response DataCubeGetWeAnAlySisAppidUserPortraitResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newDataCubeGetWeAnAlySisAppidUserPortraitResult(response, request.ResponseBody, request), nil + return newDataCubeGetWeAnAlySisAppidUserPortraitResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/datacube.getweanalysisappidvisitdistribution.go b/service/wechatopen/datacube.getweanalysisappidvisitdistribution.go index 6a055653..16f48d98 100644 --- a/service/wechatopen/datacube.getweanalysisappidvisitdistribution.go +++ b/service/wechatopen/datacube.getweanalysisappidvisitdistribution.go @@ -30,30 +30,22 @@ func newDataCubeGetWeAnAlysIsAppidVisitDistributionResult(result DataCubeGetWeAn // DataCubeGetWeAnAlysIsAppidVisitDistribution 获取用户小程序访问分布数据 // https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/data-analysis/others/getVisitDistribution.html -func (c *Client) DataCubeGetWeAnAlysIsAppidVisitDistribution(ctx context.Context, beginDate, endDate string) (*DataCubeGetWeAnAlysIsAppidVisitDistributionResult, error) { +func (c *Client) DataCubeGetWeAnAlysIsAppidVisitDistribution(ctx context.Context, beginDate, endDate string, notMustParams ...gorequest.Params) (*DataCubeGetWeAnAlysIsAppidVisitDistributionResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newDataCubeGetWeAnAlysIsAppidVisitDistributionResult(DataCubeGetWeAnAlysIsAppidVisitDistributionResponse{}, []byte{}, gorequest.Response{}), err } // 参数 - params := gorequest.NewParams() + params := gorequest.NewParamsWith(notMustParams...) params.Set("begin_date", beginDate) params.Set("end_date", endDate) // 请求 request, err := c.request(ctx, apiUrl+"/datacube/getweanalysisappidvisitdistribution?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newDataCubeGetWeAnAlysIsAppidVisitDistributionResult(DataCubeGetWeAnAlysIsAppidVisitDistributionResponse{}, request.ResponseBody, request), err } // 定义 var response DataCubeGetWeAnAlysIsAppidVisitDistributionResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newDataCubeGetWeAnAlysIsAppidVisitDistributionResult(response, request.ResponseBody, request), nil + return newDataCubeGetWeAnAlysIsAppidVisitDistributionResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/datacube.getweanalysisappidvisitpage.go b/service/wechatopen/datacube.getweanalysisappidvisitpage.go index 82031675..debdf951 100644 --- a/service/wechatopen/datacube.getweanalysisappidvisitpage.go +++ b/service/wechatopen/datacube.getweanalysisappidvisitpage.go @@ -33,30 +33,22 @@ func newDataCubeGetWeAnAlySisAppidVisitPageResult(result DataCubeGetWeAnAlySisAp // DataCubeGetWeAnAlySisAppidVisitPage 获取访问页面数据 // https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/data-analysis/others/getVisitPage.html -func (c *Client) DataCubeGetWeAnAlySisAppidVisitPage(ctx context.Context, beginDate, endDate string) (*DataCubeGetWeAnAlySisAppidVisitPageResult, error) { +func (c *Client) DataCubeGetWeAnAlySisAppidVisitPage(ctx context.Context, beginDate, endDate string, notMustParams ...gorequest.Params) (*DataCubeGetWeAnAlySisAppidVisitPageResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newDataCubeGetWeAnAlySisAppidVisitPageResult(DataCubeGetWeAnAlySisAppidVisitPageResponse{}, []byte{}, gorequest.Response{}), err } // 参数 - params := gorequest.NewParams() + params := gorequest.NewParamsWith(notMustParams...) params.Set("begin_date", beginDate) params.Set("end_date", endDate) // 请求 request, err := c.request(ctx, apiUrl+"/datacube/getweanalysisappidvisitpage?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newDataCubeGetWeAnAlySisAppidVisitPageResult(DataCubeGetWeAnAlySisAppidVisitPageResponse{}, request.ResponseBody, request), err } // 定义 var response DataCubeGetWeAnAlySisAppidVisitPageResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newDataCubeGetWeAnAlySisAppidVisitPageResult(response, request.ResponseBody, request), nil + return newDataCubeGetWeAnAlySisAppidVisitPageResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/datacube.getweanalysisappidweeklyretaininfo.go b/service/wechatopen/datacube.getweanalysisappidweeklyretaininfo.go index 63faa57d..924d20a2 100644 --- a/service/wechatopen/datacube.getweanalysisappidweeklyretaininfo.go +++ b/service/wechatopen/datacube.getweanalysisappidweeklyretaininfo.go @@ -31,30 +31,22 @@ func newDataCubeGetWeAnAlySisAppidWeeklyRetainInfoResult(result DataCubeGetWeAnA // DataCubeGetWeAnAlySisAppidWeeklyRetainInfo 获取用户访问小程序周留存 // https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/data-analysis/visit-retain/getWeeklyRetain.html -func (c *Client) DataCubeGetWeAnAlySisAppidWeeklyRetainInfo(ctx context.Context, beginDate, endDate string) (*DataCubeGetWeAnAlySisAppidWeeklyRetainInfoResult, error) { +func (c *Client) DataCubeGetWeAnAlySisAppidWeeklyRetainInfo(ctx context.Context, beginDate, endDate string, notMustParams ...gorequest.Params) (*DataCubeGetWeAnAlySisAppidWeeklyRetainInfoResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newDataCubeGetWeAnAlySisAppidWeeklyRetainInfoResult(DataCubeGetWeAnAlySisAppidWeeklyRetainInfoResponse{}, []byte{}, gorequest.Response{}), err } // 参数 - params := gorequest.NewParams() + params := gorequest.NewParamsWith(notMustParams...) params.Set("begin_date", beginDate) params.Set("end_date", endDate) // 请求 request, err := c.request(ctx, apiUrl+"/datacube/getweanalysisappidweeklyretaininfo?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newDataCubeGetWeAnAlySisAppidWeeklyRetainInfoResult(DataCubeGetWeAnAlySisAppidWeeklyRetainInfoResponse{}, request.ResponseBody, request), err } // 定义 var response DataCubeGetWeAnAlySisAppidWeeklyRetainInfoResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newDataCubeGetWeAnAlySisAppidWeeklyRetainInfoResult(response, request.ResponseBody, request), nil + return newDataCubeGetWeAnAlySisAppidWeeklyRetainInfoResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/datacube.getweanalysisappidweeklyvisittrend.go b/service/wechatopen/datacube.getweanalysisappidweeklyvisittrend.go index b8c9b244..fdc3583a 100644 --- a/service/wechatopen/datacube.getweanalysisappidweeklyvisittrend.go +++ b/service/wechatopen/datacube.getweanalysisappidweeklyvisittrend.go @@ -32,30 +32,22 @@ func newDataCubeGetWeAnAlySisAppidWeeklyVisitTrendResult(result DataCubeGetWeAnA // DataCubeGetWeAnAlySisAppidWeeklyVisitTrend 获取用户访问小程序数据周趋势 // https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/data-analysis/visit-trend/getWeeklyVisitTrend.html -func (c *Client) DataCubeGetWeAnAlySisAppidWeeklyVisitTrend(ctx context.Context, beginDate, endDate string) (*DataCubeGetWeAnAlySisAppidWeeklyVisitTrendResult, error) { +func (c *Client) DataCubeGetWeAnAlySisAppidWeeklyVisitTrend(ctx context.Context, beginDate, endDate string, notMustParams ...gorequest.Params) (*DataCubeGetWeAnAlySisAppidWeeklyVisitTrendResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newDataCubeGetWeAnAlySisAppidWeeklyVisitTrendResult(DataCubeGetWeAnAlySisAppidWeeklyVisitTrendResponse{}, []byte{}, gorequest.Response{}), err } // 参数 - params := gorequest.NewParams() + params := gorequest.NewParamsWith(notMustParams...) params.Set("begin_date", beginDate) params.Set("end_date", endDate) // 请求 request, err := c.request(ctx, apiUrl+"/datacube/getweanalysisappidweeklyvisittrend?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newDataCubeGetWeAnAlySisAppidWeeklyVisitTrendResult(DataCubeGetWeAnAlySisAppidWeeklyVisitTrendResponse{}, request.ResponseBody, request), err } // 定义 var response DataCubeGetWeAnAlySisAppidWeeklyVisitTrendResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newDataCubeGetWeAnAlySisAppidWeeklyVisitTrendResult(response, request.ResponseBody, request), nil + return newDataCubeGetWeAnAlySisAppidWeeklyVisitTrendResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/error.go b/service/wechatopen/error.go deleted file mode 100644 index 04c267a6..00000000 --- a/service/wechatopen/error.go +++ /dev/null @@ -1,16 +0,0 @@ -package wechatopen - -import "errors" - -var ( - redisCachePrefixNoConfig = errors.New("请配置 RedisCachePrefix") -) - -var ( - componentAppIdNoConfig = errors.New("请配置 ComponentAppId") - componentAppSecretNoConfig = errors.New("请配置 ComponentAppSecret") -) - -var ( - authorizerAppidNoConfig = errors.New("请配置 AuthorizerAppid 或 ConfigAuthorizer") -) diff --git a/service/wechatopen/get.go b/service/wechatopen/get.go index ffad4258..bb776889 100644 --- a/service/wechatopen/get.go +++ b/service/wechatopen/get.go @@ -1,47 +1,60 @@ package wechatopen -import "github.com/dtapps/go-library/utils/golog" +import ( + "context" + "github.com/dtapps/go-library/utils/golog" +) -//func (c *Client) GetComponentAccessToken() string { -// return c.config.componentAccessToken -//} +// GetComponentAppId 获取第三方平台appid +func (c *Client) GetComponentAppId(ctx context.Context) string { + return c.config.componentAppId +} -//func (c *Client) GetComponentVerifyTicket() string { -// return c.config.componentVerifyTicket -//} +// GetComponentAppSecret 获取第三方平台app_secret +func (c *Client) GetComponentAppSecret(ctx context.Context) string { + return c.config.componentAppSecret +} -//func (c *Client) GetPreAuthCode() string { -// return c.config.preAuthCode -//} +// GetMessageToken 获取第三方平台消息令牌 +func (c *Client) GetMessageToken(ctx context.Context) string { + return c.config.messageToken +} -//func (c *Client) GetAuthorizerAccessToken() string { -// return c.config.authorizerAccessToken -//} +// GetMessageKey 获取第三方平台消息密钥 +func (c *Client) GetMessageKey(ctx context.Context) string { + return c.config.messageKey +} -func (c *Client) GetAuthorizerRefreshToken() string { - return c.config.authorizerRefreshToken +// GetComponentAccessToken 获取第三方平台access_token +func (c *Client) GetComponentAccessToken(ctx context.Context) string { + return c.config.componentAccessToken } -func (c *Client) GetAuthorizerAppid() string { - return c.config.authorizerAppid +// GetComponentVerifyTicket 获取第三方平台推送ticket +func (c *Client) GetComponentVerifyTicket(ctx context.Context) string { + return c.config.componentVerifyTicket } -func (c *Client) GetComponentAppId() string { - return c.config.componentAppId +// GetPreAuthCode 获取第三方平台预授权码 +func (c *Client) GetPreAuthCode(ctx context.Context) string { + return c.config.preAuthCode } -func (c *Client) GetComponentAppSecret() string { - return c.config.componentAppSecret +// GetAuthorizerAppid 获取授权方appid +func (c *Client) GetAuthorizerAppid(ctx context.Context) string { + return c.config.authorizerAppid } -func (c *Client) GetMessageToken() string { - return c.config.messageToken +// GetAuthorizerAccessToken 获取授权方access_token +func (c *Client) GetAuthorizerAccessToken(ctx context.Context) string { + return c.config.authorizerAccessToken } -func (c *Client) GetMessageKey() string { - return c.config.messageKey +// GetAuthorizerRefreshToken 获取授权方refresh_token +func (c *Client) GetAuthorizerRefreshToken(ctx context.Context) string { + return c.config.authorizerRefreshToken } -func (c *Client) GetLog() *golog.ApiClient { +func (c *Client) GetLog(ctx context.Context) *golog.ApiClient { return c.log.client } diff --git a/service/wechatopen/redis.go b/service/wechatopen/redis.go deleted file mode 100644 index 19bf4077..00000000 --- a/service/wechatopen/redis.go +++ /dev/null @@ -1,151 +0,0 @@ -package wechatopen - -import ( - "context" - "errors" - "fmt" - "time" -) - -// 微信后台推送的ticke -func (c *Client) getComponentVerifyTicketCacheKeyName() string { - return c.cache.componentVerifyTicketPrefix + c.GetComponentAppId() -} - -// SetComponentVerifyTicket 设置微信后台推送的ticke -func (c *Client) SetComponentVerifyTicket(ctx context.Context, componentVerifyTicket string) string { - if componentVerifyTicket == "" { - return "" - } - c.cache.redisClient.Set(ctx, c.getComponentVerifyTicketCacheKeyName(), componentVerifyTicket, time.Hour*12) - return c.GetComponentVerifyTicket(ctx) -} - -// GetComponentVerifyTicket 获取微信后台推送的ticke -func (c *Client) GetComponentVerifyTicket(ctx context.Context) string { - if c.cache.redisClient.GetDb() == nil { - return c.config.componentVerifyTicket - } - result, _ := c.cache.redisClient.Get(ctx, c.getComponentVerifyTicketCacheKeyName()).Result() - return result -} - -// 令牌 -func (c *Client) getComponentAccessTokenCacheKeyName() string { - return c.cache.componentAccessTokenPrefix + c.GetComponentAppId() -} - -// SetComponentAccessToken 设置令牌 -func (c *Client) SetComponentAccessToken(ctx context.Context, componentAccessToken string) string { - if componentAccessToken == "" { - return "" - } - c.cache.redisClient.Set(ctx, c.getComponentAccessTokenCacheKeyName(), componentAccessToken, time.Second*7200) - return c.GetComponentAccessToken(ctx) -} - -// GetComponentAccessToken 获取令牌 -func (c *Client) GetComponentAccessToken(ctx context.Context) string { - if c.cache.redisClient.GetDb() == nil { - return c.config.componentAccessToken - } - result, _ := c.cache.redisClient.GetDb().Get(ctx, c.getComponentAccessTokenCacheKeyName()).Result() - return result -} - -// MonitorComponentAccessToken 监控令牌 -func (c *Client) MonitorComponentAccessToken(ctx context.Context) (string, error) { - // 查询 - componentAccessToken := c.GetComponentAccessToken(ctx) - // 判断 - result, err := c.CgiBinGetApiDomainIp(ctx, componentAccessToken) - if err != nil { - return "", err - } - if len(result.Result.IpList) > 0 { - return componentAccessToken, err - } - // 重新获取 - resp, err := c.CgiBinComponentApiComponentToken(ctx) - return c.SetComponentAccessToken(ctx, resp.Result.ComponentAccessToken), err -} - -// 授权方令牌 -func (c *Client) getAuthorizerAccessTokenCacheKeyName() string { - return c.cache.authorizerAccessTokenPrefix + c.GetComponentAppId() + ":" + c.GetAuthorizerAppid() -} - -// SetAuthorizerAccessToken 设置授权方令牌 -func (c *Client) SetAuthorizerAccessToken(ctx context.Context, authorizerAccessToken string) string { - if authorizerAccessToken == "" { - return "" - } - c.cache.redisClient.Set(ctx, c.getAuthorizerAccessTokenCacheKeyName(), authorizerAccessToken, time.Hour*2) - return c.GetComponentAccessToken(ctx) -} - -// GetAuthorizerAccessToken 获取授权方令牌 -func (c *Client) GetAuthorizerAccessToken(ctx context.Context) string { - if c.cache.redisClient.GetDb() == nil { - return c.config.authorizerAccessToken - } - result, _ := c.cache.redisClient.Get(ctx, c.getAuthorizerAccessTokenCacheKeyName()).Result() - return result -} - -// MonitorAuthorizerAccessToken 监控授权方令牌 -func (c *Client) MonitorAuthorizerAccessToken(ctx context.Context, authorizerRefreshToken string) (string, error) { - // 查询 - authorizerAccessToken := c.GetAuthorizerAccessToken(ctx) - // 判断 - if authorizerAccessToken != "" { - return authorizerAccessToken, nil - } - // 重新获取 - resp, err := c.CgiBinComponentApiAuthorizerToken(ctx, authorizerRefreshToken) - if resp.Result.AuthorizerRefreshToken == "" { - return authorizerAccessToken, errors.New(fmt.Sprintf("获取失败:%v", err)) - } - return c.SetAuthorizerAccessToken(ctx, resp.Result.AuthorizerAccessToken), err -} - -// 预授权码 -func (c *Client) getPreAuthCodeCacheKeyName() string { - return c.cache.preAuthCodePrefix + c.GetComponentAppId() -} - -// SetPreAuthCode 设置预授权码 -func (c *Client) SetPreAuthCode(ctx context.Context, preAuthCode string) string { - if preAuthCode == "" { - return "" - } - c.cache.redisClient.Set(ctx, c.getPreAuthCodeCacheKeyName(), preAuthCode, time.Second*1700) - return c.GetComponentAccessToken(ctx) -} - -// GetPreAuthCode 获取预授权码 -func (c *Client) GetPreAuthCode(ctx context.Context) string { - if c.cache.redisClient.GetDb() == nil { - return c.config.authorizerAccessToken - } - result, _ := c.cache.redisClient.Get(ctx, c.getPreAuthCodeCacheKeyName()).Result() - return result -} - -// DelPreAuthCode 删除预授权码 -func (c *Client) DelPreAuthCode(ctx context.Context) error { - return c.cache.redisClient.Del(ctx, c.getPreAuthCodeCacheKeyName()).Err() -} - -// MonitorPreAuthCode 监控预授权码 -func (c *Client) MonitorPreAuthCode(ctx context.Context) (string, error) { - // 查询 - preAuthCode := c.GetPreAuthCode(ctx) - // 判断 - if preAuthCode != "" { - return preAuthCode, nil - } - // 重新获取 - resp, err := c.CgiBinComponentApiCreatePreAuthCoden(ctx) - return c.SetPreAuthCode(ctx, resp.Result.PreAuthCode), err -} diff --git a/service/wechatopen/request.go b/service/wechatopen/request.go index 005a3180..7710ac3d 100644 --- a/service/wechatopen/request.go +++ b/service/wechatopen/request.go @@ -14,8 +14,8 @@ func (c *Client) request(ctx context.Context, url string, params map[string]inte // 设置请求地址 client.SetUri(url) - client.SetHeader("component_app_id", c.GetComponentAppId()) - client.SetHeader("authorizer_appid", c.GetAuthorizerAppid()) + client.SetHeader("component_app_id", c.GetComponentAppId(ctx)) + client.SetHeader("authorizer_appid", c.GetAuthorizerAppid(ctx)) // 设置方式 client.SetMethod(method) diff --git a/service/wechatopen/service_http.verify_ticket.go b/service/wechatopen/service_http.verify_ticket.go index 408ef30c..53980d91 100644 --- a/service/wechatopen/service_http.verify_ticket.go +++ b/service/wechatopen/service_http.verify_ticket.go @@ -58,7 +58,7 @@ func (c *Client) ServeHttpVerifyTicket(ctx context.Context, r *http.Request) (re return resp, errors.New("未找到随机数参数") } - wantSignature = Sign(c.GetMessageToken(), timestamp, nonce) + wantSignature = Sign(c.GetMessageToken(ctx), timestamp, nonce) if haveSignature != wantSignature { return resp, errors.New("签名错误") } @@ -97,7 +97,7 @@ func (c *Client) ServeHttpVerifyTicket(ctx context.Context, r *http.Request) (re return resp, errors.New(fmt.Sprintf("Encrypt 解码字符串错误:%v", err)) } - AesKey, err := base64.StdEncoding.DecodeString(c.GetMessageKey() + "=") + AesKey, err := base64.StdEncoding.DecodeString(c.GetMessageKey(ctx) + "=") if err != nil { return resp, errors.New(fmt.Sprintf("messageKey 解码字符串错误:%v", err)) } diff --git a/service/wechatopen/set.go b/service/wechatopen/set.go new file mode 100644 index 00000000..7a1ec2e5 --- /dev/null +++ b/service/wechatopen/set.go @@ -0,0 +1,33 @@ +package wechatopen + +import "context" + +// SetComponentAccessToken 设置第三方平台access_token +func (c *Client) SetComponentAccessToken(ctx context.Context, componentAccessToken string) { + c.config.componentAccessToken = componentAccessToken +} + +// SetComponentVerifyTicket 设置第三方平台推送ticket +func (c *Client) SetComponentVerifyTicket(ctx context.Context, componentVerifyTicket string) { + c.config.componentVerifyTicket = componentVerifyTicket +} + +// SetPreAuthCode 设置第三方平台预授权码 +func (c *Client) SetPreAuthCode(ctx context.Context, preAuthCode string) { + c.config.preAuthCode = preAuthCode +} + +// SetAuthorizerAppid 设置授权方appid +func (c *Client) SetAuthorizerAppid(ctx context.Context, authorizerAppid string) { + c.config.authorizerAppid = authorizerAppid +} + +// SetAuthorizerAccessToken 设置授权方access_token +func (c *Client) SetAuthorizerAccessToken(ctx context.Context, authorizerAccessToken string) { + c.config.authorizerAccessToken = authorizerAccessToken +} + +// SetAuthorizerRefreshToken 设置授权方refresh_token +func (c *Client) SetAuthorizerRefreshToken(ctx context.Context, authorizerRefreshToken string) { + c.config.authorizerRefreshToken = authorizerRefreshToken +} diff --git a/service/wechatopen/sign.decrypt.go b/service/wechatopen/sign.decrypt.go index 2f20a917..63d6cb3f 100644 --- a/service/wechatopen/sign.decrypt.go +++ b/service/wechatopen/sign.decrypt.go @@ -29,7 +29,7 @@ func (c *Client) SignDecrypt(ctx context.Context, params SignDecryptParams, strX return nil, errors.New("未找到随机数参数") } - wantSignature := Sign(c.GetMessageToken(), params.Timestamp, params.Nonce) + wantSignature := Sign(c.GetMessageToken(ctx), params.Timestamp, params.Nonce) if params.Signature != wantSignature { return nil, errors.New("签名错误") } @@ -47,7 +47,7 @@ func (c *Client) SignDecrypt(ctx context.Context, params SignDecryptParams, strX return nil, errors.New(fmt.Sprintf("Encrypt 解码字符串错误:%v", err)) } - AesKey, err := base64.StdEncoding.DecodeString(c.GetMessageKey() + "=") + AesKey, err := base64.StdEncoding.DecodeString(c.GetMessageKey(ctx) + "=") if err != nil { return nil, errors.New(fmt.Sprintf("messageKey 解码字符串错误:%v", err)) } diff --git a/service/wechatopen/sns.component.jscode2session.go b/service/wechatopen/sns.component.jscode2session.go index 4c788f7c..f8719257 100644 --- a/service/wechatopen/sns.component.jscode2session.go +++ b/service/wechatopen/sns.component.jscode2session.go @@ -32,33 +32,25 @@ func newSnsComponentJsCode2sessionResult(result SnsComponentJsCode2sessionRespon // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/others/WeChat_login.html func (c *Client) SnsComponentJsCode2session(ctx context.Context, jsCode string, notMustParams ...gorequest.Params) (*SnsComponentJsCode2sessionResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerIsConfig(ctx); err != nil { + return newSnsComponentJsCode2sessionResult(SnsComponentJsCode2sessionResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) - params["appid"] = c.GetAuthorizerAppid() // 小程序的 appId + params["appid"] = c.GetAuthorizerAppid(ctx) // 小程序的 appId params["js_code"] = jsCode // wx.login 获取的 code params["grant_type"] = "authorization_code" // 填 authorization_code - params["component_appid"] = c.GetComponentAppId() // 第三方平台 appid + params["component_appid"] = c.GetComponentAppId(ctx) // 第三方平台 appid params["component_access_token"] = c.GetComponentAccessToken(ctx) // 第三方平台的component_access_token // 请求 request, err := c.request(ctx, apiUrl+"/sns/component/jscode2session", params, http.MethodGet) if err != nil { - return nil, err + return newSnsComponentJsCode2sessionResult(SnsComponentJsCode2sessionResponse{}, request.ResponseBody, request), err } // 定义 var response SnsComponentJsCode2sessionResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newSnsComponentJsCode2sessionResult(response, request.ResponseBody, request), nil + return newSnsComponentJsCode2sessionResult(response, request.ResponseBody, request), err } type UserInfo struct { diff --git a/service/wechatopen/tcb.wxpaylist.go b/service/wechatopen/tcb.wxpaylist.go index 52c0a502..a4333c9c 100644 --- a/service/wechatopen/tcb.wxpaylist.go +++ b/service/wechatopen/tcb.wxpaylist.go @@ -33,26 +33,17 @@ func newTckWxPayListResult(result TckWxPayListResponse, body []byte, http gorequ // TckWxPayList 获取授权绑定的商户号列表 // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/cloudbase-common/wechatpay/getWechatPayList.html func (c *Client) TckWxPayList(ctx context.Context, notMustParams ...gorequest.Params) (*TckWxPayListResult, error) { - // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - // 参数 // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 request, err := c.request(ctx, apiUrl+"/tcb/wxpaylist?access_token="+c.GetComponentAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newTckWxPayListResult(TckWxPayListResponse{}, request.ResponseBody, request), err } // 定义 var response TckWxPayListResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newTckWxPayListResult(response, request.ResponseBody, request), nil + return newTckWxPayListResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.addtotemplate.go b/service/wechatopen/wxa.addtotemplate.go index 3f02294f..1fc87019 100644 --- a/service/wechatopen/wxa.addtotemplate.go +++ b/service/wechatopen/wxa.addtotemplate.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -26,27 +25,19 @@ func newWxaAddToTemplateResult(result WxaAddToTemplateResponse, body []byte, htt // WxaAddToTemplate 将草稿添加到代码模板库 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/code_template/addtotemplate.html func (c *Client) WxaAddToTemplate(ctx context.Context, draftId string, templateType int, notMustParams ...gorequest.Params) (*WxaAddToTemplateResult, error) { - // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } // 参数 params := gorequest.NewParamsWith(notMustParams...) - params["draft_id"] = draftId - params["template_type"] = templateType + params.Set("draft_id", draftId) + params.Set("template_type", templateType) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/addtotemplate?access_token=%s", c.GetComponentAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/addtotemplate?access_token="+c.GetComponentAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaAddToTemplateResult(WxaAddToTemplateResponse{}, request.ResponseBody, request), err } // 定义 var response WxaAddToTemplateResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaAddToTemplateResult(response, request.ResponseBody, request), nil + return newWxaAddToTemplateResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.bind_tester.go b/service/wechatopen/wxa.bind_tester.go index a17db9bf..e4d93234 100644 --- a/service/wechatopen/wxa.bind_tester.go +++ b/service/wechatopen/wxa.bind_tester.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -28,29 +27,21 @@ func newWxaBindTesterResult(result WxaBindTesterResponse, body []byte, http gore // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_AdminManagement/Admin.html func (c *Client) WxaBindTester(ctx context.Context, wechatid string, notMustParams ...gorequest.Params) (*WxaBindTesterResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaBindTesterResult(WxaBindTesterResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) params["wechatid"] = wechatid // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/bind_tester?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/bind_tester?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaBindTesterResult(WxaBindTesterResponse{}, request.ResponseBody, request), err } // 定义 var response WxaBindTesterResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaBindTesterResult(response, request.ResponseBody, request), nil + return newWxaBindTesterResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.business.getuserphonenumber.go b/service/wechatopen/wxa.business.getuserphonenumber.go index 2eecb625..3056085d 100644 --- a/service/wechatopen/wxa.business.getuserphonenumber.go +++ b/service/wechatopen/wxa.business.getuserphonenumber.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -36,29 +35,21 @@ func newWxaBusinessGetUserPhoneNumberResult(result WxaBusinessGetUserPhoneNumber // https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/phonenumber/phonenumber.getPhoneNumber.html func (c *Client) WxaBusinessGetUserPhoneNumber(ctx context.Context, code string, notMustParams ...gorequest.Params) (*WxaBusinessGetUserPhoneNumberResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaBusinessGetUserPhoneNumberResult(WxaBusinessGetUserPhoneNumberResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) params.Set("code", code) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/business/getuserphonenumber?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/business/getuserphonenumber?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaBusinessGetUserPhoneNumberResult(WxaBusinessGetUserPhoneNumberResponse{}, request.ResponseBody, request), err } // 定义 var response WxaBusinessGetUserPhoneNumberResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaBusinessGetUserPhoneNumberResult(response, request.ResponseBody, request), nil + return newWxaBusinessGetUserPhoneNumberResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.commit.go b/service/wechatopen/wxa.commit.go index 642dfb62..1f536728 100644 --- a/service/wechatopen/wxa.commit.go +++ b/service/wechatopen/wxa.commit.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -27,28 +26,20 @@ func newWxaCommitResult(result WxaCommitResponse, body []byte, http gorequest.Re // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/commit.html func (c *Client) WxaCommit(ctx context.Context, notMustParams ...gorequest.Params) (*WxaCommitResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaCommitResult(WxaCommitResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/commit?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/commit?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaCommitResult(WxaCommitResponse{}, request.ResponseBody, request), err } // 定义 var response WxaCommitResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaCommitResult(response, request.ResponseBody, request), nil + return newWxaCommitResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.deletetemplate.go b/service/wechatopen/wxa.deletetemplate.go index b3c40cfc..281368e3 100644 --- a/service/wechatopen/wxa.deletetemplate.go +++ b/service/wechatopen/wxa.deletetemplate.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -27,25 +26,21 @@ func newWxaDeleteTemplateResult(result WxaDeleteTemplateResponse, body []byte, h // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/code_template/deletetemplate.html func (c *Client) WxaDeleteTemplate(ctx context.Context, templateId string, notMustParams ...gorequest.Params) (*WxaDeleteTemplateResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaDeleteTemplateResult(WxaDeleteTemplateResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) params.Set("template_id", templateId) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/deletetemplate?access_token=%s", c.GetComponentAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/deletetemplate?access_token="+c.GetComponentAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaDeleteTemplateResult(WxaDeleteTemplateResponse{}, request.ResponseBody, request), err } // 定义 var response WxaDeleteTemplateResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaDeleteTemplateResult(response, request.ResponseBody, request), nil + return newWxaDeleteTemplateResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.get_auditstatus.go b/service/wechatopen/wxa.get_auditstatus.go index 9faa0d56..2ea14b16 100644 --- a/service/wechatopen/wxa.get_auditstatus.go +++ b/service/wechatopen/wxa.get_auditstatus.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -31,29 +30,21 @@ func newWxaGetAuditStatusResult(result WxaGetAuditStatusResponse, body []byte, h // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/get_auditstatus.html func (c *Client) WxaGetAuditStatus(ctx context.Context, auditid int64, notMustParams ...gorequest.Params) (*WxaGetAuditStatusResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaGetAuditStatusResult(WxaGetAuditStatusResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) params.Set("auditid", auditid) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_auditstatus?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/get_auditstatus?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaGetAuditStatusResult(WxaGetAuditStatusResponse{}, request.ResponseBody, request), err } // 定义 var response WxaGetAuditStatusResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaGetAuditStatusResult(response, request.ResponseBody, request), nil + return newWxaGetAuditStatusResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.get_category.go b/service/wechatopen/wxa.get_category.go index 3d7a3c69..ce59ac94 100644 --- a/service/wechatopen/wxa.get_category.go +++ b/service/wechatopen/wxa.get_category.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -35,26 +34,18 @@ func newWxaGetCategoryResult(result WxaGetCategoryResponse, body []byte, http go // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/category/get_category.html func (c *Client) WxaGetCategory(ctx context.Context, notMustParams ...gorequest.Params) (*WxaGetCategoryResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaGetCategoryResult(WxaGetCategoryResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_category?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet) + request, err := c.request(ctx, apiUrl+"/wxa/get_category?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodGet) if err != nil { - return nil, err + return newWxaGetCategoryResult(WxaGetCategoryResponse{}, request.ResponseBody, request), err } // 定义 var response WxaGetCategoryResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaGetCategoryResult(response, request.ResponseBody, request), nil + return newWxaGetCategoryResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/wxa.get_effective_domain.go b/service/wechatopen/wxa.get_effective_domain.go index 0e4925e2..c88432f2 100644 --- a/service/wechatopen/wxa.get_effective_domain.go +++ b/service/wechatopen/wxa.get_effective_domain.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -51,26 +50,18 @@ func newWxaGetEffectiveDomainResult(result WxaGetEffectiveDomainResponse, body [ // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_Basic_Info/get_effective_domain.html func (c *Client) WxaGetEffectiveDomain(ctx context.Context, notMustParams ...gorequest.Params) (*WxaGetEffectiveDomainResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaGetEffectiveDomainResult(WxaGetEffectiveDomainResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_effective_domain?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/get_effective_domain?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaGetEffectiveDomainResult(WxaGetEffectiveDomainResponse{}, request.ResponseBody, request), err } // 定义 var response WxaGetEffectiveDomainResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaGetEffectiveDomainResult(response, request.ResponseBody, request), nil + return newWxaGetEffectiveDomainResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/wxa.get_latest_auditstatus.go b/service/wechatopen/wxa.get_latest_auditstatus.go index 31a549b3..d9732753 100644 --- a/service/wechatopen/wxa.get_latest_auditstatus.go +++ b/service/wechatopen/wxa.get_latest_auditstatus.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -34,28 +33,20 @@ func newWxaGetLatestAuditStatusResult(result WxaGetLatestAuditStatusResponse, bo // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/get_auditstatus.html func (c *Client) WxaGetLatestAuditStatus(ctx context.Context, notMustParams ...gorequest.Params) (*WxaGetLatestAuditStatusResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaGetLatestAuditStatusResult(WxaGetLatestAuditStatusResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_latest_auditstatus?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet) + request, err := c.request(ctx, apiUrl+"/wxa/get_latest_auditstatus?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodGet) if err != nil { - return nil, err + return newWxaGetLatestAuditStatusResult(WxaGetLatestAuditStatusResponse{}, request.ResponseBody, request), err } // 定义 var response WxaGetLatestAuditStatusResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaGetLatestAuditStatusResult(response, request.ResponseBody, request), nil + return newWxaGetLatestAuditStatusResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.get_page.go b/service/wechatopen/wxa.get_page.go index 4fefd686..1916b826 100644 --- a/service/wechatopen/wxa.get_page.go +++ b/service/wechatopen/wxa.get_page.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -28,26 +27,18 @@ func newWxaGetPageResult(result WxaGetPageResponse, body []byte, http gorequest. // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/get_page.html func (c *Client) WxaGetPage(ctx context.Context, notMustParams ...gorequest.Params) (*WxaGetPageResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaGetPageResult(WxaGetPageResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_page?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet) + request, err := c.request(ctx, apiUrl+"/wxa/get_page?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodGet) if err != nil { - return nil, err + return newWxaGetPageResult(WxaGetPageResponse{}, request.ResponseBody, request), err } // 定义 var response WxaGetPageResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaGetPageResult(response, request.ResponseBody, request), nil + return newWxaGetPageResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/wxa.get_qrcode.go b/service/wechatopen/wxa.get_qrcode.go index 9eb103f6..24cffa0f 100644 --- a/service/wechatopen/wxa.get_qrcode.go +++ b/service/wechatopen/wxa.get_qrcode.go @@ -29,35 +29,26 @@ func newWxaGetQrcodeResult(result WxaGetQrcodeResponse, body []byte, http gorequ // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/get_qrcode.html func (c *Client) WxaGetQrcode(ctx context.Context, path string, notMustParams ...gorequest.Params) (*WxaGetQrcodeResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaGetQrcodeResult(WxaGetQrcodeResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) if path != "" { - params["path"] = path // 指定二维码扫码后直接进入指定页面并可同时带上参数) + params.Set("path", path) // 指定二维码扫码后直接进入指定页面并可同时带上参数) } // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_qrcode?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet) + request, err := c.request(ctx, apiUrl+"/wxa/get_qrcode?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodGet) if err != nil { - return nil, err + return newWxaGetQrcodeResult(WxaGetQrcodeResponse{}, request.ResponseBody, request), err } // 定义 var response WxaGetQrcodeResponse // 判断内容是否为图片 - if request.HeaderIsImg() { - } else { + if request.HeaderIsImg() == false { err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } } - return newWxaGetQrcodeResult(response, request.ResponseBody, request), nil + return newWxaGetQrcodeResult(response, request.ResponseBody, request), err } func (cr *WxaGetQrcodeResult) SaveImg(db *gostorage.AliYun, fileName, filePath string) error { diff --git a/service/wechatopen/wxa.getdefaultamsinfo.agency_get_custom_share_ratio.go b/service/wechatopen/wxa.getdefaultamsinfo.agency_get_custom_share_ratio.go new file mode 100644 index 00000000..a0d365f9 --- /dev/null +++ b/service/wechatopen/wxa.getdefaultamsinfo.agency_get_custom_share_ratio.go @@ -0,0 +1,66 @@ +package wechatopen + +import ( + "context" + "github.com/dtapps/go-library/utils/gojson" + "github.com/dtapps/go-library/utils/gorequest" + "net/http" +) + +type WxaGetDefaultamsInfoAgencyGetCustomShareRatioResponse struct { + Ret int `json:"ret"` + ErrMsg string `json:"err_msg"` + ShareRatio int `json:"share_ratio"` +} + +type WxaGetDefaultamsInfoAgencyGetCustomShareRatioResult struct { + Result WxaGetDefaultamsInfoAgencyGetCustomShareRatioResponse // 结果 + Body []byte // 内容 + Http gorequest.Response // 请求 +} + +func newWxaGetDefaultamsInfoAgencyGetCustomShareRatioResult(result WxaGetDefaultamsInfoAgencyGetCustomShareRatioResponse, body []byte, http gorequest.Response) *WxaGetDefaultamsInfoAgencyGetCustomShareRatioResult { + return &WxaGetDefaultamsInfoAgencyGetCustomShareRatioResult{Result: result, Body: body, Http: http} +} + +// WxaGetDefaultamsInfoAgencyGetCustomShareRatio 查询自定义分账比例 +// https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/ams/percentage/GetCustomShareRatio.html +func (c *Client) WxaGetDefaultamsInfoAgencyGetCustomShareRatio(ctx context.Context, notMustParams ...gorequest.Params) (*WxaGetDefaultamsInfoAgencyGetCustomShareRatioResult, error) { + // 检查 + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaGetDefaultamsInfoAgencyGetCustomShareRatioResult(WxaGetDefaultamsInfoAgencyGetCustomShareRatioResponse{}, []byte{}, gorequest.Response{}), err + } + // 参数 + params := gorequest.NewParamsWith(notMustParams...) + params.Set("appid", c.GetAuthorizerAppid(ctx)) + // 请求 + request, err := c.request(ctx, apiUrl+"/wxa/getdefaultamsinfo?action=agency_get_custom_share_ratio&access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) + if err != nil { + return newWxaGetDefaultamsInfoAgencyGetCustomShareRatioResult(WxaGetDefaultamsInfoAgencyGetCustomShareRatioResponse{}, request.ResponseBody, request), err + } + // 定义 + var response WxaGetDefaultamsInfoAgencyGetCustomShareRatioResponse + err = gojson.Unmarshal(request.ResponseBody, &response) + return newWxaGetDefaultamsInfoAgencyGetCustomShareRatioResult(response, request.ResponseBody, request), err +} + +// ErrcodeInfo 错误描述 +func (resp *WxaGetDefaultamsInfoAgencyGetCustomShareRatioResult) ErrcodeInfo() string { + switch resp.Result.Ret { + case -202: + return "内部错误" + case 1700: + return "参数错误" + case 1701: + return "参数错误" + case 1735: + return "商户未完成协议签署流程" + case 1737: + return "操作过快" + case 2056: + return "服务商未在变现专区开通账户" + case 2061: + return "不存在为该appid设置的个性化分成比例" + } + return "系统繁忙" +} diff --git a/service/wechatopen/wxa.getdefaultamsinfo.get_share_ratio.go b/service/wechatopen/wxa.getdefaultamsinfo.get_share_ratio.go new file mode 100644 index 00000000..456ab527 --- /dev/null +++ b/service/wechatopen/wxa.getdefaultamsinfo.get_share_ratio.go @@ -0,0 +1,63 @@ +package wechatopen + +import ( + "context" + "github.com/dtapps/go-library/utils/gojson" + "github.com/dtapps/go-library/utils/gorequest" + "net/http" +) + +type WxaGetDefaultamsInfoGetShareRatioResponse struct { + Ret int `json:"ret"` + ErrMsg string `json:"err_msg"` +} + +type WxaGetDefaultamsInfoGetShareRatioResult struct { + Result WxaGetDefaultamsInfoGetShareRatioResponse // 结果 + Body []byte // 内容 + Http gorequest.Response // 请求 +} + +func newWxaGetDefaultamsInfoGetShareRatioResult(result WxaGetDefaultamsInfoGetShareRatioResponse, body []byte, http gorequest.Response) *WxaGetDefaultamsInfoGetShareRatioResult { + return &WxaGetDefaultamsInfoGetShareRatioResult{Result: result, Body: body, Http: http} +} + +// WxaGetDefaultamsInfoGetShareRatio 查询分账比例 +// https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/ams/percentage/GetShareRatio.html +func (c *Client) WxaGetDefaultamsInfoGetShareRatio(ctx context.Context, notMustParams ...gorequest.Params) (*WxaGetDefaultamsInfoGetShareRatioResult, error) { + // 检查 + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaGetDefaultamsInfoGetShareRatioResult(WxaGetDefaultamsInfoGetShareRatioResponse{}, []byte{}, gorequest.Response{}), err + } + // 参数 + params := gorequest.NewParamsWith(notMustParams...) + params.Set("appid", c.GetAuthorizerAppid(ctx)) + // 请求 + request, err := c.request(ctx, apiUrl+"/wxa/getdefaultamsinfo?action=get_share_ratio&access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) + if err != nil { + return newWxaGetDefaultamsInfoGetShareRatioResult(WxaGetDefaultamsInfoGetShareRatioResponse{}, request.ResponseBody, request), err + } + // 定义 + var response WxaGetDefaultamsInfoGetShareRatioResponse + err = gojson.Unmarshal(request.ResponseBody, &response) + return newWxaGetDefaultamsInfoGetShareRatioResult(response, request.ResponseBody, request), err +} + +// ErrcodeInfo 错误描述 +func (resp *WxaGetDefaultamsInfoGetShareRatioResult) ErrcodeInfo() string { + switch resp.Result.Ret { + case -202: + return "内部错误" + case 1700: + return "参数错误" + case 1701: + return "参数错误" + case 1735: + return "商户未完成协议签署流程" + case 1737: + return "操作过快" + case 2056: + return "服务商未在变现专区开通账户" + } + return "系统繁忙" +} diff --git a/service/wechatopen/wxa.gettemplatedraftlist.go b/service/wechatopen/wxa.gettemplatedraftlist.go index d7867701..8f6878ff 100644 --- a/service/wechatopen/wxa.gettemplatedraftlist.go +++ b/service/wechatopen/wxa.gettemplatedraftlist.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -36,25 +35,17 @@ func newWxaGetTemplateDraftListResult(result WxaGetTemplateDraftListResponse, bo // WxaGetTemplateDraftList 获取代码草稿列表 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/code_template/gettemplatedraftlist.html func (c *Client) WxaGetTemplateDraftList(ctx context.Context, notMustParams ...gorequest.Params) (*WxaGetTemplateDraftListResult, error) { - // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/gettemplatedraftlist?access_token=%s", c.GetComponentAccessToken(ctx)), params, http.MethodGet) + request, err := c.request(ctx, apiUrl+"/wxa/gettemplatedraftlist?access_token="+c.GetComponentAccessToken(ctx), params, http.MethodGet) if err != nil { - return nil, err + return newWxaGetTemplateDraftListResult(WxaGetTemplateDraftListResponse{}, request.ResponseBody, request), err } // 定义 var response WxaGetTemplateDraftListResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaGetTemplateDraftListResult(response, request.ResponseBody, request), nil + return newWxaGetTemplateDraftListResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.gettemplatelist.go b/service/wechatopen/wxa.gettemplatelist.go index b3581f9c..7ab00860 100644 --- a/service/wechatopen/wxa.gettemplatelist.go +++ b/service/wechatopen/wxa.gettemplatelist.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -37,25 +36,17 @@ func newWxaGetTemplateListResult(result WxaGetTemplateListResponse, body []byte, // WxaGetTemplateList 获取代码模板列表 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/code_template/gettemplatelist.html func (c *Client) WxaGetTemplateList(ctx context.Context, notMustParams ...gorequest.Params) (*WxaGetTemplateListResult, error) { - // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/gettemplatelist?access_token=%s", c.GetComponentAccessToken(ctx)), params, http.MethodGet) + request, err := c.request(ctx, apiUrl+"/wxa/gettemplatelist?access_token="+c.GetComponentAccessToken(ctx), params, http.MethodGet) if err != nil { - return nil, err + return newWxaGetTemplateListResult(WxaGetTemplateListResponse{}, request.ResponseBody, request), err } // 定义 var response WxaGetTemplateListResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaGetTemplateListResult(response, request.ResponseBody, request), nil + return newWxaGetTemplateListResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.getuserriskrank.go b/service/wechatopen/wxa.getuserriskrank.go index 2348c94c..a90b899d 100644 --- a/service/wechatopen/wxa.getuserriskrank.go +++ b/service/wechatopen/wxa.getuserriskrank.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -28,11 +27,15 @@ func newWxaGetUserRiskRankResult(result WxaGetUserRiskRankResponse, body []byte, // WxaGetUserRiskRank 获取用户安全等级 // https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/sec-center/safety-control-capability/getUserRiskRank.html func (c *Client) WxaGetUserRiskRank(ctx context.Context, notMustParams ...gorequest.Params) (*WxaGetUserRiskRankResult, error) { + // 检查 + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaGetUserRiskRankResult(WxaGetUserRiskRankResponse{}, []byte{}, gorequest.Response{}), err + } // 参数 params := gorequest.NewParamsWith(notMustParams...) - params.Set("appid", c.GetAuthorizerAppid()) + params.Set("appid", c.GetAuthorizerAppid(ctx)) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/getuserriskrank?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/getuserriskrank?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { return newWxaGetUserRiskRankResult(WxaGetUserRiskRankResponse{}, request.ResponseBody, request), err } diff --git a/service/wechatopen/wxa.getversioninfo.go b/service/wechatopen/wxa.getversioninfo.go index 45cee2b0..aa4ec720 100644 --- a/service/wechatopen/wxa.getversioninfo.go +++ b/service/wechatopen/wxa.getversioninfo.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -37,26 +36,18 @@ func newWxaGetVersionInfoResult(result WxaGetVersionInfoResponse, body []byte, h // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/get_versioninfo.html func (c *Client) WxaGetVersionInfo(ctx context.Context, notMustParams ...gorequest.Params) (*WxaGetVersionInfoResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaGetVersionInfoResult(WxaGetVersionInfoResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/getversioninfo?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/getversioninfo?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaGetVersionInfoResult(WxaGetVersionInfoResponse{}, request.ResponseBody, request), err } // 定义 var response WxaGetVersionInfoResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaGetVersionInfoResult(response, request.ResponseBody, request), nil + return newWxaGetVersionInfoResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/wxa.getwxacodeunlimit.go b/service/wechatopen/wxa.getwxacodeunlimit.go index 1fee7841..698ff31d 100644 --- a/service/wechatopen/wxa.getwxacodeunlimit.go +++ b/service/wechatopen/wxa.getwxacodeunlimit.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -29,32 +28,23 @@ func newWxaGetWxaCodeUnLimitResult(result WxaGetWxaCodeUnLimitResponse, body []b // https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html func (c *Client) WxaGetWxaCodeUnLimit(ctx context.Context, notMustParams ...gorequest.Params) (*WxaGetWxaCodeUnLimitResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaGetWxaCodeUnLimitResult(WxaGetWxaCodeUnLimitResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/getwxacodeunlimit?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/getwxacodeunlimit?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaGetWxaCodeUnLimitResult(WxaGetWxaCodeUnLimitResponse{}, request.ResponseBody, request), err } // 定义 var response WxaGetWxaCodeUnLimitResponse // 判断内容是否为图片 - if request.HeaderIsImg() { - } else { + if request.HeaderIsImg() == false { err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } } - return newWxaGetWxaCodeUnLimitResult(response, request.ResponseBody, request), nil + return newWxaGetWxaCodeUnLimitResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.media_check_async.go b/service/wechatopen/wxa.media_check_async.go index 658adf4b..11cc5ad6 100644 --- a/service/wechatopen/wxa.media_check_async.go +++ b/service/wechatopen/wxa.media_check_async.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -45,10 +44,14 @@ func newWxaMediaCheckAsyncResult(result WxaMediaCheckAsyncResponse, body []byte, // WxaMediaCheckAsync 音视频内容安全识别 // https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/sec-center/sec-check/mediaCheckAsync.html func (c *Client) WxaMediaCheckAsync(ctx context.Context, notMustParams ...gorequest.Params) (*WxaMediaCheckAsyncResult, error) { + // 检查 + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaMediaCheckAsyncResult(WxaMediaCheckAsyncResponse{}, []byte{}, gorequest.Response{}), err + } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/media_check_async?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/media_check_async?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { return newWxaMediaCheckAsyncResult(WxaMediaCheckAsyncResponse{}, request.ResponseBody, request), err } diff --git a/service/wechatopen/wxa.memberauth.go b/service/wechatopen/wxa.memberauth.go index 6985d51c..55aedc93 100644 --- a/service/wechatopen/wxa.memberauth.go +++ b/service/wechatopen/wxa.memberauth.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -30,27 +29,19 @@ func newWxaMemberAuthResult(result WxaMemberAuthResponse, body []byte, http gore // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_AdminManagement/memberauth.html func (c *Client) WxaMemberAuth(ctx context.Context, notMustParams ...gorequest.Params) (*WxaMemberAuthResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaMemberAuthResult(WxaMemberAuthResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) - params["action"] = "get_experiencer" + params.Set("action", "get_experiencer") // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/memberauth?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/memberauth?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaMemberAuthResult(WxaMemberAuthResponse{}, request.ResponseBody, request), err } // 定义 var response WxaMemberAuthResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaMemberAuthResult(response, request.ResponseBody, request), nil + return newWxaMemberAuthResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/wxa.modify_domain.go b/service/wechatopen/wxa.modify_domain.go index 8844eaa9..aa738ea3 100644 --- a/service/wechatopen/wxa.modify_domain.go +++ b/service/wechatopen/wxa.modify_domain.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -40,24 +39,20 @@ func newWxaModifyDomainResult(result WxaModifyDomainResponse, body []byte, http // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/domain-management/modifyServerDomain.html func (c *Client) WxaModifyDomain(ctx context.Context, notMustParams ...gorequest.Params) (*WxaModifyDomainResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaModifyDomainResult(WxaModifyDomainResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/modify_domain?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/modify_domain?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaModifyDomainResult(WxaModifyDomainResponse{}, request.ResponseBody, request), err } // 定义 var response WxaModifyDomainResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaModifyDomainResult(response, request.ResponseBody, request), nil + return newWxaModifyDomainResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.modify_domain_directly.go b/service/wechatopen/wxa.modify_domain_directly.go index df904b04..d93c92df 100644 --- a/service/wechatopen/wxa.modify_domain_directly.go +++ b/service/wechatopen/wxa.modify_domain_directly.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -40,24 +39,20 @@ func newWxaModifyDomainDirectlyResult(result WxaModifyDomainDirectlyResponse, bo // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/domain-management/modifyServerDomainDirectly.html func (c *Client) WxaModifyDomainDirectly(ctx context.Context, notMustParams ...gorequest.Params) (*WxaModifyDomainDirectlyResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaModifyDomainDirectlyResult(WxaModifyDomainDirectlyResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/modify_domain_directly?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/modify_domain_directly?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaModifyDomainDirectlyResult(WxaModifyDomainDirectlyResponse{}, request.ResponseBody, request), err } // 定义 var response WxaModifyDomainDirectlyResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaModifyDomainDirectlyResult(response, request.ResponseBody, request), nil + return newWxaModifyDomainDirectlyResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.msg_sec_check.go b/service/wechatopen/wxa.msg_sec_check.go index 1be6ec3c..b9a44145 100644 --- a/service/wechatopen/wxa.msg_sec_check.go +++ b/service/wechatopen/wxa.msg_sec_check.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -40,10 +39,14 @@ func newWxaMsgSecCheckResult(result WxaMsgSecCheckResponse, body []byte, http go // WxaMsgSecCheck 文本内容安全识别 // https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html func (c *Client) WxaMsgSecCheck(ctx context.Context, notMustParams ...gorequest.Params) (*WxaMsgSecCheckResult, error) { + // 检查 + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaMsgSecCheckResult(WxaMsgSecCheckResponse{}, []byte{}, gorequest.Response{}), err + } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/msg_sec_check?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/msg_sec_check?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { return newWxaMsgSecCheckResult(WxaMsgSecCheckResponse{}, request.ResponseBody, request), err } diff --git a/service/wechatopen/wxa.operationams.agency_check_can_open_publisher.go b/service/wechatopen/wxa.operationams.agency_check_can_open_publisher.go new file mode 100644 index 00000000..5fc4c153 --- /dev/null +++ b/service/wechatopen/wxa.operationams.agency_check_can_open_publisher.go @@ -0,0 +1,61 @@ +package wechatopen + +import ( + "context" + "github.com/dtapps/go-library/utils/gojson" + "github.com/dtapps/go-library/utils/gorequest" + "net/http" +) + +type WxaOperationamsAgencyCheckCanOpenPublisherResponse struct { + Ret int `json:"ret"` + ErrMsg string `json:"err_msg"` + Status int `json:"status"` +} + +type WxaOperationamsAgencyCheckCanOpenPublisherResult struct { + Result WxaOperationamsAgencyCheckCanOpenPublisherResponse // 结果 + Body []byte // 内容 + Http gorequest.Response // 请求 +} + +func newWxaOperationamsAgencyCheckCanOpenPublisherResult(result WxaOperationamsAgencyCheckCanOpenPublisherResponse, body []byte, http gorequest.Response) *WxaOperationamsAgencyCheckCanOpenPublisherResult { + return &WxaOperationamsAgencyCheckCanOpenPublisherResult{Result: result, Body: body, Http: http} +} + +// WxaOperationamsAgencyCheckCanOpenPublisher 检测是否能开通流量主 +// https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/ams/open/AgencyCheckCanOpenPublisher.html +func (c *Client) WxaOperationamsAgencyCheckCanOpenPublisher(ctx context.Context, notMustParams ...gorequest.Params) (*WxaOperationamsAgencyCheckCanOpenPublisherResult, error) { + // 检查 + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaOperationamsAgencyCheckCanOpenPublisherResult(WxaOperationamsAgencyCheckCanOpenPublisherResponse{}, []byte{}, gorequest.Response{}), err + } + // 参数 + params := gorequest.NewParamsWith(notMustParams...) + // 请求 + request, err := c.request(ctx, apiUrl+"/wxa/operationams?action=agency_check_can_open_publisher&access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) + if err != nil { + return newWxaOperationamsAgencyCheckCanOpenPublisherResult(WxaOperationamsAgencyCheckCanOpenPublisherResponse{}, request.ResponseBody, request), err + } + // 定义 + var response WxaOperationamsAgencyCheckCanOpenPublisherResponse + err = gojson.Unmarshal(request.ResponseBody, &response) + return newWxaOperationamsAgencyCheckCanOpenPublisherResult(response, request.ResponseBody, request), err +} + +// ErrcodeInfo 错误描述 +func (resp *WxaOperationamsAgencyCheckCanOpenPublisherResult) ErrcodeInfo() string { + switch resp.Result.Ret { + case 1700: + return "参数错误" + case 1701: + return "参数错误" + case 1735: + return "商户未完成协议签署流程" + case 1737: + return "操作过快" + case 2056: + return "服务商未在变现专区开通账户" + } + return "系统繁忙" +} diff --git a/service/wechatopen/wxa.operationams.agency_create_publisher.go b/service/wechatopen/wxa.operationams.agency_create_publisher.go new file mode 100644 index 00000000..1d441415 --- /dev/null +++ b/service/wechatopen/wxa.operationams.agency_create_publisher.go @@ -0,0 +1,68 @@ +package wechatopen + +import ( + "context" + "github.com/dtapps/go-library/utils/gojson" + "github.com/dtapps/go-library/utils/gorequest" + "net/http" +) + +type WxaOperationamsAgencyCreatePublisherResponse struct { + Ret int `json:"ret"` + ErrMsg string `json:"err_msg"` +} + +type WxaOperationamsAgencyCreatePublisherResult struct { + Result WxaOperationamsAgencyCreatePublisherResponse // 结果 + Body []byte // 内容 + Http gorequest.Response // 请求 +} + +func newWxaOperationamsAgencyCreatePublisherResult(result WxaOperationamsAgencyCreatePublisherResponse, body []byte, http gorequest.Response) *WxaOperationamsAgencyCreatePublisherResult { + return &WxaOperationamsAgencyCreatePublisherResult{Result: result, Body: body, Http: http} +} + +// WxaOperationamsAgencyCreatePublisher 检测是否能开通流量主 +// https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/ams/open/AgencyCheckCanOpenPublisher.html +func (c *Client) WxaOperationamsAgencyCreatePublisher(ctx context.Context, notMustParams ...gorequest.Params) (*WxaOperationamsAgencyCreatePublisherResult, error) { + // 检查 + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaOperationamsAgencyCreatePublisherResult(WxaOperationamsAgencyCreatePublisherResponse{}, []byte{}, gorequest.Response{}), err + } + // 参数 + params := gorequest.NewParamsWith(notMustParams...) + // 请求 + request, err := c.request(ctx, apiUrl+"/wxa/operationams?action=agency_check_can_open_publisher&access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) + if err != nil { + return newWxaOperationamsAgencyCreatePublisherResult(WxaOperationamsAgencyCreatePublisherResponse{}, request.ResponseBody, request), err + } + // 定义 + var response WxaOperationamsAgencyCreatePublisherResponse + err = gojson.Unmarshal(request.ResponseBody, &response) + return newWxaOperationamsAgencyCreatePublisherResult(response, request.ResponseBody, request), err +} + +// ErrcodeInfo 错误描述 +func (resp *WxaOperationamsAgencyCreatePublisherResult) ErrcodeInfo() string { + switch resp.Result.Ret { + case 1700: + return "参数错误" + case 1701: + return "参数错误" + case 1735: + return "商户未完成协议签署流程" + case 1737: + return "操作过快" + case 1807: + return "无效流量主" + case 2009: + return "无效流量主" + case 2021: + return "已开通流量主" + case 2056: + return "服务商未在变现专区开通账户" + case 2013: + return "未满足开通流量主门槛(1000个独立访问用户UV)" + } + return "系统繁忙" +} diff --git a/service/wechatopen/wxa.operationams.agency_get_settlement.go b/service/wechatopen/wxa.operationams.agency_get_settlement.go new file mode 100644 index 00000000..bc17b569 --- /dev/null +++ b/service/wechatopen/wxa.operationams.agency_get_settlement.go @@ -0,0 +1 @@ +package wechatopen diff --git a/service/wechatopen/wxa.release.go b/service/wechatopen/wxa.release.go index 00c24ceb..e2af9b1d 100644 --- a/service/wechatopen/wxa.release.go +++ b/service/wechatopen/wxa.release.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -27,28 +26,20 @@ func newWxaReleaseResult(result WxaReleaseResponse, body []byte, http gorequest. // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/release.html func (c *Client) WxaRelease(ctx context.Context, notMustParams ...gorequest.Params) (*WxaReleaseResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaReleaseResult(WxaReleaseResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/release?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/release?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaReleaseResult(WxaReleaseResponse{}, request.ResponseBody, request), err } // 定义 var response WxaReleaseResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaReleaseResult(response, request.ResponseBody, request), nil + return newWxaReleaseResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.revertcoderelease.go b/service/wechatopen/wxa.revertcoderelease.go index 6b132116..b43b8313 100644 --- a/service/wechatopen/wxa.revertcoderelease.go +++ b/service/wechatopen/wxa.revertcoderelease.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -33,28 +32,20 @@ func newWxaRevertCodeReleaseResult(result WxaRevertCodeReleaseResponse, body []b // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/code-management/revertCodeRelease.html func (c *Client) WxaRevertCodeRelease(ctx context.Context, notMustParams ...gorequest.Params) (*WxaRevertCodeReleaseResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err - } - err = c.checkAuthorizerIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaRevertCodeReleaseResult(WxaRevertCodeReleaseResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/revertcoderelease?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet) + request, err := c.request(ctx, apiUrl+"/wxa/revertcoderelease?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodGet) if err != nil { - return nil, err + return newWxaRevertCodeReleaseResult(WxaRevertCodeReleaseResponse{}, request.ResponseBody, request), err } // 定义 var response WxaRevertCodeReleaseResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaRevertCodeReleaseResult(response, request.ResponseBody, request), nil + return newWxaRevertCodeReleaseResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.security.apply_privacy_interface.go b/service/wechatopen/wxa.security.apply_privacy_interface.go index ec01be5b..06d3f592 100644 --- a/service/wechatopen/wxa.security.apply_privacy_interface.go +++ b/service/wechatopen/wxa.security.apply_privacy_interface.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -28,24 +27,20 @@ func newWxaSecurityApplyPrivacyInterfaceResult(result WxaSecurityApplyPrivacyInt // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/apply_api/apply_privacy_interface.html func (c *Client) WxaSecurityApplyPrivacyInterface(ctx context.Context, notMustParams ...gorequest.Params) (*WxaSecurityApplyPrivacyInterfaceResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaSecurityApplyPrivacyInterfaceResult(WxaSecurityApplyPrivacyInterfaceResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/security/apply_privacy_interface?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/security/apply_privacy_interface?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaSecurityApplyPrivacyInterfaceResult(WxaSecurityApplyPrivacyInterfaceResponse{}, request.ResponseBody, request), err } // 定义 var response WxaSecurityApplyPrivacyInterfaceResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaSecurityApplyPrivacyInterfaceResult(response, request.ResponseBody, request), nil + return newWxaSecurityApplyPrivacyInterfaceResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.security.applysetorderpathinfo.go b/service/wechatopen/wxa.security.applysetorderpathinfo.go index a69b9735..020f5e68 100644 --- a/service/wechatopen/wxa.security.applysetorderpathinfo.go +++ b/service/wechatopen/wxa.security.applysetorderpathinfo.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -27,24 +26,20 @@ func newWxaSecurityApplySetOrderPathInfoResult(result WxaSecurityApplySetOrderPa // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/basic-info-management/applySetOrderPathInfo.html func (c *Client) WxaSecurityApplySetOrderPathInfo(ctx context.Context, notMustParams ...gorequest.Params) (*WxaSecurityApplySetOrderPathInfoResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaSecurityApplySetOrderPathInfoResult(WxaSecurityApplySetOrderPathInfoResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/security/applysetorderpathinfo?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/security/applysetorderpathinfo?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaSecurityApplySetOrderPathInfoResult(WxaSecurityApplySetOrderPathInfoResponse{}, request.ResponseBody, request), err } // 定义 var response WxaSecurityApplySetOrderPathInfoResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaSecurityApplySetOrderPathInfoResult(response, request.ResponseBody, request), nil + return newWxaSecurityApplySetOrderPathInfoResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.security.get_privacy_interface.go b/service/wechatopen/wxa.security.get_privacy_interface.go index 955a043f..04c12daa 100644 --- a/service/wechatopen/wxa.security.get_privacy_interface.go +++ b/service/wechatopen/wxa.security.get_privacy_interface.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -38,24 +37,20 @@ func newWxaSecurityGetPrivacyInterfaceResult(result WxaSecurityGetPrivacyInterfa // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/apply_api/get_privacy_interface.html func (c *Client) WxaSecurityGetPrivacyInterface(ctx context.Context, notMustParams ...gorequest.Params) (*WxaSecurityGetPrivacyInterfaceResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaSecurityGetPrivacyInterfaceResult(WxaSecurityGetPrivacyInterfaceResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/security/get_privacy_interface?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet) + request, err := c.request(ctx, apiUrl+"/wxa/security/get_privacy_interface?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodGet) if err != nil { - return nil, err + return newWxaSecurityGetPrivacyInterfaceResult(WxaSecurityGetPrivacyInterfaceResponse{}, request.ResponseBody, request), err } // 定义 var response WxaSecurityGetPrivacyInterfaceResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaSecurityGetPrivacyInterfaceResult(response, request.ResponseBody, request), nil + return newWxaSecurityGetPrivacyInterfaceResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.security.getorderpathinfo.go b/service/wechatopen/wxa.security.getorderpathinfo.go index ddb2723c..78512728 100644 --- a/service/wechatopen/wxa.security.getorderpathinfo.go +++ b/service/wechatopen/wxa.security.getorderpathinfo.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -37,25 +36,21 @@ func newWxaSecurityGetOrderPathInfoResult(result WxaSecurityGetOrderPathInfoResp // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/basic-info-management/getOrderPathInfo.html func (c *Client) WxaSecurityGetOrderPathInfo(ctx context.Context, infoType int, notMustParams ...gorequest.Params) (*WxaSecurityGetOrderPathInfoResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaSecurityGetOrderPathInfoResult(WxaSecurityGetOrderPathInfoResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) params.Set("info_type", infoType) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/security/getorderpathinfo?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/security/getorderpathinfo?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaSecurityGetOrderPathInfoResult(WxaSecurityGetOrderPathInfoResponse{}, request.ResponseBody, request), err } // 定义 var response WxaSecurityGetOrderPathInfoResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaSecurityGetOrderPathInfoResult(response, request.ResponseBody, request), nil + return newWxaSecurityGetOrderPathInfoResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.setdefaultamsinfo.agency_set_custom_share_ratio.go b/service/wechatopen/wxa.setdefaultamsinfo.agency_set_custom_share_ratio.go new file mode 100644 index 00000000..7b04f5ad --- /dev/null +++ b/service/wechatopen/wxa.setdefaultamsinfo.agency_set_custom_share_ratio.go @@ -0,0 +1,63 @@ +package wechatopen + +import ( + "context" + "github.com/dtapps/go-library/utils/gojson" + "github.com/dtapps/go-library/utils/gorequest" + "net/http" +) + +type WxaSetDefaultamsInfoAgencySetCustomShareRatioResponse struct { + Ret int `json:"ret"` + ErrMsg string `json:"err_msg"` +} + +type WxaSetDefaultamsInfoAgencySetCustomShareRatioResult struct { + Result WxaSetDefaultamsInfoAgencySetCustomShareRatioResponse // 结果 + Body []byte // 内容 + Http gorequest.Response // 请求 +} + +func newWxaSetDefaultamsInfoAgencySetCustomShareRatioResult(result WxaSetDefaultamsInfoAgencySetCustomShareRatioResponse, body []byte, http gorequest.Response) *WxaSetDefaultamsInfoAgencySetCustomShareRatioResult { + return &WxaSetDefaultamsInfoAgencySetCustomShareRatioResult{Result: result, Body: body, Http: http} +} + +// WxaSetDefaultamsInfoAgencySetCustomShareRatio 设置自定义分账比例 +// https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/ams/percentage/SetCustomShareRatio.html +func (c *Client) WxaSetDefaultamsInfoAgencySetCustomShareRatio(ctx context.Context, shareRatio int64, notMustParams ...gorequest.Params) (*WxaSetDefaultamsInfoAgencySetCustomShareRatioResult, error) { + // 检查 + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaSetDefaultamsInfoAgencySetCustomShareRatioResult(WxaSetDefaultamsInfoAgencySetCustomShareRatioResponse{}, []byte{}, gorequest.Response{}), err + } + // 参数 + params := gorequest.NewParamsWith(notMustParams...) + if shareRatio > 0 { + params.Set("share_ratio", shareRatio) + } + // 请求 + request, err := c.request(ctx, apiUrl+"/wxa/setdefaultamsinfo?action=agency_set_custom_share_ratio&access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) + if err != nil { + return newWxaSetDefaultamsInfoAgencySetCustomShareRatioResult(WxaSetDefaultamsInfoAgencySetCustomShareRatioResponse{}, request.ResponseBody, request), err + } + // 定义 + var response WxaSetDefaultamsInfoAgencySetCustomShareRatioResponse + err = gojson.Unmarshal(request.ResponseBody, &response) + return newWxaSetDefaultamsInfoAgencySetCustomShareRatioResult(response, request.ResponseBody, request), err +} + +// ErrcodeInfo 错误描述 +func (resp *WxaSetDefaultamsInfoAgencySetCustomShareRatioResult) ErrcodeInfo() string { + switch resp.Result.Ret { + case -202: + return "内部错误" + case 1700: + return "参数错误" + case 1701: + return "参数错误" + case 1737: + return "操作过快" + case 2056: + return "服务商未在变现专区开通账户" + } + return "系统繁忙" +} diff --git a/service/wechatopen/wxa.setdefaultamsinfo.set_share_ratio.go b/service/wechatopen/wxa.setdefaultamsinfo.set_share_ratio.go new file mode 100644 index 00000000..d15e55ee --- /dev/null +++ b/service/wechatopen/wxa.setdefaultamsinfo.set_share_ratio.go @@ -0,0 +1,63 @@ +package wechatopen + +import ( + "context" + "github.com/dtapps/go-library/utils/gojson" + "github.com/dtapps/go-library/utils/gorequest" + "net/http" +) + +type WxaSetDefaultamsInfoSetShareRatioResponse struct { + Ret int `json:"ret"` + ErrMsg string `json:"err_msg"` +} + +type WxaSetDefaultamsInfoSetShareRatioResult struct { + Result WxaSetDefaultamsInfoSetShareRatioResponse // 结果 + Body []byte // 内容 + Http gorequest.Response // 请求 +} + +func newWxaSetDefaultamsInfoSetShareRatioResult(result WxaSetDefaultamsInfoSetShareRatioResponse, body []byte, http gorequest.Response) *WxaSetDefaultamsInfoSetShareRatioResult { + return &WxaSetDefaultamsInfoSetShareRatioResult{Result: result, Body: body, Http: http} +} + +// WxaSetDefaultamsInfoSetShareRatio 设置默认分账比例 +// https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/ams/percentage/SetShareRatio.html +func (c *Client) WxaSetDefaultamsInfoSetShareRatio(ctx context.Context, shareRatio int64, notMustParams ...gorequest.Params) (*WxaSetDefaultamsInfoSetShareRatioResult, error) { + // 检查 + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaSetDefaultamsInfoSetShareRatioResult(WxaSetDefaultamsInfoSetShareRatioResponse{}, []byte{}, gorequest.Response{}), err + } + // 参数 + params := gorequest.NewParamsWith(notMustParams...) + if shareRatio > 0 { + params.Set("share_ratio", shareRatio) + } + // 请求 + request, err := c.request(ctx, apiUrl+"/wxa/setdefaultamsinfo?action=set_share_ratio&access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) + if err != nil { + return newWxaSetDefaultamsInfoSetShareRatioResult(WxaSetDefaultamsInfoSetShareRatioResponse{}, request.ResponseBody, request), err + } + // 定义 + var response WxaSetDefaultamsInfoSetShareRatioResponse + err = gojson.Unmarshal(request.ResponseBody, &response) + return newWxaSetDefaultamsInfoSetShareRatioResult(response, request.ResponseBody, request), err +} + +// ErrcodeInfo 错误描述 +func (resp *WxaSetDefaultamsInfoSetShareRatioResult) ErrcodeInfo() string { + switch resp.Result.Ret { + case -202: + return "内部错误" + case 1700: + return "参数错误" + case 1701: + return "参数错误" + case 1737: + return "操作过快" + case 2056: + return "服务商未在变现专区开通账户" + } + return "系统繁忙" +} diff --git a/service/wechatopen/wxa.setwebviewdomain.go b/service/wechatopen/wxa.setwebviewdomain.go index 6be9babc..a02cc59b 100644 --- a/service/wechatopen/wxa.setwebviewdomain.go +++ b/service/wechatopen/wxa.setwebviewdomain.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -27,24 +26,20 @@ func newWxaSetWebViewDoMainResult(result WxaSetWebViewDoMainResponse, body []byt // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/domain-management/modifyJumpDomain.html func (c *Client) WxaSetWebViewDoMain(ctx context.Context, notMustParams ...gorequest.Params) (*WxaSetWebViewDoMainResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaSetWebViewDoMainResult(WxaSetWebViewDoMainResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/setwebviewdomain?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/setwebviewdomain?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaSetWebViewDoMainResult(WxaSetWebViewDoMainResponse{}, request.ResponseBody, request), err } // 定义 var response WxaSetWebViewDoMainResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaSetWebViewDoMainResult(response, request.ResponseBody, request), nil + return newWxaSetWebViewDoMainResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxa.submit_audit.go b/service/wechatopen/wxa.submit_audit.go index 50271972..1293df89 100644 --- a/service/wechatopen/wxa.submit_audit.go +++ b/service/wechatopen/wxa.submit_audit.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -28,22 +27,18 @@ func newWxaSubmitAuditResult(result WxaSubmitAuditResponse, body []byte, http go // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/submit_audit.html func (c *Client) WxaSubmitAudit(ctx context.Context, notMustParams ...gorequest.Params) (*WxaSubmitAuditResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaSubmitAuditResult(WxaSubmitAuditResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/submit_audit?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/submit_audit?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaSubmitAuditResult(WxaSubmitAuditResponse{}, request.ResponseBody, request), err } // 定义 var response WxaSubmitAuditResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaSubmitAuditResult(response, request.ResponseBody, request), nil + return newWxaSubmitAuditResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/wxa.unbind_tester.go b/service/wechatopen/wxa.unbind_tester.go index 1d2513bf..b0a6af84 100644 --- a/service/wechatopen/wxa.unbind_tester.go +++ b/service/wechatopen/wxa.unbind_tester.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -27,26 +26,22 @@ func newWxaUnbindTesterResult(result WxaUnbindTesterResponse, body []byte, http // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_AdminManagement/unbind_tester.html func (c *Client) WxaUnbindTester(ctx context.Context, wechatid, userstr string, notMustParams ...gorequest.Params) (*WxaUnbindTesterResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaUnbindTesterResult(WxaUnbindTesterResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) if wechatid != "" { - params["wechatid"] = wechatid + params.Set("wechatid", wechatid) } - params["userstr"] = userstr + params.Set("userstr", userstr) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/unbind_tester?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxa/unbind_tester?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaUnbindTesterResult(WxaUnbindTesterResponse{}, request.ResponseBody, request), err } // 定义 var response WxaUnbindTesterResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaUnbindTesterResult(response, request.ResponseBody, request), nil + return newWxaUnbindTesterResult(response, request.ResponseBody, request), err } diff --git a/service/wechatopen/wxaapi.wxaembedded.add_embedded.go b/service/wechatopen/wxaapi.wxaembedded.add_embedded.go index a926a767..7a65e5ec 100644 --- a/service/wechatopen/wxaapi.wxaembedded.add_embedded.go +++ b/service/wechatopen/wxaapi.wxaembedded.add_embedded.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -27,24 +26,20 @@ func newWxaApiWxaembeddedAddEmbeddedResult(result WxaApiWxaembeddedAddEmbeddedRe // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/embedded-management/addEmbedded.html func (c *Client) WxaApiWxaembeddedAddEmbedded(ctx context.Context, notMustParams ...gorequest.Params) (*WxaApiWxaembeddedAddEmbeddedResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaApiWxaembeddedAddEmbeddedResult(WxaApiWxaembeddedAddEmbeddedResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxaapi/wxaembedded/add_embedded?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxaapi/wxaembedded/add_embedded?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaApiWxaembeddedAddEmbeddedResult(WxaApiWxaembeddedAddEmbeddedResponse{}, request.ResponseBody, request), err } // 定义 var response WxaApiWxaembeddedAddEmbeddedResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaApiWxaembeddedAddEmbeddedResult(response, request.ResponseBody, request), nil + return newWxaApiWxaembeddedAddEmbeddedResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxaapi.wxaembedded.del_authorize.go b/service/wechatopen/wxaapi.wxaembedded.del_authorize.go index 78959f80..fc94209a 100644 --- a/service/wechatopen/wxaapi.wxaembedded.del_authorize.go +++ b/service/wechatopen/wxaapi.wxaembedded.del_authorize.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -27,24 +26,20 @@ func newWxaApiWxaembeddedDelEmbeddedResult(result WxaApiWxaembeddedDelEmbeddedRe // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/embedded-management/deleteEmbedded.html func (c *Client) WxaApiWxaembeddedDelEmbedded(ctx context.Context, notMustParams ...gorequest.Params) (*WxaApiWxaembeddedDelEmbeddedResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaApiWxaembeddedDelEmbeddedResult(WxaApiWxaembeddedDelEmbeddedResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxaapi/wxaembedded/del_embedded?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxaapi/wxaembedded/del_embedded?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaApiWxaembeddedDelEmbeddedResult(WxaApiWxaembeddedDelEmbeddedResponse{}, request.ResponseBody, request), err } // 定义 var response WxaApiWxaembeddedDelEmbeddedResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaApiWxaembeddedDelEmbeddedResult(response, request.ResponseBody, request), nil + return newWxaApiWxaembeddedDelEmbeddedResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxaapi.wxaembedded.del_embedded.go b/service/wechatopen/wxaapi.wxaembedded.del_embedded.go index e120e7ed..03ac8956 100644 --- a/service/wechatopen/wxaapi.wxaembedded.del_embedded.go +++ b/service/wechatopen/wxaapi.wxaembedded.del_embedded.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -27,24 +26,20 @@ func newWxaApiWxaembeddedDelAuthorizeResult(result WxaApiWxaembeddedDelAuthorize // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/embedded-management/deleteAuthorizedEmbedded.html func (c *Client) WxaApiWxaembeddedDelAuthorize(ctx context.Context, notMustParams ...gorequest.Params) (*WxaApiWxaembeddedDelAuthorizeResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaApiWxaembeddedDelAuthorizeResult(WxaApiWxaembeddedDelAuthorizeResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxaapi/wxaembedded/del_authorize?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxaapi/wxaembedded/del_authorize?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaApiWxaembeddedDelAuthorizeResult(WxaApiWxaembeddedDelAuthorizeResponse{}, request.ResponseBody, request), err } // 定义 var response WxaApiWxaembeddedDelAuthorizeResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaApiWxaembeddedDelAuthorizeResult(response, request.ResponseBody, request), nil + return newWxaApiWxaembeddedDelAuthorizeResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxaapi.wxaembedded.get_list.go b/service/wechatopen/wxaapi.wxaembedded.get_list.go index 499348d1..7acc8f1f 100644 --- a/service/wechatopen/wxaapi.wxaembedded.get_list.go +++ b/service/wechatopen/wxaapi.wxaembedded.get_list.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -36,24 +35,20 @@ func newWxaApiWxaembeddedGetListResult(result WxaApiWxaembeddedGetListResponse, // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/embedded-management/getEmbeddedList.html func (c *Client) WxaApiWxaembeddedGetList(ctx context.Context, notMustParams ...gorequest.Params) (*WxaApiWxaembeddedGetListResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaApiWxaembeddedGetListResult(WxaApiWxaembeddedGetListResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxaapi/wxaembedded/get_list?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet) + request, err := c.request(ctx, apiUrl+"/wxaapi/wxaembedded/get_list?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodGet) if err != nil { - return nil, err + return newWxaApiWxaembeddedGetListResult(WxaApiWxaembeddedGetListResponse{}, request.ResponseBody, request), err } // 定义 var response WxaApiWxaembeddedGetListResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaApiWxaembeddedGetListResult(response, request.ResponseBody, request), nil + return newWxaApiWxaembeddedGetListResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxaapi.wxaembedded.get_own_list.go b/service/wechatopen/wxaapi.wxaembedded.get_own_list.go index 26fb1c06..73f2c55d 100644 --- a/service/wechatopen/wxaapi.wxaembedded.get_own_list.go +++ b/service/wechatopen/wxaapi.wxaembedded.get_own_list.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -36,24 +35,20 @@ func newWxaApiWxAembeddedGetOwnListResult(result WxaApiWxAembeddedGetOwnListResp // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/embedded-management/getOwnList.html func (c *Client) WxaApiWxAembeddedGetOwnList(ctx context.Context, notMustParams ...gorequest.Params) (*WxaApiWxAembeddedGetOwnListResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaApiWxAembeddedGetOwnListResult(WxaApiWxAembeddedGetOwnListResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxaapi/wxaembedded/get_own_list?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet) + request, err := c.request(ctx, apiUrl+"/wxaapi/wxaembedded/get_own_list?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodGet) if err != nil { - return nil, err + return newWxaApiWxAembeddedGetOwnListResult(WxaApiWxAembeddedGetOwnListResponse{}, request.ResponseBody, request), err } // 定义 var response WxaApiWxAembeddedGetOwnListResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaApiWxAembeddedGetOwnListResult(response, request.ResponseBody, request), nil + return newWxaApiWxAembeddedGetOwnListResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述 diff --git a/service/wechatopen/wxaapi.wxaembedded.set_authorize.go b/service/wechatopen/wxaapi.wxaembedded.set_authorize.go index eae0d910..83daac90 100644 --- a/service/wechatopen/wxaapi.wxaembedded.set_authorize.go +++ b/service/wechatopen/wxaapi.wxaembedded.set_authorize.go @@ -2,7 +2,6 @@ package wechatopen import ( "context" - "fmt" "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorequest" "net/http" @@ -24,27 +23,24 @@ func newWxaApiWxAembeddedSetAuthorizeResult(result WxaApiWxAembeddedSetAuthorize } // WxaApiWxAembeddedSetAuthorize 设置授权方式 +// checkComponentIsConfig && checkAuthorizerConfig // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/embedded-management/setAuthorizedEmbedded.html func (c *Client) WxaApiWxAembeddedSetAuthorize(ctx context.Context, notMustParams ...gorequest.Params) (*WxaApiWxAembeddedSetAuthorizeResult, error) { // 检查 - err := c.checkComponentIsConfig() - if err != nil { - return nil, err + if err := c.checkAuthorizerConfig(ctx); err != nil { + return newWxaApiWxAembeddedSetAuthorizeResult(WxaApiWxAembeddedSetAuthorizeResponse{}, []byte{}, gorequest.Response{}), err } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxaapi/wxaembedded/set_authorize?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+"/wxaapi/wxaembedded/set_authorize?access_token="+c.GetAuthorizerAccessToken(ctx), params, http.MethodPost) if err != nil { - return nil, err + return newWxaApiWxAembeddedSetAuthorizeResult(WxaApiWxAembeddedSetAuthorizeResponse{}, request.ResponseBody, request), err } // 定义 var response WxaApiWxAembeddedSetAuthorizeResponse err = gojson.Unmarshal(request.ResponseBody, &response) - if err != nil { - return nil, err - } - return newWxaApiWxAembeddedSetAuthorizeResult(response, request.ResponseBody, request), nil + return newWxaApiWxAembeddedSetAuthorizeResult(response, request.ResponseBody, request), err } // ErrcodeInfo 错误描述