- update wechatopen

master
李光春 1 year ago
parent 4094a91645
commit 50011b492a

@ -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
}

@ -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
}

@ -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
}

@ -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
}

@ -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
}

@ -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
}

@ -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
}

@ -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 错误描述

@ -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 错误描述

@ -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
}

@ -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 错误描述

@ -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
}

@ -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
}

@ -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
}

@ -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
}

@ -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
}

@ -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 错误描述

@ -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
}

@ -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
}

@ -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
}

@ -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 错误描述

@ -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
}

@ -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
}

@ -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()

@ -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
}

@ -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
}

@ -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
}

@ -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
}

@ -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
}

@ -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
}

@ -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
}

@ -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
}

@ -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
}

@ -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
}

@ -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")
)

@ -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
}

@ -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
}

@ -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)

@ -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))
}

@ -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
}

@ -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))
}

@ -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 {

@ -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 错误描述

@ -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 错误描述

@ -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 错误描述

@ -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 错误描述

@ -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 错误描述

@ -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 错误描述

@ -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 错误描述

@ -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
}

@ -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
}

@ -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 错误描述

@ -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
}

@ -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 {

@ -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 "系统繁忙"
}

@ -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 "系统繁忙"
}

@ -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 错误描述

@ -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 错误描述

@ -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
}

@ -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
}

@ -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 错误描述

@ -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
}

@ -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
}

@ -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 错误描述

@ -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 错误描述

@ -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
}

@ -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 "系统繁忙"
}

@ -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 "系统繁忙"
}

@ -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 错误描述

@ -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 错误描述

@ -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 错误描述

@ -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 错误描述

@ -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 错误描述

@ -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 错误描述

@ -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 "系统繁忙"
}

@ -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 "系统繁忙"
}

@ -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 错误描述

@ -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
}

@ -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
}

@ -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 错误描述

@ -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 错误描述

@ -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 错误描述

@ -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 错误描述

@ -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 错误描述

@ -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 错误描述

Loading…
Cancel
Save