From 3bd29edc4b11fe4e3426fe7e238feba9eb1e8963 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Mon, 29 Aug 2022 18:14:32 +0800 Subject: [PATCH] - update error --- cgi-bin.account.getaccountbasicinfo.go | 28 ++++++++++++++---- cgi-bin.component.api_authorizer_token.go | 24 +++++++++++---- cgi-bin.component.api_component_token.go | 20 +++++++++---- cgi-bin.component.api_create_preauthcode.go | 21 +++++++++---- cgi-bin.component.api_get_authorizer_info.go | 24 +++++++++++---- cgi-bin.component.api_query_auth.go | 20 +++++++++---- cgi-bin.component.api_start_push_ticket.go | 20 +++++++++---- cgi-bin.component.getprivacysetting.go | 24 +++++++++++---- cgi-bin.component.setprivacysetting.go | 24 +++++++++++---- cgi-bin.get_api_domain_ip.go | 19 ++++++++---- cgi-bin.shorturl.go | 21 +++++++++---- cgi-bin.wxopen.qrcodejumpadd.go | 24 +++++++++++---- cgi-bin.wxopen.qrcodejumpdelete.go | 24 +++++++++++---- cgi-bin.wxopen.qrcodejumpdownloa.go | 24 +++++++++++---- cgi-bin.wxopen.qrcodejumpget.go | 24 +++++++++++---- cgi-bin.wxopen.qrcodejumppublish.go | 24 +++++++++++---- check.go | 21 +++++++++++++ client.go | 2 +- const.go | 2 +- error.go | 13 +++++++- get.go | 2 +- redis.go | 26 +++++++++------- service_http.authorizer_appid.go | 5 +++- set.go | 7 ----- sns.component.jscode2session.go | 26 ++++++++++++---- tcb.wxpaylist.go | 21 +++++++++---- wxa.addtotemplate.go | 24 +++++++++++---- wxa.bind_tester.go | 24 +++++++++++---- wxa.business.getuserphonenumber.go | 24 +++++++++++---- wxa.commit.go | 24 +++++++++++---- wxa.deletetemplate.go | 20 +++++++++---- wxa.get_auditstatus.go | 24 +++++++++++---- wxa.get_category.go | 28 ++++++++++++++---- wxa.get_effective_domain.go | 24 +++++++++++---- wxa.get_latest_auditstatus.go | 28 ++++++++++++++---- wxa.get_page.go | 28 ++++++++++++++---- wxa.get_qrcode.go | 24 +++++++++++---- wxa.gettemplatedraftlist.go | 24 +++++++++++---- wxa.gettemplatelist.go | 24 +++++++++++---- wxa.getversioninfo.go | 31 +++++++++++++------- wxa.getwxacodeunlimit.go | 24 +++++++++++---- wxa.memberauth.go | 29 +++++++++++------- wxa.modify_domain.go | 20 +++++++++---- wxa.modify_domain_directly.go | 20 +++++++++---- wxa.release.go | 24 +++++++++++---- wxa.security.apply_privacy_interface.go | 20 +++++++++---- wxa.security.get_privacy_interface.go | 20 +++++++++---- wxa.submit_audit.go | 20 +++++++++---- wxa.unbind_tester.go | 20 +++++++++---- 49 files changed, 793 insertions(+), 245 deletions(-) create mode 100644 check.go delete mode 100644 set.go diff --git a/cgi-bin.account.getaccountbasicinfo.go b/cgi-bin.account.getaccountbasicinfo.go index 8ebdef7..b830485 100644 --- a/cgi-bin.account.getaccountbasicinfo.go +++ b/cgi-bin.account.getaccountbasicinfo.go @@ -47,20 +47,36 @@ type CgiBinAccountGetAccountBasicInfoResult struct { Result CgiBinAccountGetAccountBasicInfoResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newCgiBinAccountGetAccountBasicInfoResult(result CgiBinAccountGetAccountBasicInfoResponse, body []byte, http gorequest.Response, err error) *CgiBinAccountGetAccountBasicInfoResult { - return &CgiBinAccountGetAccountBasicInfoResult{Result: result, Body: body, Http: http, Err: err} +func newCgiBinAccountGetAccountBasicInfoResult(result CgiBinAccountGetAccountBasicInfoResponse, body []byte, http gorequest.Response) *CgiBinAccountGetAccountBasicInfoResult { + return &CgiBinAccountGetAccountBasicInfoResult{Result: result, Body: body, Http: http} } // CgiBinAccountGetAccountBasicInfo 获取基本信息 // 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) *CgiBinAccountGetAccountBasicInfoResult { +func (c *Client) CgiBinAccountGetAccountBasicInfo(ctx context.Context) (*CgiBinAccountGetAccountBasicInfoResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } + // 参数 + params := gorequest.NewParams() // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/account/getaccountbasicinfo?access_token=%v", c.GetAuthorizerAccessToken(ctx)), map[string]interface{}{}, http.MethodGet) + request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/account/getaccountbasicinfo?access_token=%v", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet) + if err != nil { + return nil, err + } // 定义 var response CgiBinAccountGetAccountBasicInfoResponse err = json.Unmarshal(request.ResponseBody, &response) - return newCgiBinAccountGetAccountBasicInfoResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newCgiBinAccountGetAccountBasicInfoResult(response, request.ResponseBody, request), nil } diff --git a/cgi-bin.component.api_authorizer_token.go b/cgi-bin.component.api_authorizer_token.go index 255682e..b852e17 100644 --- a/cgi-bin.component.api_authorizer_token.go +++ b/cgi-bin.component.api_authorizer_token.go @@ -18,17 +18,25 @@ type CgiBinComponentApiAuthorizerTokenResult struct { Result CgiBinComponentApiAuthorizerTokenResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 authorizerAppid string // 授权方 appid } -func newCgiBinComponentApiAuthorizerTokenResult(result CgiBinComponentApiAuthorizerTokenResponse, body []byte, http gorequest.Response, err error, authorizerAppid string) *CgiBinComponentApiAuthorizerTokenResult { - return &CgiBinComponentApiAuthorizerTokenResult{Result: result, Body: body, Http: http, Err: err, authorizerAppid: authorizerAppid} +func newCgiBinComponentApiAuthorizerTokenResult(result CgiBinComponentApiAuthorizerTokenResponse, body []byte, http gorequest.Response, authorizerAppid string) *CgiBinComponentApiAuthorizerTokenResult { + return &CgiBinComponentApiAuthorizerTokenResult{Result: result, Body: body, Http: http, authorizerAppid: authorizerAppid} } // 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 { +func (c *Client) CgiBinComponentApiAuthorizerToken(ctx context.Context, authorizerRefreshToken string) (*CgiBinComponentApiAuthorizerTokenResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } // 参数 param := gorequest.NewParams() param["component_appid"] = c.GetComponentAppId() // 第三方平台 appid @@ -37,8 +45,14 @@ func (c *Client) CgiBinComponentApiAuthorizerToken(ctx context.Context, authoriz params := gorequest.NewParamsWith(param) // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/api_authorizer_token?component_access_token=%v", c.GetComponentAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response CgiBinComponentApiAuthorizerTokenResponse err = json.Unmarshal(request.ResponseBody, &response) - return newCgiBinComponentApiAuthorizerTokenResult(response, request.ResponseBody, request, err, c.GetAuthorizerAppid()) + if err != nil { + return nil, err + } + return newCgiBinComponentApiAuthorizerTokenResult(response, request.ResponseBody, request, param["authorizer_appid"].(string)), nil } diff --git a/cgi-bin.component.api_component_token.go b/cgi-bin.component.api_component_token.go index 1d14a74..1941a4e 100644 --- a/cgi-bin.component.api_component_token.go +++ b/cgi-bin.component.api_component_token.go @@ -16,16 +16,20 @@ type CgiBinComponentApiComponentTokenResult struct { Result CgiBinComponentApiComponentTokenResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newCgiBinComponentApiComponentTokenResult(result CgiBinComponentApiComponentTokenResponse, body []byte, http gorequest.Response, err error) *CgiBinComponentApiComponentTokenResult { - return &CgiBinComponentApiComponentTokenResult{Result: result, Body: body, Http: http, Err: err} +func newCgiBinComponentApiComponentTokenResult(result CgiBinComponentApiComponentTokenResponse, body []byte, http gorequest.Response) *CgiBinComponentApiComponentTokenResult { + return &CgiBinComponentApiComponentTokenResult{Result: result, Body: body, Http: http} } // 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 { +func (c *Client) CgiBinComponentApiComponentToken(ctx context.Context) (*CgiBinComponentApiComponentTokenResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } // 参数 param := gorequest.NewParams() param["component_appid"] = c.GetComponentAppId() // 第三方平台 appid @@ -34,8 +38,14 @@ func (c *Client) CgiBinComponentApiComponentToken(ctx context.Context) *CgiBinCo params := gorequest.NewParamsWith(param) // 请求 request, err := c.request(ctx, apiUrl+"/cgi-bin/component/api_component_token", params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response CgiBinComponentApiComponentTokenResponse err = json.Unmarshal(request.ResponseBody, &response) - return newCgiBinComponentApiComponentTokenResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newCgiBinComponentApiComponentTokenResult(response, request.ResponseBody, request), nil } diff --git a/cgi-bin.component.api_create_preauthcode.go b/cgi-bin.component.api_create_preauthcode.go index 443b192..831e223 100644 --- a/cgi-bin.component.api_create_preauthcode.go +++ b/cgi-bin.component.api_create_preauthcode.go @@ -17,24 +17,35 @@ type CgiBinComponentApiCreatePreAuthCodenResult struct { Result CgiBinComponentApiCreatePreAuthCodenResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newCgiBinComponentApiCreatePreAuthCodenResult(result CgiBinComponentApiCreatePreAuthCodenResponse, body []byte, http gorequest.Response, err error) *CgiBinComponentApiCreatePreAuthCodenResult { - return &CgiBinComponentApiCreatePreAuthCodenResult{Result: result, Body: body, Http: http, Err: err} +func newCgiBinComponentApiCreatePreAuthCodenResult(result CgiBinComponentApiCreatePreAuthCodenResponse, body []byte, http gorequest.Response) *CgiBinComponentApiCreatePreAuthCodenResult { + return &CgiBinComponentApiCreatePreAuthCodenResult{Result: result, Body: body, Http: http} } // 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 { +func (c *Client) CgiBinComponentApiCreatePreAuthCoden(ctx context.Context) (*CgiBinComponentApiCreatePreAuthCodenResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } // 参数 param := gorequest.NewParams() param["component_appid"] = c.GetComponentAppId() // 第三方平台 appid params := gorequest.NewParamsWith(param) // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/api_create_preauthcode?component_access_token=%v", c.GetComponentAccessToken(ctx)), params, http.MethodPost) + + if err != nil { + return nil, err + } // 定义 var response CgiBinComponentApiCreatePreAuthCodenResponse err = json.Unmarshal(request.ResponseBody, &response) - return newCgiBinComponentApiCreatePreAuthCodenResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newCgiBinComponentApiCreatePreAuthCodenResult(response, request.ResponseBody, request), nil } diff --git a/cgi-bin.component.api_get_authorizer_info.go b/cgi-bin.component.api_get_authorizer_info.go index e6ea5f4..a973b15 100644 --- a/cgi-bin.component.api_get_authorizer_info.go +++ b/cgi-bin.component.api_get_authorizer_info.go @@ -75,16 +75,24 @@ type CgiBinComponentApiGetAuthorizerInfoResult struct { Result CgiBinComponentApiGetAuthorizerInfoResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newCgiBinComponentApiGetAuthorizerInfoResult(result CgiBinComponentApiGetAuthorizerInfoResponse, body []byte, http gorequest.Response, err error) *CgiBinComponentApiGetAuthorizerInfoResult { - return &CgiBinComponentApiGetAuthorizerInfoResult{Result: result, Body: body, Http: http, Err: err} +func newCgiBinComponentApiGetAuthorizerInfoResult(result CgiBinComponentApiGetAuthorizerInfoResponse, body []byte, http gorequest.Response) *CgiBinComponentApiGetAuthorizerInfoResult { + return &CgiBinComponentApiGetAuthorizerInfoResult{Result: result, Body: body, Http: http} } // 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 { +func (c *Client) CgiBinComponentApiGetAuthorizerInfo(ctx context.Context) (*CgiBinComponentApiGetAuthorizerInfoResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } // 参数 param := gorequest.NewParams() param["component_appid"] = c.GetComponentAppId() // 第三方平台 appid @@ -92,8 +100,14 @@ func (c *Client) CgiBinComponentApiGetAuthorizerInfo(ctx context.Context) *CgiBi params := gorequest.NewParamsWith(param) // 请求 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) + if err != nil { + return nil, err + } // 定义 var response CgiBinComponentApiGetAuthorizerInfoResponse err = json.Unmarshal(request.ResponseBody, &response) - return newCgiBinComponentApiGetAuthorizerInfoResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newCgiBinComponentApiGetAuthorizerInfoResult(response, request.ResponseBody, request), nil } diff --git a/cgi-bin.component.api_query_auth.go b/cgi-bin.component.api_query_auth.go index c199cfb..f91e2f1 100644 --- a/cgi-bin.component.api_query_auth.go +++ b/cgi-bin.component.api_query_auth.go @@ -31,16 +31,20 @@ type CgiBinComponentApiQueryAuthResult struct { Result CgiBinComponentApiQueryAuthResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newCgiBinComponentApiQueryAuthResult(result CgiBinComponentApiQueryAuthResponse, body []byte, http gorequest.Response, err error) *CgiBinComponentApiQueryAuthResult { - return &CgiBinComponentApiQueryAuthResult{Result: result, Body: body, Http: http, Err: err} +func newCgiBinComponentApiQueryAuthResult(result CgiBinComponentApiQueryAuthResponse, body []byte, http gorequest.Response) *CgiBinComponentApiQueryAuthResult { + return &CgiBinComponentApiQueryAuthResult{Result: result, Body: body, Http: http} } // 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 { +func (c *Client) CgiBinComponentApiQueryAuth(ctx context.Context, authorizationCode string) (*CgiBinComponentApiQueryAuthResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } // 参数 param := gorequest.NewParams() param["component_appid"] = c.GetComponentAppId() // 第三方平台 appid @@ -48,8 +52,14 @@ func (c *Client) CgiBinComponentApiQueryAuth(ctx context.Context, authorizationC params := gorequest.NewParamsWith(param) // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/api_query_auth?component_access_token=%v", c.GetComponentAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response CgiBinComponentApiQueryAuthResponse err = json.Unmarshal(request.ResponseBody, &response) - return newCgiBinComponentApiQueryAuthResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newCgiBinComponentApiQueryAuthResult(response, request.ResponseBody, request), nil } diff --git a/cgi-bin.component.api_start_push_ticket.go b/cgi-bin.component.api_start_push_ticket.go index 043d160..665b4a7 100644 --- a/cgi-bin.component.api_start_push_ticket.go +++ b/cgi-bin.component.api_start_push_ticket.go @@ -18,16 +18,20 @@ type CgiBinComponentApiStartPushTicketResult struct { Result CgiBinComponentApiStartPushTicketResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newCgiBinComponentApiStartPushTicketResult(result CgiBinComponentApiStartPushTicketResponse, body []byte, http gorequest.Response, err error) *CgiBinComponentApiStartPushTicketResult { - return &CgiBinComponentApiStartPushTicketResult{Result: result, Body: body, Http: http, Err: err} +func newCgiBinComponentApiStartPushTicketResult(result CgiBinComponentApiStartPushTicketResponse, body []byte, http gorequest.Response) *CgiBinComponentApiStartPushTicketResult { + return &CgiBinComponentApiStartPushTicketResult{Result: result, Body: body, Http: http} } // 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 { +func (c *Client) CgiBinComponentApiStartPushTicket(ctx context.Context) (*CgiBinComponentApiStartPushTicketResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } // 参数 param := gorequest.NewParams() param["component_appid"] = c.GetComponentAppId() // 平台型第三方平台的appid @@ -35,8 +39,14 @@ func (c *Client) CgiBinComponentApiStartPushTicket(ctx context.Context) *CgiBinC params := gorequest.NewParamsWith(param) // 请求 request, err := c.request(ctx, apiUrl+"/cgi-bin/component/api_start_push_ticket", params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response CgiBinComponentApiStartPushTicketResponse err = json.Unmarshal(request.ResponseBody, &response) - return newCgiBinComponentApiStartPushTicketResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newCgiBinComponentApiStartPushTicketResult(response, request.ResponseBody, request), nil } diff --git a/cgi-bin.component.getprivacysetting.go b/cgi-bin.component.getprivacysetting.go index 7fe6ebc..94c09aa 100644 --- a/cgi-bin.component.getprivacysetting.go +++ b/cgi-bin.component.getprivacysetting.go @@ -49,24 +49,38 @@ type CgiBinComponentGetPrivacySettingResult struct { Result CgiBinComponentGetPrivacySettingResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newCgiBinComponentGetPrivacySettingResult(result CgiBinComponentGetPrivacySettingResponse, body []byte, http gorequest.Response, err error) *CgiBinComponentGetPrivacySettingResult { - return &CgiBinComponentGetPrivacySettingResult{Result: result, Body: body, Http: http, Err: err} +func newCgiBinComponentGetPrivacySettingResult(result CgiBinComponentGetPrivacySettingResponse, body []byte, http gorequest.Response) *CgiBinComponentGetPrivacySettingResult { + return &CgiBinComponentGetPrivacySettingResult{Result: result, Body: body, Http: http} } // CgiBinComponentGetPrivacySetting 查询小程序用户隐私保护指引 // @privacyVer 1表示现网版本,即,传1则该接口返回的内容是现网版本的;2表示开发版,即,传2则该接口返回的内容是开发版本的。默认是2。 // 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) *CgiBinComponentGetPrivacySettingResult { +func (c *Client) CgiBinComponentGetPrivacySetting(ctx context.Context, privacyVer int) (*CgiBinComponentGetPrivacySettingResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() params["privacy_ver"] = privacyVer // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/getprivacysetting?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response CgiBinComponentGetPrivacySettingResponse err = json.Unmarshal(request.ResponseBody, &response) - return newCgiBinComponentGetPrivacySettingResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newCgiBinComponentGetPrivacySettingResult(response, request.ResponseBody, request), nil } diff --git a/cgi-bin.component.setprivacysetting.go b/cgi-bin.component.setprivacysetting.go index aa12d36..819eeb8 100644 --- a/cgi-bin.component.setprivacysetting.go +++ b/cgi-bin.component.setprivacysetting.go @@ -17,24 +17,38 @@ type CgiBinComponentSetPrivacySettingResult struct { Result CgiBinComponentSetPrivacySettingResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newCgiBinComponentSetPrivacySettingResult(result CgiBinComponentSetPrivacySettingResponse, body []byte, http gorequest.Response, err error) *CgiBinComponentSetPrivacySettingResult { - return &CgiBinComponentSetPrivacySettingResult{Result: result, Body: body, Http: http, Err: err} +func newCgiBinComponentSetPrivacySettingResult(result CgiBinComponentSetPrivacySettingResponse, body []byte, http gorequest.Response) *CgiBinComponentSetPrivacySettingResult { + return &CgiBinComponentSetPrivacySettingResult{Result: result, Body: body, Http: http} } // CgiBinComponentSetPrivacySetting 配置小程序用户隐私保护指引 // 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 { +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 + } // 参数 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) + if err != nil { + return nil, err + } // 定义 var response CgiBinComponentSetPrivacySettingResponse err = json.Unmarshal(request.ResponseBody, &response) - return newCgiBinComponentSetPrivacySettingResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newCgiBinComponentSetPrivacySettingResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/cgi-bin.get_api_domain_ip.go b/cgi-bin.get_api_domain_ip.go index d749660..dd63ce9 100644 --- a/cgi-bin.get_api_domain_ip.go +++ b/cgi-bin.get_api_domain_ip.go @@ -16,20 +16,27 @@ type GetCallBackIpResult struct { Result GetCallBackIpResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func NewGetCallBackIpResult(result GetCallBackIpResponse, body []byte, http gorequest.Response, err error) *GetCallBackIpResult { - return &GetCallBackIpResult{Result: result, Body: body, Http: http, Err: err} +func NewGetCallBackIpResult(result GetCallBackIpResponse, body []byte, http gorequest.Response) *GetCallBackIpResult { + return &GetCallBackIpResult{Result: result, Body: body, Http: http} } // CgiBinGetApiDomainIp 获取微信服务器IP地址 // https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_the_WeChat_server_IP_address.html -func (c *Client) CgiBinGetApiDomainIp(ctx context.Context, componentAccessToken string) *GetCallBackIpResult { +func (c *Client) CgiBinGetApiDomainIp(ctx context.Context, componentAccessToken string) (*GetCallBackIpResult, error) { + // 参数 + params := gorequest.NewParams() // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/get_api_domain_ip?access_token=%s", componentAccessToken), map[string]interface{}{}, http.MethodGet) + request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/get_api_domain_ip?access_token=%s", componentAccessToken), params, http.MethodGet) + if err != nil { + return nil, err + } // 定义 var response GetCallBackIpResponse err = json.Unmarshal(request.ResponseBody, &response) - return NewGetCallBackIpResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return NewGetCallBackIpResult(response, request.ResponseBody, request), nil } diff --git a/cgi-bin.shorturl.go b/cgi-bin.shorturl.go index 05a8194..87e56a0 100644 --- a/cgi-bin.shorturl.go +++ b/cgi-bin.shorturl.go @@ -18,16 +18,24 @@ type CgiBinShortUrlResult struct { Result CgiBinShortUrlResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newCgiBinShortUrlResult(result CgiBinShortUrlResponse, body []byte, http gorequest.Response, err error) *CgiBinShortUrlResult { - return &CgiBinShortUrlResult{Result: result, Body: body, Http: http, Err: err} +func newCgiBinShortUrlResult(result CgiBinShortUrlResponse, body []byte, http gorequest.Response) *CgiBinShortUrlResult { + return &CgiBinShortUrlResult{Result: result, Body: body, Http: http} } // CgiBinShortUrl 将二维码长链接转成短链接 // 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) *CgiBinShortUrlResult { +func (c *Client) CgiBinShortUrl(ctx context.Context, longUrl string) (*CgiBinShortUrlResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() params["action"] = "long2short" // 此处填long2short,代表长链接转短链接 @@ -37,5 +45,8 @@ func (c *Client) CgiBinShortUrl(ctx context.Context, longUrl string) *CgiBinShor // 定义 var response CgiBinShortUrlResponse err = json.Unmarshal(request.ResponseBody, &response) - return newCgiBinShortUrlResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newCgiBinShortUrlResult(response, request.ResponseBody, request), nil } diff --git a/cgi-bin.wxopen.qrcodejumpadd.go b/cgi-bin.wxopen.qrcodejumpadd.go index ce51156..4cd7844 100644 --- a/cgi-bin.wxopen.qrcodejumpadd.go +++ b/cgi-bin.wxopen.qrcodejumpadd.go @@ -17,24 +17,38 @@ type CgiBinWxOpenQrCodeJumpAddResult struct { Result CgiBinWxOpenQrCodeJumpAddResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newCgiBinWxOpenQrCodeJumpAddResult(result CgiBinWxOpenQrCodeJumpAddResponse, body []byte, http gorequest.Response, err error) *CgiBinWxOpenQrCodeJumpAddResult { - return &CgiBinWxOpenQrCodeJumpAddResult{Result: result, Body: body, Http: http, Err: err} +func newCgiBinWxOpenQrCodeJumpAddResult(result CgiBinWxOpenQrCodeJumpAddResponse, body []byte, http gorequest.Response) *CgiBinWxOpenQrCodeJumpAddResult { + return &CgiBinWxOpenQrCodeJumpAddResult{Result: result, Body: body, Http: http} } // CgiBinWxOpenQrCodeJumpAdd 增加或修改二维码规则 // 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 { +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 + } // 参数 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) + if err != nil { + return nil, err + } // 定义 var response CgiBinWxOpenQrCodeJumpAddResponse err = json.Unmarshal(request.ResponseBody, &response) - return newCgiBinWxOpenQrCodeJumpAddResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newCgiBinWxOpenQrCodeJumpAddResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/cgi-bin.wxopen.qrcodejumpdelete.go b/cgi-bin.wxopen.qrcodejumpdelete.go index c87ea5d..a918bab 100644 --- a/cgi-bin.wxopen.qrcodejumpdelete.go +++ b/cgi-bin.wxopen.qrcodejumpdelete.go @@ -17,23 +17,37 @@ type CgiBinWxOpenQrCodeJumpDeleteResult struct { Result CgiBinWxOpenQrCodeJumpDeleteResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newCgiBinWxOpenQrCodeJumpDeleteResult(result CgiBinWxOpenQrCodeJumpDeleteResponse, body []byte, http gorequest.Response, err error) *CgiBinWxOpenQrCodeJumpDeleteResult { - return &CgiBinWxOpenQrCodeJumpDeleteResult{Result: result, Body: body, Http: http, Err: err} +func newCgiBinWxOpenQrCodeJumpDeleteResult(result CgiBinWxOpenQrCodeJumpDeleteResponse, body []byte, http gorequest.Response) *CgiBinWxOpenQrCodeJumpDeleteResult { + return &CgiBinWxOpenQrCodeJumpDeleteResult{Result: result, Body: body, Http: http} } // CgiBinWxOpenQrCodeJumpDelete 删除已设置的二维码规则 // 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) *CgiBinWxOpenQrCodeJumpDeleteResult { +func (c *Client) CgiBinWxOpenQrCodeJumpDelete(ctx context.Context, prefix string) (*CgiBinWxOpenQrCodeJumpDeleteResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() params["prefix"] = prefix // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/wxopen/qrcodejumpdelete?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response CgiBinWxOpenQrCodeJumpDeleteResponse err = json.Unmarshal(request.ResponseBody, &response) - return newCgiBinWxOpenQrCodeJumpDeleteResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newCgiBinWxOpenQrCodeJumpDeleteResult(response, request.ResponseBody, request), nil } diff --git a/cgi-bin.wxopen.qrcodejumpdownloa.go b/cgi-bin.wxopen.qrcodejumpdownloa.go index 7e1d9eb..8a47b93 100644 --- a/cgi-bin.wxopen.qrcodejumpdownloa.go +++ b/cgi-bin.wxopen.qrcodejumpdownloa.go @@ -19,22 +19,36 @@ type CgiBinWxOpenQrCodeJumpDownloadResult struct { Result CgiBinWxOpenQrCodeJumpDownloadResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newCgiBinWxOpenQrCodeJumpDownloadResult(result CgiBinWxOpenQrCodeJumpDownloadResponse, body []byte, http gorequest.Response, err error) *CgiBinWxOpenQrCodeJumpDownloadResult { - return &CgiBinWxOpenQrCodeJumpDownloadResult{Result: result, Body: body, Http: http, Err: err} +func newCgiBinWxOpenQrCodeJumpDownloadResult(result CgiBinWxOpenQrCodeJumpDownloadResponse, body []byte, http gorequest.Response) *CgiBinWxOpenQrCodeJumpDownloadResult { + return &CgiBinWxOpenQrCodeJumpDownloadResult{Result: result, Body: body, Http: http} } // CgiBinWxOpenQrCodeJumpDownload 获取校验文件名称及内容 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/qrcode/qrcodejumpdownload.html -func (c *Client) CgiBinWxOpenQrCodeJumpDownload(ctx context.Context) *CgiBinWxOpenQrCodeJumpDownloadResult { +func (c *Client) CgiBinWxOpenQrCodeJumpDownload(ctx context.Context) (*CgiBinWxOpenQrCodeJumpDownloadResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/wxopen/qrcodejumpdownload?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response CgiBinWxOpenQrCodeJumpDownloadResponse err = json.Unmarshal(request.ResponseBody, &response) - return newCgiBinWxOpenQrCodeJumpDownloadResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newCgiBinWxOpenQrCodeJumpDownloadResult(response, request.ResponseBody, request), nil } diff --git a/cgi-bin.wxopen.qrcodejumpget.go b/cgi-bin.wxopen.qrcodejumpget.go index 36e0604..1c3ca10 100644 --- a/cgi-bin.wxopen.qrcodejumpget.go +++ b/cgi-bin.wxopen.qrcodejumpget.go @@ -28,22 +28,36 @@ type CgiBinWxOpenQrCodeJumpGetResult struct { Result CgiBinWxOpenQrCodeJumpGetResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newCgiBinWxOpenQrCodeJumpGetResult(result CgiBinWxOpenQrCodeJumpGetResponse, body []byte, http gorequest.Response, err error) *CgiBinWxOpenQrCodeJumpGetResult { - return &CgiBinWxOpenQrCodeJumpGetResult{Result: result, Body: body, Http: http, Err: err} +func newCgiBinWxOpenQrCodeJumpGetResult(result CgiBinWxOpenQrCodeJumpGetResponse, body []byte, http gorequest.Response) *CgiBinWxOpenQrCodeJumpGetResult { + return &CgiBinWxOpenQrCodeJumpGetResult{Result: result, Body: body, Http: http} } // CgiBinWxOpenQrCodeJumpGet 获取已设置的二维码规则 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/qrcode/qrcodejumpadd.html -func (c *Client) CgiBinWxOpenQrCodeJumpGet(ctx context.Context) *CgiBinWxOpenQrCodeJumpGetResult { +func (c *Client) CgiBinWxOpenQrCodeJumpGet(ctx context.Context) (*CgiBinWxOpenQrCodeJumpGetResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/wxopen/qrcodejumpget?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response CgiBinWxOpenQrCodeJumpGetResponse err = json.Unmarshal(request.ResponseBody, &response) - return newCgiBinWxOpenQrCodeJumpGetResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newCgiBinWxOpenQrCodeJumpGetResult(response, request.ResponseBody, request), nil } diff --git a/cgi-bin.wxopen.qrcodejumppublish.go b/cgi-bin.wxopen.qrcodejumppublish.go index 992cddb..0b65f5b 100644 --- a/cgi-bin.wxopen.qrcodejumppublish.go +++ b/cgi-bin.wxopen.qrcodejumppublish.go @@ -17,25 +17,39 @@ type CgiBinWxOpenQrCodeJumpPublishResult struct { Result CgiBinWxOpenQrCodeJumpPublishResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newCgiBinWxOpenQrCodeJumpPublishResult(result CgiBinWxOpenQrCodeJumpPublishResponse, body []byte, http gorequest.Response, err error) *CgiBinWxOpenQrCodeJumpPublishResult { - return &CgiBinWxOpenQrCodeJumpPublishResult{Result: result, Body: body, Http: http, Err: err} +func newCgiBinWxOpenQrCodeJumpPublishResult(result CgiBinWxOpenQrCodeJumpPublishResponse, body []byte, http gorequest.Response) *CgiBinWxOpenQrCodeJumpPublishResult { + return &CgiBinWxOpenQrCodeJumpPublishResult{Result: result, Body: body, Http: http} } // 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) *CgiBinWxOpenQrCodeJumpPublishResult { +func (c *Client) CgiBinWxOpenQrCodeJumpPublish(ctx context.Context, prefix string) (*CgiBinWxOpenQrCodeJumpPublishResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() params["prefix"] = prefix // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/wxopen/qrcodejumppublish?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response CgiBinWxOpenQrCodeJumpPublishResponse err = json.Unmarshal(request.ResponseBody, &response) - return newCgiBinWxOpenQrCodeJumpPublishResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newCgiBinWxOpenQrCodeJumpPublishResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/check.go b/check.go new file mode 100644 index 0000000..92cb4aa --- /dev/null +++ b/check.go @@ -0,0 +1,21 @@ +package wechatopen + +func (c *Client) checkComponentIsConfig() error { + componentAppId := c.GetComponentAppId() + if componentAppId == "" { + return componentAppIdNoConfig + } + componentAppSecret := c.GetComponentAppSecret() + if componentAppSecret == "" { + return componentAppSecretNoConfig + } + return nil +} + +func (c *Client) checkAuthorizerIsConfig() error { + authorizerAppid := c.GetAuthorizerAppid() + if authorizerAppid == "" { + return authorizerAppidNoConfig + } + return nil +} diff --git a/client.go b/client.go index 20fec72..8970f3e 100644 --- a/client.go +++ b/client.go @@ -107,7 +107,7 @@ func NewClient(config *ClientConfig) (*Client, error) { 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 nil, redisCachePrefixNoConfig } return c, nil diff --git a/const.go b/const.go index d45b4dc..acc9eb3 100644 --- a/const.go +++ b/const.go @@ -8,4 +8,4 @@ const ( logTable = "wechatopen" ) -const Version = "1.0.18" +const Version = "1.0.19" diff --git a/error.go b/error.go index 9211315..04c267a 100644 --- a/error.go +++ b/error.go @@ -2,4 +2,15 @@ package wechatopen import "errors" -var RedisCachePrefixNoConfig = errors.New("请配置RedisCachePrefix") +var ( + redisCachePrefixNoConfig = errors.New("请配置 RedisCachePrefix") +) + +var ( + componentAppIdNoConfig = errors.New("请配置 ComponentAppId") + componentAppSecretNoConfig = errors.New("请配置 ComponentAppSecret") +) + +var ( + authorizerAppidNoConfig = errors.New("请配置 AuthorizerAppid 或 ConfigAuthorizer") +) diff --git a/get.go b/get.go index b781a29..a12ef6c 100644 --- a/get.go +++ b/get.go @@ -1,6 +1,6 @@ package wechatopen -//func (c *Client) GetComponentAppId() string { +//func (c *Client) GetComponentAccessToken() string { // return c.config.componentAccessToken //} diff --git a/redis.go b/redis.go index a2b50a5..de9eb2f 100644 --- a/redis.go +++ b/redis.go @@ -52,16 +52,20 @@ func (c *Client) GetComponentAccessToken(ctx context.Context) string { } // MonitorComponentAccessToken 监控令牌 -func (c *Client) MonitorComponentAccessToken(ctx context.Context) string { +func (c *Client) MonitorComponentAccessToken(ctx context.Context) (string, error) { // 查询 componentAccessToken := c.GetComponentAccessToken(ctx) // 判断 - result := c.CgiBinGetApiDomainIp(ctx, componentAccessToken) + result, err := c.CgiBinGetApiDomainIp(ctx, componentAccessToken) + if err != nil { + return "", err + } if len(result.Result.IpList) > 0 { - return componentAccessToken + return componentAccessToken, err } // 重新获取 - return c.SetComponentAccessToken(ctx, c.CgiBinComponentApiComponentToken(ctx).Result.ComponentAccessToken) + resp, err := c.CgiBinComponentApiComponentToken(ctx) + return c.SetComponentAccessToken(ctx, resp.Result.ComponentAccessToken), err } // 授权方令牌 @@ -88,15 +92,16 @@ func (c *Client) GetAuthorizerAccessToken(ctx context.Context) string { } // MonitorAuthorizerAccessToken 监控授权方令牌 -func (c *Client) MonitorAuthorizerAccessToken(ctx context.Context, authorizerRefreshToken string) string { +func (c *Client) MonitorAuthorizerAccessToken(ctx context.Context, authorizerRefreshToken string) (string, error) { // 查询 authorizerAccessToken := c.GetAuthorizerAccessToken(ctx) // 判断 if authorizerAccessToken != "" { - return authorizerAccessToken + return authorizerAccessToken, nil } // 重新获取 - return c.SetAuthorizerAccessToken(ctx, c.CgiBinComponentApiAuthorizerToken(ctx, authorizerRefreshToken).Result.AuthorizerAccessToken) + resp, err := c.CgiBinComponentApiAuthorizerToken(ctx, authorizerRefreshToken) + return c.SetAuthorizerAccessToken(ctx, resp.Result.AuthorizerAccessToken), err } // 预授权码 @@ -128,13 +133,14 @@ func (c *Client) DelPreAuthCode(ctx context.Context) error { } // MonitorPreAuthCode 监控预授权码 -func (c *Client) MonitorPreAuthCode(ctx context.Context) string { +func (c *Client) MonitorPreAuthCode(ctx context.Context) (string, error) { // 查询 preAuthCode := c.GetPreAuthCode(ctx) // 判断 if preAuthCode != "" { - return preAuthCode + return preAuthCode, nil } // 重新获取 - return c.SetPreAuthCode(ctx, c.CgiBinComponentApiCreatePreAuthCoden(ctx).Result.PreAuthCode) + resp, err := c.CgiBinComponentApiCreatePreAuthCoden(ctx) + return c.SetPreAuthCode(ctx, resp.Result.PreAuthCode), err } diff --git a/service_http.authorizer_appid.go b/service_http.authorizer_appid.go index 3560227..1f5b86b 100644 --- a/service_http.authorizer_appid.go +++ b/service_http.authorizer_appid.go @@ -25,7 +25,10 @@ func (c *Client) ServeHttpAuthorizerAppid(ctx context.Context, r *http.Request) return resp, agentUserId, errors.New("找不到过期时间参数") } - info := c.CgiBinComponentApiQueryAuth(ctx, authCode) + info, err := c.CgiBinComponentApiQueryAuth(ctx, authCode) + if err != nil { + return resp, agentUserId, err + } if info.Result.AuthorizationInfo.AuthorizerAppid == "" { return resp, agentUserId, errors.New("获取失败") } diff --git a/set.go b/set.go deleted file mode 100644 index b000bb6..0000000 --- a/set.go +++ /dev/null @@ -1,7 +0,0 @@ -package wechatopen - -// SetAuthorizerAppid 设置代理商小程序 -func (c *Client) SetAuthorizerAppid(authorizerAppid string) { - c.config.authorizerAppid = authorizerAppid - return -} diff --git a/sns.component.jscode2session.go b/sns.component.jscode2session.go index 833b70d..6ce86fb 100644 --- a/sns.component.jscode2session.go +++ b/sns.component.jscode2session.go @@ -22,16 +22,24 @@ type SnsComponentJsCode2sessionResult struct { Result SnsComponentJsCode2sessionResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newSnsComponentJsCode2sessionResult(result SnsComponentJsCode2sessionResponse, body []byte, http gorequest.Response, err error) *SnsComponentJsCode2sessionResult { - return &SnsComponentJsCode2sessionResult{Result: result, Body: body, Http: http, Err: err} +func newSnsComponentJsCode2sessionResult(result SnsComponentJsCode2sessionResponse, body []byte, http gorequest.Response) *SnsComponentJsCode2sessionResult { + return &SnsComponentJsCode2sessionResult{Result: result, Body: body, Http: http} } // SnsComponentJsCode2session 小程序登录 // 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) *SnsComponentJsCode2sessionResult { +func (c *Client) SnsComponentJsCode2session(ctx context.Context, jsCode string) (*SnsComponentJsCode2sessionResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() params["appid"] = c.GetAuthorizerAppid() // 小程序的 appId @@ -41,10 +49,16 @@ func (c *Client) SnsComponentJsCode2session(ctx context.Context, jsCode string) 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 + } // 定义 var response SnsComponentJsCode2sessionResponse err = json.Unmarshal(request.ResponseBody, &response) - return newSnsComponentJsCode2sessionResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newSnsComponentJsCode2sessionResult(response, request.ResponseBody, request), nil } type UserInfo struct { @@ -73,7 +87,7 @@ type UserInfoResult struct { } func newUserInfoResult(result UserInfoResponse, err error) *UserInfoResult { - return &UserInfoResult{Result: result, Err: err} + return &UserInfoResult{Result: result} } // UserInfo 解密用户信息 diff --git a/tcb.wxpaylist.go b/tcb.wxpaylist.go index d35f4a7..3778e06 100644 --- a/tcb.wxpaylist.go +++ b/tcb.wxpaylist.go @@ -24,24 +24,35 @@ type TckWxPayListResult struct { Result TckWxPayListResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newTckWxPayListResult(result TckWxPayListResponse, body []byte, http gorequest.Response, err error) *TckWxPayListResult { - return &TckWxPayListResult{Result: result, Body: body, Http: http, Err: err} +func newTckWxPayListResult(result TckWxPayListResponse, body []byte, http gorequest.Response) *TckWxPayListResult { + return &TckWxPayListResult{Result: result, Body: body, Http: http} } // TckWxPayList 获取授权绑定的商户号列表 // https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/cloudbase-common/wechatpay/getWechatPayList.html -func (c *Client) TckWxPayList(ctx context.Context) *TckWxPayListResult { +func (c *Client) TckWxPayList(ctx context.Context) (*TckWxPayListResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + // 参数 // 参数 params := gorequest.NewParams() // 请求 request, err := c.request(ctx, apiUrl+"/tcb/wxpaylist?access_token="+c.GetComponentAccessToken(ctx), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response TckWxPayListResponse err = json.Unmarshal(request.ResponseBody, &response) - return newTckWxPayListResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newTckWxPayListResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.addtotemplate.go b/wxa.addtotemplate.go index faf0999..16adf61 100644 --- a/wxa.addtotemplate.go +++ b/wxa.addtotemplate.go @@ -17,26 +17,40 @@ type WxaAddToTemplateResult struct { Result WxaAddToTemplateResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaAddToTemplateResult(result WxaAddToTemplateResponse, body []byte, http gorequest.Response, err error) *WxaAddToTemplateResult { - return &WxaAddToTemplateResult{Result: result, Body: body, Http: http, Err: err} +func newWxaAddToTemplateResult(result WxaAddToTemplateResponse, body []byte, http gorequest.Response) *WxaAddToTemplateResult { + return &WxaAddToTemplateResult{Result: result, Body: body, Http: http} } // 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) *WxaAddToTemplateResult { +func (c *Client) WxaAddToTemplate(ctx context.Context, draftId string, templateType int) (*WxaAddToTemplateResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() params["draft_id"] = draftId params["template_type"] = templateType // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/addtotemplate?access_token=%s", c.GetComponentAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response WxaAddToTemplateResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaAddToTemplateResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaAddToTemplateResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.bind_tester.go b/wxa.bind_tester.go index 12071ba..82d0d67 100644 --- a/wxa.bind_tester.go +++ b/wxa.bind_tester.go @@ -18,25 +18,39 @@ type WxaBindTesterResult struct { Result WxaBindTesterResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaBindTesterResult(result WxaBindTesterResponse, body []byte, http gorequest.Response, err error) *WxaBindTesterResult { - return &WxaBindTesterResult{Result: result, Body: body, Http: http, Err: err} +func newWxaBindTesterResult(result WxaBindTesterResponse, body []byte, http gorequest.Response) *WxaBindTesterResult { + return &WxaBindTesterResult{Result: result, Body: body, Http: http} } // WxaBindTester 绑定微信用户为体验者 // 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) *WxaBindTesterResult { +func (c *Client) WxaBindTester(ctx context.Context, wechatid string) (*WxaBindTesterResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() params["wechatid"] = wechatid // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/bind_tester?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response WxaBindTesterResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaBindTesterResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaBindTesterResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.business.getuserphonenumber.go b/wxa.business.getuserphonenumber.go index b468fdc..fad27e5 100644 --- a/wxa.business.getuserphonenumber.go +++ b/wxa.business.getuserphonenumber.go @@ -26,25 +26,39 @@ type WxaBusinessGetUserPhoneNumberResult struct { Result WxaBusinessGetUserPhoneNumberResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaBusinessGetUserPhoneNumberResult(result WxaBusinessGetUserPhoneNumberResponse, body []byte, http gorequest.Response, err error) *WxaBusinessGetUserPhoneNumberResult { - return &WxaBusinessGetUserPhoneNumberResult{Result: result, Body: body, Http: http, Err: err} +func newWxaBusinessGetUserPhoneNumberResult(result WxaBusinessGetUserPhoneNumberResponse, body []byte, http gorequest.Response) *WxaBusinessGetUserPhoneNumberResult { + return &WxaBusinessGetUserPhoneNumberResult{Result: result, Body: body, Http: http} } // WxaBusinessGetUserPhoneNumber code换取用户手机号。 每个 code 只能使用一次,code的有效期为5min // https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/phonenumber/phonenumber.getPhoneNumber.html -func (c *Client) WxaBusinessGetUserPhoneNumber(ctx context.Context, code string) *WxaBusinessGetUserPhoneNumberResult { +func (c *Client) WxaBusinessGetUserPhoneNumber(ctx context.Context, code string) (*WxaBusinessGetUserPhoneNumberResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() params.Set("code", code) // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/business/getuserphonenumber?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response WxaBusinessGetUserPhoneNumberResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaBusinessGetUserPhoneNumberResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaBusinessGetUserPhoneNumberResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.commit.go b/wxa.commit.go index 0fbf031..d8a60c0 100644 --- a/wxa.commit.go +++ b/wxa.commit.go @@ -17,24 +17,38 @@ type WxaCommitResult struct { Result WxaCommitResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaCommitResult(result WxaCommitResponse, body []byte, http gorequest.Response, err error) *WxaCommitResult { - return &WxaCommitResult{Result: result, Body: body, Http: http, Err: err} +func newWxaCommitResult(result WxaCommitResponse, body []byte, http gorequest.Response) *WxaCommitResult { + return &WxaCommitResult{Result: result, Body: body, Http: http} } // WxaCommit 上传小程序代码并生成体验版 // 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 { +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 + } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/commit?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response WxaCommitResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaCommitResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaCommitResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.deletetemplate.go b/wxa.deletetemplate.go index b5f7716..719b41b 100644 --- a/wxa.deletetemplate.go +++ b/wxa.deletetemplate.go @@ -17,25 +17,35 @@ type WxaDeleteTemplateResult struct { Result WxaDeleteTemplateResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaDeleteTemplateResult(result WxaDeleteTemplateResponse, body []byte, http gorequest.Response, err error) *WxaDeleteTemplateResult { - return &WxaDeleteTemplateResult{Result: result, Body: body, Http: http, Err: err} +func newWxaDeleteTemplateResult(result WxaDeleteTemplateResponse, body []byte, http gorequest.Response) *WxaDeleteTemplateResult { + return &WxaDeleteTemplateResult{Result: result, Body: body, Http: http} } // WxaDeleteTemplate 删除指定代码模板 // 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) *WxaDeleteTemplateResult { +func (c *Client) WxaDeleteTemplate(ctx context.Context, templateId string) (*WxaDeleteTemplateResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() params.Set("template_id", templateId) // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/deletetemplate?access_token=%s", c.GetComponentAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response WxaDeleteTemplateResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaDeleteTemplateResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaDeleteTemplateResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.get_auditstatus.go b/wxa.get_auditstatus.go index 345dfba..9c62b76 100644 --- a/wxa.get_auditstatus.go +++ b/wxa.get_auditstatus.go @@ -21,25 +21,39 @@ type WxaGetAuditStatusResult struct { Result WxaGetAuditStatusResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaGetAuditStatusResult(result WxaGetAuditStatusResponse, body []byte, http gorequest.Response, err error) *WxaGetAuditStatusResult { - return &WxaGetAuditStatusResult{Result: result, Body: body, Http: http, Err: err} +func newWxaGetAuditStatusResult(result WxaGetAuditStatusResponse, body []byte, http gorequest.Response) *WxaGetAuditStatusResult { + return &WxaGetAuditStatusResult{Result: result, Body: body, Http: http} } // WxaGetAuditStatus 查询指定发布审核单的审核状态 // 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) *WxaGetAuditStatusResult { +func (c *Client) WxaGetAuditStatus(ctx context.Context, auditid int64) (*WxaGetAuditStatusResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() params.Set("auditid", auditid) // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_auditstatus?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response WxaGetAuditStatusResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaGetAuditStatusResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaGetAuditStatusResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.get_category.go b/wxa.get_category.go index 85b3a8e..b341fb8 100644 --- a/wxa.get_category.go +++ b/wxa.get_category.go @@ -25,20 +25,36 @@ type WxaGetCategoryResult struct { Result WxaGetCategoryResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaGetCategoryResult(result WxaGetCategoryResponse, body []byte, http gorequest.Response, err error) *WxaGetCategoryResult { - return &WxaGetCategoryResult{Result: result, Body: body, Http: http, Err: err} +func newWxaGetCategoryResult(result WxaGetCategoryResponse, body []byte, http gorequest.Response) *WxaGetCategoryResult { + return &WxaGetCategoryResult{Result: result, Body: body, Http: http} } // WxaGetCategory 获取审核时可填写的类目信息 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/category/get_category.html -func (c *Client) WxaGetCategory(ctx context.Context) *WxaGetCategoryResult { +func (c *Client) WxaGetCategory(ctx context.Context) (*WxaGetCategoryResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } + // 参数 + params := gorequest.NewParams() // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_category?access_token=%s", c.GetAuthorizerAccessToken(ctx)), map[string]interface{}{}, http.MethodGet) + request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_category?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet) + if err != nil { + return nil, err + } // 定义 var response WxaGetCategoryResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaGetCategoryResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaGetCategoryResult(response, request.ResponseBody, request), nil } diff --git a/wxa.get_effective_domain.go b/wxa.get_effective_domain.go index dd7cd76..ab0471f 100644 --- a/wxa.get_effective_domain.go +++ b/wxa.get_effective_domain.go @@ -41,22 +41,36 @@ type WxaGetEffectiveDomainResult struct { Result WxaGetEffectiveDomainResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaGetEffectiveDomainResult(result WxaGetEffectiveDomainResponse, body []byte, http gorequest.Response, err error) *WxaGetEffectiveDomainResult { - return &WxaGetEffectiveDomainResult{Result: result, Body: body, Http: http, Err: err} +func newWxaGetEffectiveDomainResult(result WxaGetEffectiveDomainResponse, body []byte, http gorequest.Response) *WxaGetEffectiveDomainResult { + return &WxaGetEffectiveDomainResult{Result: result, Body: body, Http: http} } // WxaGetEffectiveDomain 获取发布后生效服务器域名列表 // 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 { +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 + } // 参数 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) + if err != nil { + return nil, err + } // 定义 var response WxaGetEffectiveDomainResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaGetEffectiveDomainResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaGetEffectiveDomainResult(response, request.ResponseBody, request), nil } diff --git a/wxa.get_latest_auditstatus.go b/wxa.get_latest_auditstatus.go index 756e636..f7f97ab 100644 --- a/wxa.get_latest_auditstatus.go +++ b/wxa.get_latest_auditstatus.go @@ -21,22 +21,38 @@ type WxaGetLatestAuditStatusResult struct { Result WxaGetLatestAuditStatusResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaGetLatestAuditStatusResult(result WxaGetLatestAuditStatusResponse, body []byte, http gorequest.Response, err error) *WxaGetLatestAuditStatusResult { - return &WxaGetLatestAuditStatusResult{Result: result, Body: body, Http: http, Err: err} +func newWxaGetLatestAuditStatusResult(result WxaGetLatestAuditStatusResponse, body []byte, http gorequest.Response) *WxaGetLatestAuditStatusResult { + return &WxaGetLatestAuditStatusResult{Result: result, Body: body, Http: http} } // WxaGetLatestAuditStatus 查询最新一次提交的审核状态 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/get_auditstatus.html -func (c *Client) WxaGetLatestAuditStatus(ctx context.Context) *WxaGetLatestAuditStatusResult { +func (c *Client) WxaGetLatestAuditStatus(ctx context.Context) (*WxaGetLatestAuditStatusResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } + // 参数 + params := gorequest.NewParams() // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_latest_auditstatus?access_token=%s", c.GetAuthorizerAccessToken(ctx)), map[string]interface{}{}, http.MethodPost) + request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_latest_auditstatus?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response WxaGetLatestAuditStatusResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaGetLatestAuditStatusResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaGetLatestAuditStatusResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.get_page.go b/wxa.get_page.go index 58a2c74..06c8d10 100644 --- a/wxa.get_page.go +++ b/wxa.get_page.go @@ -18,20 +18,36 @@ type WxaGetPageResult struct { Result WxaGetPageResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaGetPageResult(result WxaGetPageResponse, body []byte, http gorequest.Response, err error) *WxaGetPageResult { - return &WxaGetPageResult{Result: result, Body: body, Http: http, Err: err} +func newWxaGetPageResult(result WxaGetPageResponse, body []byte, http gorequest.Response) *WxaGetPageResult { + return &WxaGetPageResult{Result: result, Body: body, Http: http} } // WxaGetPage 获取已上传的代码的页面列表 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/get_page.html -func (c *Client) WxaGetPage(ctx context.Context) *WxaGetPageResult { +func (c *Client) WxaGetPage(ctx context.Context) (*WxaGetPageResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } + // 参数 + params := gorequest.NewParams() // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_page?access_token=%s", c.GetAuthorizerAccessToken(ctx)), map[string]interface{}{}, http.MethodGet) + request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_page?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet) + if err != nil { + return nil, err + } // 定义 var response WxaGetPageResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaGetPageResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaGetPageResult(response, request.ResponseBody, request), nil } diff --git a/wxa.get_qrcode.go b/wxa.get_qrcode.go index 613465c..e6fb3e0 100644 --- a/wxa.get_qrcode.go +++ b/wxa.get_qrcode.go @@ -17,16 +17,24 @@ type WxaGetQrcodeResult struct { Result WxaGetQrcodeResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaGetQrcodeResult(result WxaGetQrcodeResponse, body []byte, http gorequest.Response, err error) *WxaGetQrcodeResult { - return &WxaGetQrcodeResult{Result: result, Body: body, Http: http, Err: err} +func newWxaGetQrcodeResult(result WxaGetQrcodeResponse, body []byte, http gorequest.Response) *WxaGetQrcodeResult { + return &WxaGetQrcodeResult{Result: result, Body: body, Http: http} } // WxaGetQrcode 获取体验版二维码 // 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) *WxaGetQrcodeResult { +func (c *Client) WxaGetQrcode(ctx context.Context, path string) (*WxaGetQrcodeResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() if path != "" { @@ -34,8 +42,14 @@ func (c *Client) WxaGetQrcode(ctx context.Context, path string) *WxaGetQrcodeRes } // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_qrcode?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet) + if err != nil { + return nil, err + } // 定义 var response WxaGetQrcodeResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaGetQrcodeResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaGetQrcodeResult(response, request.ResponseBody, request), nil } diff --git a/wxa.gettemplatedraftlist.go b/wxa.gettemplatedraftlist.go index e8947aa..fdcf93e 100644 --- a/wxa.gettemplatedraftlist.go +++ b/wxa.gettemplatedraftlist.go @@ -27,22 +27,34 @@ type WxaGetTemplateDraftListResult struct { Result WxaGetTemplateDraftListResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaGetTemplateDraftListResult(result WxaGetTemplateDraftListResponse, body []byte, http gorequest.Response, err error) *WxaGetTemplateDraftListResult { - return &WxaGetTemplateDraftListResult{Result: result, Body: body, Http: http, Err: err} +func newWxaGetTemplateDraftListResult(result WxaGetTemplateDraftListResponse, body []byte, http gorequest.Response) *WxaGetTemplateDraftListResult { + return &WxaGetTemplateDraftListResult{Result: result, Body: body, Http: http} } // 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) *WxaGetTemplateDraftListResult { +func (c *Client) WxaGetTemplateDraftList(ctx context.Context) (*WxaGetTemplateDraftListResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + // 参数 + params := gorequest.NewParams() // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/gettemplatedraftlist?access_token=%s", c.GetComponentAccessToken(ctx)), map[string]interface{}{}, http.MethodGet) + request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/gettemplatedraftlist?access_token=%s", c.GetComponentAccessToken(ctx)), params, http.MethodGet) + if err != nil { + return nil, err + } // 定义 var response WxaGetTemplateDraftListResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaGetTemplateDraftListResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaGetTemplateDraftListResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.gettemplatelist.go b/wxa.gettemplatelist.go index 90fa6fb..f6333c3 100644 --- a/wxa.gettemplatelist.go +++ b/wxa.gettemplatelist.go @@ -28,22 +28,34 @@ type WxaGetTemplateListResult struct { Result WxaGetTemplateListResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaGetTemplateListResult(result WxaGetTemplateListResponse, body []byte, http gorequest.Response, err error) *WxaGetTemplateListResult { - return &WxaGetTemplateListResult{Result: result, Body: body, Http: http, Err: err} +func newWxaGetTemplateListResult(result WxaGetTemplateListResponse, body []byte, http gorequest.Response) *WxaGetTemplateListResult { + return &WxaGetTemplateListResult{Result: result, Body: body, Http: http} } // 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) *WxaGetTemplateListResult { +func (c *Client) WxaGetTemplateList(ctx context.Context) (*WxaGetTemplateListResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + // 参数 + params := gorequest.NewParams() // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/gettemplatelist?access_token=%s", c.GetComponentAccessToken(ctx)), map[string]interface{}{}, http.MethodGet) + request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/gettemplatelist?access_token=%s", c.GetComponentAccessToken(ctx)), params, http.MethodGet) + if err != nil { + return nil, err + } // 定义 var response WxaGetTemplateListResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaGetTemplateListResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaGetTemplateListResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.getversioninfo.go b/wxa.getversioninfo.go index 79afcbf..a0710be 100644 --- a/wxa.getversioninfo.go +++ b/wxa.getversioninfo.go @@ -3,7 +3,6 @@ package wechatopen import ( "context" "encoding/json" - "errors" "fmt" "go.dtapp.net/gorequest" "net/http" @@ -28,24 +27,36 @@ type WxaGetVersionInfoResult struct { Result WxaGetVersionInfoResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaGetVersionInfoResult(result WxaGetVersionInfoResponse, body []byte, http gorequest.Response, err error) *WxaGetVersionInfoResult { - return &WxaGetVersionInfoResult{Result: result, Body: body, Http: http, Err: err} +func newWxaGetVersionInfoResult(result WxaGetVersionInfoResponse, body []byte, http gorequest.Response) *WxaGetVersionInfoResult { + return &WxaGetVersionInfoResult{Result: result, Body: body, Http: http} } // WxaGetVersionInfo 查询小程序版本信息 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/get_versioninfo.html -func (c *Client) WxaGetVersionInfo(ctx context.Context) *WxaGetVersionInfoResult { - accessToken := c.GetAuthorizerAccessToken(ctx) - if accessToken == "" { - return newWxaGetVersionInfoResult(WxaGetVersionInfoResponse{}, nil, gorequest.Response{}, errors.New("访问令牌为空")) +func (c *Client) WxaGetVersionInfo(ctx context.Context) (*WxaGetVersionInfoResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } + // 参数 + params := gorequest.NewParams() // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/getversioninfo?access_token=%s", accessToken), map[string]interface{}{}, http.MethodPost) + request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/getversioninfo?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response WxaGetVersionInfoResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaGetVersionInfoResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaGetVersionInfoResult(response, request.ResponseBody, request), nil } diff --git a/wxa.getwxacodeunlimit.go b/wxa.getwxacodeunlimit.go index 51b5727..e8ffb10 100644 --- a/wxa.getwxacodeunlimit.go +++ b/wxa.getwxacodeunlimit.go @@ -19,24 +19,38 @@ type WxaGetWxaCodeUnLimitResult struct { Result WxaGetWxaCodeUnLimitResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaGetWxaCodeUnLimitResult(result WxaGetWxaCodeUnLimitResponse, body []byte, http gorequest.Response, err error) *WxaGetWxaCodeUnLimitResult { - return &WxaGetWxaCodeUnLimitResult{Result: result, Body: body, Http: http, Err: err} +func newWxaGetWxaCodeUnLimitResult(result WxaGetWxaCodeUnLimitResponse, body []byte, http gorequest.Response) *WxaGetWxaCodeUnLimitResult { + return &WxaGetWxaCodeUnLimitResult{Result: result, Body: body, Http: http} } // WxaGetWxaCodeUnLimit 获取小程序码,适用于需要的码数量极多的业务场景。通过该接口生成的小程序码,永久有效,数量暂无限制 // 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 { +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 + } // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/getwxacodeunlimit?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response WxaGetWxaCodeUnLimitResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaGetWxaCodeUnLimitResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaGetWxaCodeUnLimitResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.memberauth.go b/wxa.memberauth.go index 91b4740..95ea334 100644 --- a/wxa.memberauth.go +++ b/wxa.memberauth.go @@ -3,7 +3,6 @@ package wechatopen import ( "context" "encoding/json" - "errors" "fmt" "go.dtapp.net/gorequest" "net/http" @@ -21,27 +20,37 @@ type WxaMemberAuthResult struct { Result WxaMemberAuthResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaMemberAuthResult(result WxaMemberAuthResponse, body []byte, http gorequest.Response, err error) *WxaMemberAuthResult { - return &WxaMemberAuthResult{Result: result, Body: body, Http: http, Err: err} +func newWxaMemberAuthResult(result WxaMemberAuthResponse, body []byte, http gorequest.Response) *WxaMemberAuthResult { + return &WxaMemberAuthResult{Result: result, Body: body, Http: http} } // WxaMemberAuth 获取体验者列表 // 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) *WxaMemberAuthResult { - accessToken := c.GetAuthorizerAccessToken(ctx) - if accessToken == "" { - return newWxaMemberAuthResult(WxaMemberAuthResponse{}, nil, gorequest.Response{}, errors.New("访问令牌为空")) +func (c *Client) WxaMemberAuth(ctx context.Context) (*WxaMemberAuthResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err } // 参数 params := gorequest.NewParams() params["action"] = "get_experiencer" // 请求 - request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/memberauth?access_token=%s", accessToken), params, http.MethodPost) + request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/memberauth?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response WxaMemberAuthResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaMemberAuthResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaMemberAuthResult(response, request.ResponseBody, request), nil } diff --git a/wxa.modify_domain.go b/wxa.modify_domain.go index 1ac052a..cf7b889 100644 --- a/wxa.modify_domain.go +++ b/wxa.modify_domain.go @@ -30,24 +30,34 @@ type WxaModifyDomainResult struct { Result WxaModifyDomainResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaModifyDomainResult(result WxaModifyDomainResponse, body []byte, http gorequest.Response, err error) *WxaModifyDomainResult { - return &WxaModifyDomainResult{Result: result, Body: body, Http: http, Err: err} +func newWxaModifyDomainResult(result WxaModifyDomainResponse, body []byte, http gorequest.Response) *WxaModifyDomainResult { + return &WxaModifyDomainResult{Result: result, Body: body, Http: http} } // WxaModifyDomain 设置服务器域名 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_Basic_Info/Server_Address_Configuration.html -func (c *Client) WxaModifyDomain(ctx context.Context, notMustParams ...gorequest.Params) *WxaModifyDomainResult { +func (c *Client) WxaModifyDomain(ctx context.Context, notMustParams ...gorequest.Params) (*WxaModifyDomainResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, 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) + if err != nil { + return nil, err + } // 定义 var response WxaModifyDomainResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaModifyDomainResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaModifyDomainResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.modify_domain_directly.go b/wxa.modify_domain_directly.go index d9b9d21..bcf7d51 100644 --- a/wxa.modify_domain_directly.go +++ b/wxa.modify_domain_directly.go @@ -17,24 +17,34 @@ type WxaModifyDomainDirectlyResult struct { Result WxaModifyDomainDirectlyResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaModifyDomainDirectlyResult(result WxaModifyDomainDirectlyResponse, body []byte, http gorequest.Response, err error) *WxaModifyDomainDirectlyResult { - return &WxaModifyDomainDirectlyResult{Result: result, Body: body, Http: http, Err: err} +func newWxaModifyDomainDirectlyResult(result WxaModifyDomainDirectlyResponse, body []byte, http gorequest.Response) *WxaModifyDomainDirectlyResult { + return &WxaModifyDomainDirectlyResult{Result: result, Body: body, Http: http} } // WxaModifyDomainDirectly 快速设置小程序服务器域名 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_Basic_Info/modify_domain_directly.html -func (c *Client) WxaModifyDomainDirectly(ctx context.Context, notMustParams ...gorequest.Params) *WxaModifyDomainDirectlyResult { +func (c *Client) WxaModifyDomainDirectly(ctx context.Context, notMustParams ...gorequest.Params) (*WxaModifyDomainDirectlyResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, 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) + if err != nil { + return nil, err + } // 定义 var response WxaModifyDomainDirectlyResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaModifyDomainDirectlyResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaModifyDomainDirectlyResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.release.go b/wxa.release.go index 6ef4d12..f0d464e 100644 --- a/wxa.release.go +++ b/wxa.release.go @@ -17,24 +17,38 @@ type WxaReleaseResult struct { Result WxaReleaseResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaReleaseResult(result WxaReleaseResponse, body []byte, http gorequest.Response, err error) *WxaReleaseResult { - return &WxaReleaseResult{Result: result, Body: body, Http: http, Err: err} +func newWxaReleaseResult(result WxaReleaseResponse, body []byte, http gorequest.Response) *WxaReleaseResult { + return &WxaReleaseResult{Result: result, Body: body, Http: http} } // WxaRelease 发布已通过审核的小程序 // https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/release.html -func (c *Client) WxaRelease(ctx context.Context) *WxaReleaseResult { +func (c *Client) WxaRelease(ctx context.Context) (*WxaReleaseResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + err = c.checkAuthorizerIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/release?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response WxaReleaseResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaReleaseResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaReleaseResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.security.apply_privacy_interface.go b/wxa.security.apply_privacy_interface.go index bb7b7c8..fdd363e 100644 --- a/wxa.security.apply_privacy_interface.go +++ b/wxa.security.apply_privacy_interface.go @@ -18,24 +18,34 @@ type WxaSecurityApplyPrivacyInterfaceResult struct { Result WxaSecurityApplyPrivacyInterfaceResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaSecurityApplyPrivacyInterfaceResult(result WxaSecurityApplyPrivacyInterfaceResponse, body []byte, http gorequest.Response, err error) *WxaSecurityApplyPrivacyInterfaceResult { - return &WxaSecurityApplyPrivacyInterfaceResult{Result: result, Body: body, Http: http, Err: err} +func newWxaSecurityApplyPrivacyInterfaceResult(result WxaSecurityApplyPrivacyInterfaceResponse, body []byte, http gorequest.Response) *WxaSecurityApplyPrivacyInterfaceResult { + return &WxaSecurityApplyPrivacyInterfaceResult{Result: result, Body: body, Http: http} } // WxaSecurityApplyPrivacyInterface 申请接口 // 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 { +func (c *Client) WxaSecurityApplyPrivacyInterface(ctx context.Context, notMustParams ...gorequest.Params) (*WxaSecurityApplyPrivacyInterfaceResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, 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) + if err != nil { + return nil, err + } // 定义 var response WxaSecurityApplyPrivacyInterfaceResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaSecurityApplyPrivacyInterfaceResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaSecurityApplyPrivacyInterfaceResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.security.get_privacy_interface.go b/wxa.security.get_privacy_interface.go index e44312b..b775b27 100644 --- a/wxa.security.get_privacy_interface.go +++ b/wxa.security.get_privacy_interface.go @@ -28,24 +28,34 @@ type WxaSecurityGetPrivacyInterfaceResult struct { Result WxaSecurityGetPrivacyInterfaceResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaSecurityGetPrivacyInterfaceResult(result WxaSecurityGetPrivacyInterfaceResponse, body []byte, http gorequest.Response, err error) *WxaSecurityGetPrivacyInterfaceResult { - return &WxaSecurityGetPrivacyInterfaceResult{Result: result, Body: body, Http: http, Err: err} +func newWxaSecurityGetPrivacyInterfaceResult(result WxaSecurityGetPrivacyInterfaceResponse, body []byte, http gorequest.Response) *WxaSecurityGetPrivacyInterfaceResult { + return &WxaSecurityGetPrivacyInterfaceResult{Result: result, Body: body, Http: http} } // WxaSecurityGetPrivacyInterface 获取接口列表 // 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) *WxaSecurityGetPrivacyInterfaceResult { +func (c *Client) WxaSecurityGetPrivacyInterface(ctx context.Context) (*WxaSecurityGetPrivacyInterfaceResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/security/get_privacy_interface?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet) + if err != nil { + return nil, err + } // 定义 var response WxaSecurityGetPrivacyInterfaceResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaSecurityGetPrivacyInterfaceResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaSecurityGetPrivacyInterfaceResult(response, request.ResponseBody, request), nil } // ErrcodeInfo 错误描述 diff --git a/wxa.submit_audit.go b/wxa.submit_audit.go index 4b3bd16..79eb241 100644 --- a/wxa.submit_audit.go +++ b/wxa.submit_audit.go @@ -18,22 +18,32 @@ type WxaSubmitAuditResult struct { Result WxaSubmitAuditResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaSubmitAuditResult(result WxaSubmitAuditResponse, body []byte, http gorequest.Response, err error) *WxaSubmitAuditResult { - return &WxaSubmitAuditResult{Result: result, Body: body, Http: http, Err: err} +func newWxaSubmitAuditResult(result WxaSubmitAuditResponse, body []byte, http gorequest.Response) *WxaSubmitAuditResult { + return &WxaSubmitAuditResult{Result: result, Body: body, Http: http} } // WxaSubmitAudit 提交审核 // 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 { +func (c *Client) WxaSubmitAudit(ctx context.Context, notMustParams ...gorequest.Params) (*WxaSubmitAuditResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, 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) + if err != nil { + return nil, err + } // 定义 var response WxaSubmitAuditResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaSubmitAuditResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaSubmitAuditResult(response, request.ResponseBody, request), nil } diff --git a/wxa.unbind_tester.go b/wxa.unbind_tester.go index f46546c..1b37a6a 100644 --- a/wxa.unbind_tester.go +++ b/wxa.unbind_tester.go @@ -17,16 +17,20 @@ type WxaUnbindTesterResult struct { Result WxaUnbindTesterResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newWxaUnbindTesterResult(result WxaUnbindTesterResponse, body []byte, http gorequest.Response, err error) *WxaUnbindTesterResult { - return &WxaUnbindTesterResult{Result: result, Body: body, Http: http, Err: err} +func newWxaUnbindTesterResult(result WxaUnbindTesterResponse, body []byte, http gorequest.Response) *WxaUnbindTesterResult { + return &WxaUnbindTesterResult{Result: result, Body: body, Http: http} } // WxaUnbindTester 解除绑定体验者 // 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) *WxaUnbindTesterResult { +func (c *Client) WxaUnbindTester(ctx context.Context, wechatid, userstr string) (*WxaUnbindTesterResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } // 参数 params := gorequest.NewParams() if wechatid != "" { @@ -35,8 +39,14 @@ func (c *Client) WxaUnbindTester(ctx context.Context, wechatid, userstr string) params["userstr"] = userstr // 请求 request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/unbind_tester?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } // 定义 var response WxaUnbindTesterResponse err = json.Unmarshal(request.ResponseBody, &response) - return newWxaUnbindTesterResult(response, request.ResponseBody, request, err) + if err != nil { + return nil, err + } + return newWxaUnbindTesterResult(response, request.ResponseBody, request), nil }