- update error

master v1.0.19
李光春 2 years ago
parent 758f9ff5c0
commit 3bd29edc4b

@ -47,20 +47,36 @@ type CgiBinAccountGetAccountBasicInfoResult struct {
Result CgiBinAccountGetAccountBasicInfoResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newCgiBinAccountGetAccountBasicInfoResult(result CgiBinAccountGetAccountBasicInfoResponse, body []byte, http gorequest.Response, err error) *CgiBinAccountGetAccountBasicInfoResult {
return &CgiBinAccountGetAccountBasicInfoResult{Result: result, Body: body, Http: http, Err: err}
func newCgiBinAccountGetAccountBasicInfoResult(result CgiBinAccountGetAccountBasicInfoResponse, body []byte, http gorequest.Response) *CgiBinAccountGetAccountBasicInfoResult {
return &CgiBinAccountGetAccountBasicInfoResult{Result: result, Body: body, Http: http}
}
// CgiBinAccountGetAccountBasicInfo 获取基本信息
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_Basic_Info/Mini_Program_Information_Settings.html
func (c *Client) CgiBinAccountGetAccountBasicInfo(ctx context.Context) *CgiBinAccountGetAccountBasicInfoResult {
func (c *Client) CgiBinAccountGetAccountBasicInfo(ctx context.Context) (*CgiBinAccountGetAccountBasicInfoResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/account/getaccountbasicinfo?access_token=%v", c.GetAuthorizerAccessToken(ctx)), map[string]interface{}{}, http.MethodGet)
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/account/getaccountbasicinfo?access_token=%v", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet)
if err != nil {
return nil, err
}
// 定义
var response CgiBinAccountGetAccountBasicInfoResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newCgiBinAccountGetAccountBasicInfoResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newCgiBinAccountGetAccountBasicInfoResult(response, request.ResponseBody, request), nil
}

@ -18,17 +18,25 @@ type CgiBinComponentApiAuthorizerTokenResult struct {
Result CgiBinComponentApiAuthorizerTokenResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
authorizerAppid string // 授权方 appid
}
func newCgiBinComponentApiAuthorizerTokenResult(result CgiBinComponentApiAuthorizerTokenResponse, body []byte, http gorequest.Response, err error, authorizerAppid string) *CgiBinComponentApiAuthorizerTokenResult {
return &CgiBinComponentApiAuthorizerTokenResult{Result: result, Body: body, Http: http, Err: err, authorizerAppid: authorizerAppid}
func newCgiBinComponentApiAuthorizerTokenResult(result CgiBinComponentApiAuthorizerTokenResponse, body []byte, http gorequest.Response, authorizerAppid string) *CgiBinComponentApiAuthorizerTokenResult {
return &CgiBinComponentApiAuthorizerTokenResult{Result: result, Body: body, Http: http, authorizerAppid: authorizerAppid}
}
// CgiBinComponentApiAuthorizerToken 获取/刷新接口调用令牌
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html
func (c *Client) CgiBinComponentApiAuthorizerToken(ctx context.Context, authorizerRefreshToken string) *CgiBinComponentApiAuthorizerTokenResult {
func (c *Client) CgiBinComponentApiAuthorizerToken(ctx context.Context, authorizerRefreshToken string) (*CgiBinComponentApiAuthorizerTokenResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
param := gorequest.NewParams()
param["component_appid"] = c.GetComponentAppId() // 第三方平台 appid
@ -37,8 +45,14 @@ func (c *Client) CgiBinComponentApiAuthorizerToken(ctx context.Context, authoriz
params := gorequest.NewParamsWith(param)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/api_authorizer_token?component_access_token=%v", c.GetComponentAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response CgiBinComponentApiAuthorizerTokenResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newCgiBinComponentApiAuthorizerTokenResult(response, request.ResponseBody, request, err, c.GetAuthorizerAppid())
if err != nil {
return nil, err
}
return newCgiBinComponentApiAuthorizerTokenResult(response, request.ResponseBody, request, param["authorizer_appid"].(string)), nil
}

@ -16,16 +16,20 @@ type CgiBinComponentApiComponentTokenResult struct {
Result CgiBinComponentApiComponentTokenResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newCgiBinComponentApiComponentTokenResult(result CgiBinComponentApiComponentTokenResponse, body []byte, http gorequest.Response, err error) *CgiBinComponentApiComponentTokenResult {
return &CgiBinComponentApiComponentTokenResult{Result: result, Body: body, Http: http, Err: err}
func newCgiBinComponentApiComponentTokenResult(result CgiBinComponentApiComponentTokenResponse, body []byte, http gorequest.Response) *CgiBinComponentApiComponentTokenResult {
return &CgiBinComponentApiComponentTokenResult{Result: result, Body: body, Http: http}
}
// CgiBinComponentApiComponentToken 令牌
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/component_access_token.html
func (c *Client) CgiBinComponentApiComponentToken(ctx context.Context) *CgiBinComponentApiComponentTokenResult {
func (c *Client) CgiBinComponentApiComponentToken(ctx context.Context) (*CgiBinComponentApiComponentTokenResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
// 参数
param := gorequest.NewParams()
param["component_appid"] = c.GetComponentAppId() // 第三方平台 appid
@ -34,8 +38,14 @@ func (c *Client) CgiBinComponentApiComponentToken(ctx context.Context) *CgiBinCo
params := gorequest.NewParamsWith(param)
// 请求
request, err := c.request(ctx, apiUrl+"/cgi-bin/component/api_component_token", params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response CgiBinComponentApiComponentTokenResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newCgiBinComponentApiComponentTokenResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newCgiBinComponentApiComponentTokenResult(response, request.ResponseBody, request), nil
}

@ -17,24 +17,35 @@ type CgiBinComponentApiCreatePreAuthCodenResult struct {
Result CgiBinComponentApiCreatePreAuthCodenResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newCgiBinComponentApiCreatePreAuthCodenResult(result CgiBinComponentApiCreatePreAuthCodenResponse, body []byte, http gorequest.Response, err error) *CgiBinComponentApiCreatePreAuthCodenResult {
return &CgiBinComponentApiCreatePreAuthCodenResult{Result: result, Body: body, Http: http, Err: err}
func newCgiBinComponentApiCreatePreAuthCodenResult(result CgiBinComponentApiCreatePreAuthCodenResponse, body []byte, http gorequest.Response) *CgiBinComponentApiCreatePreAuthCodenResult {
return &CgiBinComponentApiCreatePreAuthCodenResult{Result: result, Body: body, Http: http}
}
// CgiBinComponentApiCreatePreAuthCoden 预授权码
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/pre_auth_code.html
func (c *Client) CgiBinComponentApiCreatePreAuthCoden(ctx context.Context) *CgiBinComponentApiCreatePreAuthCodenResult {
func (c *Client) CgiBinComponentApiCreatePreAuthCoden(ctx context.Context) (*CgiBinComponentApiCreatePreAuthCodenResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
// 参数
param := gorequest.NewParams()
param["component_appid"] = c.GetComponentAppId() // 第三方平台 appid
params := gorequest.NewParamsWith(param)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/api_create_preauthcode?component_access_token=%v", c.GetComponentAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response CgiBinComponentApiCreatePreAuthCodenResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newCgiBinComponentApiCreatePreAuthCodenResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newCgiBinComponentApiCreatePreAuthCodenResult(response, request.ResponseBody, request), nil
}

@ -75,16 +75,24 @@ type CgiBinComponentApiGetAuthorizerInfoResult struct {
Result CgiBinComponentApiGetAuthorizerInfoResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newCgiBinComponentApiGetAuthorizerInfoResult(result CgiBinComponentApiGetAuthorizerInfoResponse, body []byte, http gorequest.Response, err error) *CgiBinComponentApiGetAuthorizerInfoResult {
return &CgiBinComponentApiGetAuthorizerInfoResult{Result: result, Body: body, Http: http, Err: err}
func newCgiBinComponentApiGetAuthorizerInfoResult(result CgiBinComponentApiGetAuthorizerInfoResponse, body []byte, http gorequest.Response) *CgiBinComponentApiGetAuthorizerInfoResult {
return &CgiBinComponentApiGetAuthorizerInfoResult{Result: result, Body: body, Http: http}
}
// CgiBinComponentApiGetAuthorizerInfo 获取授权帐号详情
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_get_authorizer_info.html
func (c *Client) CgiBinComponentApiGetAuthorizerInfo(ctx context.Context) *CgiBinComponentApiGetAuthorizerInfoResult {
func (c *Client) CgiBinComponentApiGetAuthorizerInfo(ctx context.Context) (*CgiBinComponentApiGetAuthorizerInfoResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
param := gorequest.NewParams()
param["component_appid"] = c.GetComponentAppId() // 第三方平台 appid
@ -92,8 +100,14 @@ func (c *Client) CgiBinComponentApiGetAuthorizerInfo(ctx context.Context) *CgiBi
params := gorequest.NewParamsWith(param)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/api_get_authorizer_info?component_access_token=%v", c.GetComponentAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response CgiBinComponentApiGetAuthorizerInfoResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newCgiBinComponentApiGetAuthorizerInfoResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newCgiBinComponentApiGetAuthorizerInfoResult(response, request.ResponseBody, request), nil
}

@ -31,16 +31,20 @@ type CgiBinComponentApiQueryAuthResult struct {
Result CgiBinComponentApiQueryAuthResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newCgiBinComponentApiQueryAuthResult(result CgiBinComponentApiQueryAuthResponse, body []byte, http gorequest.Response, err error) *CgiBinComponentApiQueryAuthResult {
return &CgiBinComponentApiQueryAuthResult{Result: result, Body: body, Http: http, Err: err}
func newCgiBinComponentApiQueryAuthResult(result CgiBinComponentApiQueryAuthResponse, body []byte, http gorequest.Response) *CgiBinComponentApiQueryAuthResult {
return &CgiBinComponentApiQueryAuthResult{Result: result, Body: body, Http: http}
}
// CgiBinComponentApiQueryAuth 使用授权码获取授权信息
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/authorization_info.html
func (c *Client) CgiBinComponentApiQueryAuth(ctx context.Context, authorizationCode string) *CgiBinComponentApiQueryAuthResult {
func (c *Client) CgiBinComponentApiQueryAuth(ctx context.Context, authorizationCode string) (*CgiBinComponentApiQueryAuthResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
// 参数
param := gorequest.NewParams()
param["component_appid"] = c.GetComponentAppId() // 第三方平台 appid
@ -48,8 +52,14 @@ func (c *Client) CgiBinComponentApiQueryAuth(ctx context.Context, authorizationC
params := gorequest.NewParamsWith(param)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/api_query_auth?component_access_token=%v", c.GetComponentAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response CgiBinComponentApiQueryAuthResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newCgiBinComponentApiQueryAuthResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newCgiBinComponentApiQueryAuthResult(response, request.ResponseBody, request), nil
}

@ -18,16 +18,20 @@ type CgiBinComponentApiStartPushTicketResult struct {
Result CgiBinComponentApiStartPushTicketResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newCgiBinComponentApiStartPushTicketResult(result CgiBinComponentApiStartPushTicketResponse, body []byte, http gorequest.Response, err error) *CgiBinComponentApiStartPushTicketResult {
return &CgiBinComponentApiStartPushTicketResult{Result: result, Body: body, Http: http, Err: err}
func newCgiBinComponentApiStartPushTicketResult(result CgiBinComponentApiStartPushTicketResponse, body []byte, http gorequest.Response) *CgiBinComponentApiStartPushTicketResult {
return &CgiBinComponentApiStartPushTicketResult{Result: result, Body: body, Http: http}
}
// CgiBinComponentApiStartPushTicket 启动ticket推送服务
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/component_verify_ticket_service.html
func (c *Client) CgiBinComponentApiStartPushTicket(ctx context.Context) *CgiBinComponentApiStartPushTicketResult {
func (c *Client) CgiBinComponentApiStartPushTicket(ctx context.Context) (*CgiBinComponentApiStartPushTicketResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
// 参数
param := gorequest.NewParams()
param["component_appid"] = c.GetComponentAppId() // 平台型第三方平台的appid
@ -35,8 +39,14 @@ func (c *Client) CgiBinComponentApiStartPushTicket(ctx context.Context) *CgiBinC
params := gorequest.NewParamsWith(param)
// 请求
request, err := c.request(ctx, apiUrl+"/cgi-bin/component/api_start_push_ticket", params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response CgiBinComponentApiStartPushTicketResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newCgiBinComponentApiStartPushTicketResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newCgiBinComponentApiStartPushTicketResult(response, request.ResponseBody, request), nil
}

@ -49,24 +49,38 @@ type CgiBinComponentGetPrivacySettingResult struct {
Result CgiBinComponentGetPrivacySettingResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newCgiBinComponentGetPrivacySettingResult(result CgiBinComponentGetPrivacySettingResponse, body []byte, http gorequest.Response, err error) *CgiBinComponentGetPrivacySettingResult {
return &CgiBinComponentGetPrivacySettingResult{Result: result, Body: body, Http: http, Err: err}
func newCgiBinComponentGetPrivacySettingResult(result CgiBinComponentGetPrivacySettingResponse, body []byte, http gorequest.Response) *CgiBinComponentGetPrivacySettingResult {
return &CgiBinComponentGetPrivacySettingResult{Result: result, Body: body, Http: http}
}
// CgiBinComponentGetPrivacySetting 查询小程序用户隐私保护指引
// @privacyVer 1表示现网版本传1则该接口返回的内容是现网版本的2表示开发版传2则该接口返回的内容是开发版本的。默认是2。
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/privacy_config/get_privacy_setting.html
func (c *Client) CgiBinComponentGetPrivacySetting(ctx context.Context, privacyVer int) *CgiBinComponentGetPrivacySettingResult {
func (c *Client) CgiBinComponentGetPrivacySetting(ctx context.Context, privacyVer int) (*CgiBinComponentGetPrivacySettingResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
params["privacy_ver"] = privacyVer
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/getprivacysetting?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response CgiBinComponentGetPrivacySettingResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newCgiBinComponentGetPrivacySettingResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newCgiBinComponentGetPrivacySettingResult(response, request.ResponseBody, request), nil
}

@ -17,24 +17,38 @@ type CgiBinComponentSetPrivacySettingResult struct {
Result CgiBinComponentSetPrivacySettingResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newCgiBinComponentSetPrivacySettingResult(result CgiBinComponentSetPrivacySettingResponse, body []byte, http gorequest.Response, err error) *CgiBinComponentSetPrivacySettingResult {
return &CgiBinComponentSetPrivacySettingResult{Result: result, Body: body, Http: http, Err: err}
func newCgiBinComponentSetPrivacySettingResult(result CgiBinComponentSetPrivacySettingResponse, body []byte, http gorequest.Response) *CgiBinComponentSetPrivacySettingResult {
return &CgiBinComponentSetPrivacySettingResult{Result: result, Body: body, Http: http}
}
// CgiBinComponentSetPrivacySetting 配置小程序用户隐私保护指引
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/privacy_config/set_privacy_setting.html
func (c *Client) CgiBinComponentSetPrivacySetting(ctx context.Context, notMustParams ...gorequest.Params) *CgiBinComponentSetPrivacySettingResult {
func (c *Client) CgiBinComponentSetPrivacySetting(ctx context.Context, notMustParams ...gorequest.Params) (*CgiBinComponentSetPrivacySettingResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/setprivacysetting?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response CgiBinComponentSetPrivacySettingResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newCgiBinComponentSetPrivacySettingResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newCgiBinComponentSetPrivacySettingResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -16,20 +16,27 @@ type GetCallBackIpResult struct {
Result GetCallBackIpResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func NewGetCallBackIpResult(result GetCallBackIpResponse, body []byte, http gorequest.Response, err error) *GetCallBackIpResult {
return &GetCallBackIpResult{Result: result, Body: body, Http: http, Err: err}
func NewGetCallBackIpResult(result GetCallBackIpResponse, body []byte, http gorequest.Response) *GetCallBackIpResult {
return &GetCallBackIpResult{Result: result, Body: body, Http: http}
}
// CgiBinGetApiDomainIp 获取微信服务器IP地址
// https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_the_WeChat_server_IP_address.html
func (c *Client) CgiBinGetApiDomainIp(ctx context.Context, componentAccessToken string) *GetCallBackIpResult {
func (c *Client) CgiBinGetApiDomainIp(ctx context.Context, componentAccessToken string) (*GetCallBackIpResult, error) {
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/get_api_domain_ip?access_token=%s", componentAccessToken), map[string]interface{}{}, http.MethodGet)
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/get_api_domain_ip?access_token=%s", componentAccessToken), params, http.MethodGet)
if err != nil {
return nil, err
}
// 定义
var response GetCallBackIpResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewGetCallBackIpResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return NewGetCallBackIpResult(response, request.ResponseBody, request), nil
}

@ -18,16 +18,24 @@ type CgiBinShortUrlResult struct {
Result CgiBinShortUrlResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newCgiBinShortUrlResult(result CgiBinShortUrlResponse, body []byte, http gorequest.Response, err error) *CgiBinShortUrlResult {
return &CgiBinShortUrlResult{Result: result, Body: body, Http: http, Err: err}
func newCgiBinShortUrlResult(result CgiBinShortUrlResponse, body []byte, http gorequest.Response) *CgiBinShortUrlResult {
return &CgiBinShortUrlResult{Result: result, Body: body, Http: http}
}
// CgiBinShortUrl 将二维码长链接转成短链接
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/qrcode/shorturl.html
func (c *Client) CgiBinShortUrl(ctx context.Context, longUrl string) *CgiBinShortUrlResult {
func (c *Client) CgiBinShortUrl(ctx context.Context, longUrl string) (*CgiBinShortUrlResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
params["action"] = "long2short" // 此处填long2short代表长链接转短链接
@ -37,5 +45,8 @@ func (c *Client) CgiBinShortUrl(ctx context.Context, longUrl string) *CgiBinShor
// 定义
var response CgiBinShortUrlResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newCgiBinShortUrlResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newCgiBinShortUrlResult(response, request.ResponseBody, request), nil
}

@ -17,24 +17,38 @@ type CgiBinWxOpenQrCodeJumpAddResult struct {
Result CgiBinWxOpenQrCodeJumpAddResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newCgiBinWxOpenQrCodeJumpAddResult(result CgiBinWxOpenQrCodeJumpAddResponse, body []byte, http gorequest.Response, err error) *CgiBinWxOpenQrCodeJumpAddResult {
return &CgiBinWxOpenQrCodeJumpAddResult{Result: result, Body: body, Http: http, Err: err}
func newCgiBinWxOpenQrCodeJumpAddResult(result CgiBinWxOpenQrCodeJumpAddResponse, body []byte, http gorequest.Response) *CgiBinWxOpenQrCodeJumpAddResult {
return &CgiBinWxOpenQrCodeJumpAddResult{Result: result, Body: body, Http: http}
}
// CgiBinWxOpenQrCodeJumpAdd 增加或修改二维码规则
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/qrcode/qrcodejumpadd.html
func (c *Client) CgiBinWxOpenQrCodeJumpAdd(ctx context.Context, notMustParams ...gorequest.Params) *CgiBinWxOpenQrCodeJumpAddResult {
func (c *Client) CgiBinWxOpenQrCodeJumpAdd(ctx context.Context, notMustParams ...gorequest.Params) (*CgiBinWxOpenQrCodeJumpAddResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/wxopen/qrcodejumpadd?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response CgiBinWxOpenQrCodeJumpAddResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newCgiBinWxOpenQrCodeJumpAddResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newCgiBinWxOpenQrCodeJumpAddResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -17,23 +17,37 @@ type CgiBinWxOpenQrCodeJumpDeleteResult struct {
Result CgiBinWxOpenQrCodeJumpDeleteResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newCgiBinWxOpenQrCodeJumpDeleteResult(result CgiBinWxOpenQrCodeJumpDeleteResponse, body []byte, http gorequest.Response, err error) *CgiBinWxOpenQrCodeJumpDeleteResult {
return &CgiBinWxOpenQrCodeJumpDeleteResult{Result: result, Body: body, Http: http, Err: err}
func newCgiBinWxOpenQrCodeJumpDeleteResult(result CgiBinWxOpenQrCodeJumpDeleteResponse, body []byte, http gorequest.Response) *CgiBinWxOpenQrCodeJumpDeleteResult {
return &CgiBinWxOpenQrCodeJumpDeleteResult{Result: result, Body: body, Http: http}
}
// CgiBinWxOpenQrCodeJumpDelete 删除已设置的二维码规则
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/qrcode/qrcodejumpdelete.html
func (c *Client) CgiBinWxOpenQrCodeJumpDelete(ctx context.Context, prefix string) *CgiBinWxOpenQrCodeJumpDeleteResult {
func (c *Client) CgiBinWxOpenQrCodeJumpDelete(ctx context.Context, prefix string) (*CgiBinWxOpenQrCodeJumpDeleteResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
params["prefix"] = prefix
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/wxopen/qrcodejumpdelete?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response CgiBinWxOpenQrCodeJumpDeleteResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newCgiBinWxOpenQrCodeJumpDeleteResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newCgiBinWxOpenQrCodeJumpDeleteResult(response, request.ResponseBody, request), nil
}

@ -19,22 +19,36 @@ type CgiBinWxOpenQrCodeJumpDownloadResult struct {
Result CgiBinWxOpenQrCodeJumpDownloadResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newCgiBinWxOpenQrCodeJumpDownloadResult(result CgiBinWxOpenQrCodeJumpDownloadResponse, body []byte, http gorequest.Response, err error) *CgiBinWxOpenQrCodeJumpDownloadResult {
return &CgiBinWxOpenQrCodeJumpDownloadResult{Result: result, Body: body, Http: http, Err: err}
func newCgiBinWxOpenQrCodeJumpDownloadResult(result CgiBinWxOpenQrCodeJumpDownloadResponse, body []byte, http gorequest.Response) *CgiBinWxOpenQrCodeJumpDownloadResult {
return &CgiBinWxOpenQrCodeJumpDownloadResult{Result: result, Body: body, Http: http}
}
// CgiBinWxOpenQrCodeJumpDownload 获取校验文件名称及内容
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/qrcode/qrcodejumpdownload.html
func (c *Client) CgiBinWxOpenQrCodeJumpDownload(ctx context.Context) *CgiBinWxOpenQrCodeJumpDownloadResult {
func (c *Client) CgiBinWxOpenQrCodeJumpDownload(ctx context.Context) (*CgiBinWxOpenQrCodeJumpDownloadResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/wxopen/qrcodejumpdownload?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response CgiBinWxOpenQrCodeJumpDownloadResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newCgiBinWxOpenQrCodeJumpDownloadResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newCgiBinWxOpenQrCodeJumpDownloadResult(response, request.ResponseBody, request), nil
}

@ -28,22 +28,36 @@ type CgiBinWxOpenQrCodeJumpGetResult struct {
Result CgiBinWxOpenQrCodeJumpGetResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newCgiBinWxOpenQrCodeJumpGetResult(result CgiBinWxOpenQrCodeJumpGetResponse, body []byte, http gorequest.Response, err error) *CgiBinWxOpenQrCodeJumpGetResult {
return &CgiBinWxOpenQrCodeJumpGetResult{Result: result, Body: body, Http: http, Err: err}
func newCgiBinWxOpenQrCodeJumpGetResult(result CgiBinWxOpenQrCodeJumpGetResponse, body []byte, http gorequest.Response) *CgiBinWxOpenQrCodeJumpGetResult {
return &CgiBinWxOpenQrCodeJumpGetResult{Result: result, Body: body, Http: http}
}
// CgiBinWxOpenQrCodeJumpGet 获取已设置的二维码规则
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/qrcode/qrcodejumpadd.html
func (c *Client) CgiBinWxOpenQrCodeJumpGet(ctx context.Context) *CgiBinWxOpenQrCodeJumpGetResult {
func (c *Client) CgiBinWxOpenQrCodeJumpGet(ctx context.Context) (*CgiBinWxOpenQrCodeJumpGetResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/wxopen/qrcodejumpget?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response CgiBinWxOpenQrCodeJumpGetResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newCgiBinWxOpenQrCodeJumpGetResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newCgiBinWxOpenQrCodeJumpGetResult(response, request.ResponseBody, request), nil
}

@ -17,25 +17,39 @@ type CgiBinWxOpenQrCodeJumpPublishResult struct {
Result CgiBinWxOpenQrCodeJumpPublishResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newCgiBinWxOpenQrCodeJumpPublishResult(result CgiBinWxOpenQrCodeJumpPublishResponse, body []byte, http gorequest.Response, err error) *CgiBinWxOpenQrCodeJumpPublishResult {
return &CgiBinWxOpenQrCodeJumpPublishResult{Result: result, Body: body, Http: http, Err: err}
func newCgiBinWxOpenQrCodeJumpPublishResult(result CgiBinWxOpenQrCodeJumpPublishResponse, body []byte, http gorequest.Response) *CgiBinWxOpenQrCodeJumpPublishResult {
return &CgiBinWxOpenQrCodeJumpPublishResult{Result: result, Body: body, Http: http}
}
// CgiBinWxOpenQrCodeJumpPublish 发布已设置的二维码规则
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/qrcode/qrcodejumppublish.html
func (c *Client) CgiBinWxOpenQrCodeJumpPublish(ctx context.Context, prefix string) *CgiBinWxOpenQrCodeJumpPublishResult {
func (c *Client) CgiBinWxOpenQrCodeJumpPublish(ctx context.Context, prefix string) (*CgiBinWxOpenQrCodeJumpPublishResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
params["prefix"] = prefix
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/wxopen/qrcodejumppublish?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response CgiBinWxOpenQrCodeJumpPublishResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newCgiBinWxOpenQrCodeJumpPublishResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newCgiBinWxOpenQrCodeJumpPublishResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -0,0 +1,21 @@
package wechatopen
func (c *Client) checkComponentIsConfig() error {
componentAppId := c.GetComponentAppId()
if componentAppId == "" {
return componentAppIdNoConfig
}
componentAppSecret := c.GetComponentAppSecret()
if componentAppSecret == "" {
return componentAppSecretNoConfig
}
return nil
}
func (c *Client) checkAuthorizerIsConfig() error {
authorizerAppid := c.GetAuthorizerAppid()
if authorizerAppid == "" {
return authorizerAppidNoConfig
}
return nil
}

@ -107,7 +107,7 @@ func NewClient(config *ClientConfig) (*Client, error) {
c.cache.componentVerifyTicketPrefix, c.cache.componentAccessTokenPrefix, c.cache.authorizerAccessTokenPrefix, c.cache.preAuthCodePrefix = config.RedisCachePrefixFun()
if c.cache.componentVerifyTicketPrefix == "" || c.cache.componentAccessTokenPrefix == "" || c.cache.authorizerAccessTokenPrefix == "" || c.cache.preAuthCodePrefix == "" {
return nil, RedisCachePrefixNoConfig
return nil, redisCachePrefixNoConfig
}
return c, nil

@ -8,4 +8,4 @@ const (
logTable = "wechatopen"
)
const Version = "1.0.18"
const Version = "1.0.19"

@ -2,4 +2,15 @@ package wechatopen
import "errors"
var RedisCachePrefixNoConfig = errors.New("请配置RedisCachePrefix")
var (
redisCachePrefixNoConfig = errors.New("请配置 RedisCachePrefix")
)
var (
componentAppIdNoConfig = errors.New("请配置 ComponentAppId")
componentAppSecretNoConfig = errors.New("请配置 ComponentAppSecret")
)
var (
authorizerAppidNoConfig = errors.New("请配置 AuthorizerAppid 或 ConfigAuthorizer")
)

@ -1,6 +1,6 @@
package wechatopen
//func (c *Client) GetComponentAppId() string {
//func (c *Client) GetComponentAccessToken() string {
// return c.config.componentAccessToken
//}

@ -52,16 +52,20 @@ func (c *Client) GetComponentAccessToken(ctx context.Context) string {
}
// MonitorComponentAccessToken 监控令牌
func (c *Client) MonitorComponentAccessToken(ctx context.Context) string {
func (c *Client) MonitorComponentAccessToken(ctx context.Context) (string, error) {
// 查询
componentAccessToken := c.GetComponentAccessToken(ctx)
// 判断
result := c.CgiBinGetApiDomainIp(ctx, componentAccessToken)
result, err := c.CgiBinGetApiDomainIp(ctx, componentAccessToken)
if err != nil {
return "", err
}
if len(result.Result.IpList) > 0 {
return componentAccessToken
return componentAccessToken, err
}
// 重新获取
return c.SetComponentAccessToken(ctx, c.CgiBinComponentApiComponentToken(ctx).Result.ComponentAccessToken)
resp, err := c.CgiBinComponentApiComponentToken(ctx)
return c.SetComponentAccessToken(ctx, resp.Result.ComponentAccessToken), err
}
// 授权方令牌
@ -88,15 +92,16 @@ func (c *Client) GetAuthorizerAccessToken(ctx context.Context) string {
}
// MonitorAuthorizerAccessToken 监控授权方令牌
func (c *Client) MonitorAuthorizerAccessToken(ctx context.Context, authorizerRefreshToken string) string {
func (c *Client) MonitorAuthorizerAccessToken(ctx context.Context, authorizerRefreshToken string) (string, error) {
// 查询
authorizerAccessToken := c.GetAuthorizerAccessToken(ctx)
// 判断
if authorizerAccessToken != "" {
return authorizerAccessToken
return authorizerAccessToken, nil
}
// 重新获取
return c.SetAuthorizerAccessToken(ctx, c.CgiBinComponentApiAuthorizerToken(ctx, authorizerRefreshToken).Result.AuthorizerAccessToken)
resp, err := c.CgiBinComponentApiAuthorizerToken(ctx, authorizerRefreshToken)
return c.SetAuthorizerAccessToken(ctx, resp.Result.AuthorizerAccessToken), err
}
// 预授权码
@ -128,13 +133,14 @@ func (c *Client) DelPreAuthCode(ctx context.Context) error {
}
// MonitorPreAuthCode 监控预授权码
func (c *Client) MonitorPreAuthCode(ctx context.Context) string {
func (c *Client) MonitorPreAuthCode(ctx context.Context) (string, error) {
// 查询
preAuthCode := c.GetPreAuthCode(ctx)
// 判断
if preAuthCode != "" {
return preAuthCode
return preAuthCode, nil
}
// 重新获取
return c.SetPreAuthCode(ctx, c.CgiBinComponentApiCreatePreAuthCoden(ctx).Result.PreAuthCode)
resp, err := c.CgiBinComponentApiCreatePreAuthCoden(ctx)
return c.SetPreAuthCode(ctx, resp.Result.PreAuthCode), err
}

@ -25,7 +25,10 @@ func (c *Client) ServeHttpAuthorizerAppid(ctx context.Context, r *http.Request)
return resp, agentUserId, errors.New("找不到过期时间参数")
}
info := c.CgiBinComponentApiQueryAuth(ctx, authCode)
info, err := c.CgiBinComponentApiQueryAuth(ctx, authCode)
if err != nil {
return resp, agentUserId, err
}
if info.Result.AuthorizationInfo.AuthorizerAppid == "" {
return resp, agentUserId, errors.New("获取失败")
}

@ -1,7 +0,0 @@
package wechatopen
// SetAuthorizerAppid 设置代理商小程序
func (c *Client) SetAuthorizerAppid(authorizerAppid string) {
c.config.authorizerAppid = authorizerAppid
return
}

@ -22,16 +22,24 @@ type SnsComponentJsCode2sessionResult struct {
Result SnsComponentJsCode2sessionResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newSnsComponentJsCode2sessionResult(result SnsComponentJsCode2sessionResponse, body []byte, http gorequest.Response, err error) *SnsComponentJsCode2sessionResult {
return &SnsComponentJsCode2sessionResult{Result: result, Body: body, Http: http, Err: err}
func newSnsComponentJsCode2sessionResult(result SnsComponentJsCode2sessionResponse, body []byte, http gorequest.Response) *SnsComponentJsCode2sessionResult {
return &SnsComponentJsCode2sessionResult{Result: result, Body: body, Http: http}
}
// SnsComponentJsCode2session 小程序登录
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/others/WeChat_login.html
func (c *Client) SnsComponentJsCode2session(ctx context.Context, jsCode string) *SnsComponentJsCode2sessionResult {
func (c *Client) SnsComponentJsCode2session(ctx context.Context, jsCode string) (*SnsComponentJsCode2sessionResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
params["appid"] = c.GetAuthorizerAppid() // 小程序的 appId
@ -41,10 +49,16 @@ func (c *Client) SnsComponentJsCode2session(ctx context.Context, jsCode string)
params["component_access_token"] = c.GetComponentAccessToken(ctx) // 第三方平台的component_access_token
// 请求
request, err := c.request(ctx, apiUrl+"/sns/component/jscode2session", params, http.MethodGet)
if err != nil {
return nil, err
}
// 定义
var response SnsComponentJsCode2sessionResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newSnsComponentJsCode2sessionResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newSnsComponentJsCode2sessionResult(response, request.ResponseBody, request), nil
}
type UserInfo struct {
@ -73,7 +87,7 @@ type UserInfoResult struct {
}
func newUserInfoResult(result UserInfoResponse, err error) *UserInfoResult {
return &UserInfoResult{Result: result, Err: err}
return &UserInfoResult{Result: result}
}
// UserInfo 解密用户信息

@ -24,24 +24,35 @@ type TckWxPayListResult struct {
Result TckWxPayListResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newTckWxPayListResult(result TckWxPayListResponse, body []byte, http gorequest.Response, err error) *TckWxPayListResult {
return &TckWxPayListResult{Result: result, Body: body, Http: http, Err: err}
func newTckWxPayListResult(result TckWxPayListResponse, body []byte, http gorequest.Response) *TckWxPayListResult {
return &TckWxPayListResult{Result: result, Body: body, Http: http}
}
// TckWxPayList 获取授权绑定的商户号列表
// https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/cloudbase-common/wechatpay/getWechatPayList.html
func (c *Client) TckWxPayList(ctx context.Context) *TckWxPayListResult {
func (c *Client) TckWxPayList(ctx context.Context) (*TckWxPayListResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
// 参数
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request(ctx, apiUrl+"/tcb/wxpaylist?access_token="+c.GetComponentAccessToken(ctx), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response TckWxPayListResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newTckWxPayListResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newTckWxPayListResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -17,26 +17,40 @@ type WxaAddToTemplateResult struct {
Result WxaAddToTemplateResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaAddToTemplateResult(result WxaAddToTemplateResponse, body []byte, http gorequest.Response, err error) *WxaAddToTemplateResult {
return &WxaAddToTemplateResult{Result: result, Body: body, Http: http, Err: err}
func newWxaAddToTemplateResult(result WxaAddToTemplateResponse, body []byte, http gorequest.Response) *WxaAddToTemplateResult {
return &WxaAddToTemplateResult{Result: result, Body: body, Http: http}
}
// WxaAddToTemplate 将草稿添加到代码模板库
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/code_template/addtotemplate.html
func (c *Client) WxaAddToTemplate(ctx context.Context, draftId string, templateType int) *WxaAddToTemplateResult {
func (c *Client) WxaAddToTemplate(ctx context.Context, draftId string, templateType int) (*WxaAddToTemplateResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
params["draft_id"] = draftId
params["template_type"] = templateType
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/addtotemplate?access_token=%s", c.GetComponentAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaAddToTemplateResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaAddToTemplateResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaAddToTemplateResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -18,25 +18,39 @@ type WxaBindTesterResult struct {
Result WxaBindTesterResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaBindTesterResult(result WxaBindTesterResponse, body []byte, http gorequest.Response, err error) *WxaBindTesterResult {
return &WxaBindTesterResult{Result: result, Body: body, Http: http, Err: err}
func newWxaBindTesterResult(result WxaBindTesterResponse, body []byte, http gorequest.Response) *WxaBindTesterResult {
return &WxaBindTesterResult{Result: result, Body: body, Http: http}
}
// WxaBindTester 绑定微信用户为体验者
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_AdminManagement/Admin.html
func (c *Client) WxaBindTester(ctx context.Context, wechatid string) *WxaBindTesterResult {
func (c *Client) WxaBindTester(ctx context.Context, wechatid string) (*WxaBindTesterResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
params["wechatid"] = wechatid
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/bind_tester?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaBindTesterResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaBindTesterResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaBindTesterResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -26,25 +26,39 @@ type WxaBusinessGetUserPhoneNumberResult struct {
Result WxaBusinessGetUserPhoneNumberResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaBusinessGetUserPhoneNumberResult(result WxaBusinessGetUserPhoneNumberResponse, body []byte, http gorequest.Response, err error) *WxaBusinessGetUserPhoneNumberResult {
return &WxaBusinessGetUserPhoneNumberResult{Result: result, Body: body, Http: http, Err: err}
func newWxaBusinessGetUserPhoneNumberResult(result WxaBusinessGetUserPhoneNumberResponse, body []byte, http gorequest.Response) *WxaBusinessGetUserPhoneNumberResult {
return &WxaBusinessGetUserPhoneNumberResult{Result: result, Body: body, Http: http}
}
// WxaBusinessGetUserPhoneNumber code换取用户手机号。 每个 code 只能使用一次code的有效期为5min
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/phonenumber/phonenumber.getPhoneNumber.html
func (c *Client) WxaBusinessGetUserPhoneNumber(ctx context.Context, code string) *WxaBusinessGetUserPhoneNumberResult {
func (c *Client) WxaBusinessGetUserPhoneNumber(ctx context.Context, code string) (*WxaBusinessGetUserPhoneNumberResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
params.Set("code", code)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/business/getuserphonenumber?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaBusinessGetUserPhoneNumberResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaBusinessGetUserPhoneNumberResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaBusinessGetUserPhoneNumberResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -17,24 +17,38 @@ type WxaCommitResult struct {
Result WxaCommitResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaCommitResult(result WxaCommitResponse, body []byte, http gorequest.Response, err error) *WxaCommitResult {
return &WxaCommitResult{Result: result, Body: body, Http: http, Err: err}
func newWxaCommitResult(result WxaCommitResponse, body []byte, http gorequest.Response) *WxaCommitResult {
return &WxaCommitResult{Result: result, Body: body, Http: http}
}
// WxaCommit 上传小程序代码并生成体验版
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/commit.html
func (c *Client) WxaCommit(ctx context.Context, notMustParams ...gorequest.Params) *WxaCommitResult {
func (c *Client) WxaCommit(ctx context.Context, notMustParams ...gorequest.Params) (*WxaCommitResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/commit?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaCommitResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaCommitResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaCommitResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -17,25 +17,35 @@ type WxaDeleteTemplateResult struct {
Result WxaDeleteTemplateResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaDeleteTemplateResult(result WxaDeleteTemplateResponse, body []byte, http gorequest.Response, err error) *WxaDeleteTemplateResult {
return &WxaDeleteTemplateResult{Result: result, Body: body, Http: http, Err: err}
func newWxaDeleteTemplateResult(result WxaDeleteTemplateResponse, body []byte, http gorequest.Response) *WxaDeleteTemplateResult {
return &WxaDeleteTemplateResult{Result: result, Body: body, Http: http}
}
// WxaDeleteTemplate 删除指定代码模板
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/code_template/deletetemplate.html
func (c *Client) WxaDeleteTemplate(ctx context.Context, templateId string) *WxaDeleteTemplateResult {
func (c *Client) WxaDeleteTemplate(ctx context.Context, templateId string) (*WxaDeleteTemplateResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
params.Set("template_id", templateId)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/deletetemplate?access_token=%s", c.GetComponentAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaDeleteTemplateResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaDeleteTemplateResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaDeleteTemplateResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -21,25 +21,39 @@ type WxaGetAuditStatusResult struct {
Result WxaGetAuditStatusResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaGetAuditStatusResult(result WxaGetAuditStatusResponse, body []byte, http gorequest.Response, err error) *WxaGetAuditStatusResult {
return &WxaGetAuditStatusResult{Result: result, Body: body, Http: http, Err: err}
func newWxaGetAuditStatusResult(result WxaGetAuditStatusResponse, body []byte, http gorequest.Response) *WxaGetAuditStatusResult {
return &WxaGetAuditStatusResult{Result: result, Body: body, Http: http}
}
// WxaGetAuditStatus 查询指定发布审核单的审核状态
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/get_auditstatus.html
func (c *Client) WxaGetAuditStatus(ctx context.Context, auditid int64) *WxaGetAuditStatusResult {
func (c *Client) WxaGetAuditStatus(ctx context.Context, auditid int64) (*WxaGetAuditStatusResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
params.Set("auditid", auditid)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_auditstatus?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaGetAuditStatusResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaGetAuditStatusResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaGetAuditStatusResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -25,20 +25,36 @@ type WxaGetCategoryResult struct {
Result WxaGetCategoryResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaGetCategoryResult(result WxaGetCategoryResponse, body []byte, http gorequest.Response, err error) *WxaGetCategoryResult {
return &WxaGetCategoryResult{Result: result, Body: body, Http: http, Err: err}
func newWxaGetCategoryResult(result WxaGetCategoryResponse, body []byte, http gorequest.Response) *WxaGetCategoryResult {
return &WxaGetCategoryResult{Result: result, Body: body, Http: http}
}
// WxaGetCategory 获取审核时可填写的类目信息
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/category/get_category.html
func (c *Client) WxaGetCategory(ctx context.Context) *WxaGetCategoryResult {
func (c *Client) WxaGetCategory(ctx context.Context) (*WxaGetCategoryResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_category?access_token=%s", c.GetAuthorizerAccessToken(ctx)), map[string]interface{}{}, http.MethodGet)
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_category?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet)
if err != nil {
return nil, err
}
// 定义
var response WxaGetCategoryResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaGetCategoryResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaGetCategoryResult(response, request.ResponseBody, request), nil
}

@ -41,22 +41,36 @@ type WxaGetEffectiveDomainResult struct {
Result WxaGetEffectiveDomainResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaGetEffectiveDomainResult(result WxaGetEffectiveDomainResponse, body []byte, http gorequest.Response, err error) *WxaGetEffectiveDomainResult {
return &WxaGetEffectiveDomainResult{Result: result, Body: body, Http: http, Err: err}
func newWxaGetEffectiveDomainResult(result WxaGetEffectiveDomainResponse, body []byte, http gorequest.Response) *WxaGetEffectiveDomainResult {
return &WxaGetEffectiveDomainResult{Result: result, Body: body, Http: http}
}
// WxaGetEffectiveDomain 获取发布后生效服务器域名列表
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_Basic_Info/get_effective_domain.html
func (c *Client) WxaGetEffectiveDomain(ctx context.Context, notMustParams ...gorequest.Params) *WxaGetEffectiveDomainResult {
func (c *Client) WxaGetEffectiveDomain(ctx context.Context, notMustParams ...gorequest.Params) (*WxaGetEffectiveDomainResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_effective_domain?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaGetEffectiveDomainResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaGetEffectiveDomainResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaGetEffectiveDomainResult(response, request.ResponseBody, request), nil
}

@ -21,22 +21,38 @@ type WxaGetLatestAuditStatusResult struct {
Result WxaGetLatestAuditStatusResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaGetLatestAuditStatusResult(result WxaGetLatestAuditStatusResponse, body []byte, http gorequest.Response, err error) *WxaGetLatestAuditStatusResult {
return &WxaGetLatestAuditStatusResult{Result: result, Body: body, Http: http, Err: err}
func newWxaGetLatestAuditStatusResult(result WxaGetLatestAuditStatusResponse, body []byte, http gorequest.Response) *WxaGetLatestAuditStatusResult {
return &WxaGetLatestAuditStatusResult{Result: result, Body: body, Http: http}
}
// WxaGetLatestAuditStatus 查询最新一次提交的审核状态
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/get_auditstatus.html
func (c *Client) WxaGetLatestAuditStatus(ctx context.Context) *WxaGetLatestAuditStatusResult {
func (c *Client) WxaGetLatestAuditStatus(ctx context.Context) (*WxaGetLatestAuditStatusResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_latest_auditstatus?access_token=%s", c.GetAuthorizerAccessToken(ctx)), map[string]interface{}{}, http.MethodPost)
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_latest_auditstatus?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaGetLatestAuditStatusResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaGetLatestAuditStatusResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaGetLatestAuditStatusResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -18,20 +18,36 @@ type WxaGetPageResult struct {
Result WxaGetPageResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaGetPageResult(result WxaGetPageResponse, body []byte, http gorequest.Response, err error) *WxaGetPageResult {
return &WxaGetPageResult{Result: result, Body: body, Http: http, Err: err}
func newWxaGetPageResult(result WxaGetPageResponse, body []byte, http gorequest.Response) *WxaGetPageResult {
return &WxaGetPageResult{Result: result, Body: body, Http: http}
}
// WxaGetPage 获取已上传的代码的页面列表
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/get_page.html
func (c *Client) WxaGetPage(ctx context.Context) *WxaGetPageResult {
func (c *Client) WxaGetPage(ctx context.Context) (*WxaGetPageResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_page?access_token=%s", c.GetAuthorizerAccessToken(ctx)), map[string]interface{}{}, http.MethodGet)
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_page?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet)
if err != nil {
return nil, err
}
// 定义
var response WxaGetPageResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaGetPageResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaGetPageResult(response, request.ResponseBody, request), nil
}

@ -17,16 +17,24 @@ type WxaGetQrcodeResult struct {
Result WxaGetQrcodeResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaGetQrcodeResult(result WxaGetQrcodeResponse, body []byte, http gorequest.Response, err error) *WxaGetQrcodeResult {
return &WxaGetQrcodeResult{Result: result, Body: body, Http: http, Err: err}
func newWxaGetQrcodeResult(result WxaGetQrcodeResponse, body []byte, http gorequest.Response) *WxaGetQrcodeResult {
return &WxaGetQrcodeResult{Result: result, Body: body, Http: http}
}
// WxaGetQrcode 获取体验版二维码
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/get_qrcode.html
func (c *Client) WxaGetQrcode(ctx context.Context, path string) *WxaGetQrcodeResult {
func (c *Client) WxaGetQrcode(ctx context.Context, path string) (*WxaGetQrcodeResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
if path != "" {
@ -34,8 +42,14 @@ func (c *Client) WxaGetQrcode(ctx context.Context, path string) *WxaGetQrcodeRes
}
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/get_qrcode?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet)
if err != nil {
return nil, err
}
// 定义
var response WxaGetQrcodeResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaGetQrcodeResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaGetQrcodeResult(response, request.ResponseBody, request), nil
}

@ -27,22 +27,34 @@ type WxaGetTemplateDraftListResult struct {
Result WxaGetTemplateDraftListResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaGetTemplateDraftListResult(result WxaGetTemplateDraftListResponse, body []byte, http gorequest.Response, err error) *WxaGetTemplateDraftListResult {
return &WxaGetTemplateDraftListResult{Result: result, Body: body, Http: http, Err: err}
func newWxaGetTemplateDraftListResult(result WxaGetTemplateDraftListResponse, body []byte, http gorequest.Response) *WxaGetTemplateDraftListResult {
return &WxaGetTemplateDraftListResult{Result: result, Body: body, Http: http}
}
// WxaGetTemplateDraftList 获取代码草稿列表
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/code_template/gettemplatedraftlist.html
func (c *Client) WxaGetTemplateDraftList(ctx context.Context) *WxaGetTemplateDraftListResult {
func (c *Client) WxaGetTemplateDraftList(ctx context.Context) (*WxaGetTemplateDraftListResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/gettemplatedraftlist?access_token=%s", c.GetComponentAccessToken(ctx)), map[string]interface{}{}, http.MethodGet)
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/gettemplatedraftlist?access_token=%s", c.GetComponentAccessToken(ctx)), params, http.MethodGet)
if err != nil {
return nil, err
}
// 定义
var response WxaGetTemplateDraftListResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaGetTemplateDraftListResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaGetTemplateDraftListResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -28,22 +28,34 @@ type WxaGetTemplateListResult struct {
Result WxaGetTemplateListResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaGetTemplateListResult(result WxaGetTemplateListResponse, body []byte, http gorequest.Response, err error) *WxaGetTemplateListResult {
return &WxaGetTemplateListResult{Result: result, Body: body, Http: http, Err: err}
func newWxaGetTemplateListResult(result WxaGetTemplateListResponse, body []byte, http gorequest.Response) *WxaGetTemplateListResult {
return &WxaGetTemplateListResult{Result: result, Body: body, Http: http}
}
// WxaGetTemplateList 获取代码模板列表
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/code_template/gettemplatelist.html
func (c *Client) WxaGetTemplateList(ctx context.Context) *WxaGetTemplateListResult {
func (c *Client) WxaGetTemplateList(ctx context.Context) (*WxaGetTemplateListResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/gettemplatelist?access_token=%s", c.GetComponentAccessToken(ctx)), map[string]interface{}{}, http.MethodGet)
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/gettemplatelist?access_token=%s", c.GetComponentAccessToken(ctx)), params, http.MethodGet)
if err != nil {
return nil, err
}
// 定义
var response WxaGetTemplateListResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaGetTemplateListResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaGetTemplateListResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -3,7 +3,6 @@ package wechatopen
import (
"context"
"encoding/json"
"errors"
"fmt"
"go.dtapp.net/gorequest"
"net/http"
@ -28,24 +27,36 @@ type WxaGetVersionInfoResult struct {
Result WxaGetVersionInfoResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaGetVersionInfoResult(result WxaGetVersionInfoResponse, body []byte, http gorequest.Response, err error) *WxaGetVersionInfoResult {
return &WxaGetVersionInfoResult{Result: result, Body: body, Http: http, Err: err}
func newWxaGetVersionInfoResult(result WxaGetVersionInfoResponse, body []byte, http gorequest.Response) *WxaGetVersionInfoResult {
return &WxaGetVersionInfoResult{Result: result, Body: body, Http: http}
}
// WxaGetVersionInfo 查询小程序版本信息
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/get_versioninfo.html
func (c *Client) WxaGetVersionInfo(ctx context.Context) *WxaGetVersionInfoResult {
accessToken := c.GetAuthorizerAccessToken(ctx)
if accessToken == "" {
return newWxaGetVersionInfoResult(WxaGetVersionInfoResponse{}, nil, gorequest.Response{}, errors.New("访问令牌为空"))
func (c *Client) WxaGetVersionInfo(ctx context.Context) (*WxaGetVersionInfoResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/getversioninfo?access_token=%s", accessToken), map[string]interface{}{}, http.MethodPost)
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/getversioninfo?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaGetVersionInfoResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaGetVersionInfoResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaGetVersionInfoResult(response, request.ResponseBody, request), nil
}

@ -19,24 +19,38 @@ type WxaGetWxaCodeUnLimitResult struct {
Result WxaGetWxaCodeUnLimitResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaGetWxaCodeUnLimitResult(result WxaGetWxaCodeUnLimitResponse, body []byte, http gorequest.Response, err error) *WxaGetWxaCodeUnLimitResult {
return &WxaGetWxaCodeUnLimitResult{Result: result, Body: body, Http: http, Err: err}
func newWxaGetWxaCodeUnLimitResult(result WxaGetWxaCodeUnLimitResponse, body []byte, http gorequest.Response) *WxaGetWxaCodeUnLimitResult {
return &WxaGetWxaCodeUnLimitResult{Result: result, Body: body, Http: http}
}
// WxaGetWxaCodeUnLimit 获取小程序码,适用于需要的码数量极多的业务场景。通过该接口生成的小程序码,永久有效,数量暂无限制
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html
func (c *Client) WxaGetWxaCodeUnLimit(ctx context.Context, notMustParams ...gorequest.Params) *WxaGetWxaCodeUnLimitResult {
func (c *Client) WxaGetWxaCodeUnLimit(ctx context.Context, notMustParams ...gorequest.Params) (*WxaGetWxaCodeUnLimitResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/getwxacodeunlimit?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaGetWxaCodeUnLimitResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaGetWxaCodeUnLimitResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaGetWxaCodeUnLimitResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -3,7 +3,6 @@ package wechatopen
import (
"context"
"encoding/json"
"errors"
"fmt"
"go.dtapp.net/gorequest"
"net/http"
@ -21,27 +20,37 @@ type WxaMemberAuthResult struct {
Result WxaMemberAuthResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaMemberAuthResult(result WxaMemberAuthResponse, body []byte, http gorequest.Response, err error) *WxaMemberAuthResult {
return &WxaMemberAuthResult{Result: result, Body: body, Http: http, Err: err}
func newWxaMemberAuthResult(result WxaMemberAuthResponse, body []byte, http gorequest.Response) *WxaMemberAuthResult {
return &WxaMemberAuthResult{Result: result, Body: body, Http: http}
}
// WxaMemberAuth 获取体验者列表
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_AdminManagement/memberauth.html
func (c *Client) WxaMemberAuth(ctx context.Context) *WxaMemberAuthResult {
accessToken := c.GetAuthorizerAccessToken(ctx)
if accessToken == "" {
return newWxaMemberAuthResult(WxaMemberAuthResponse{}, nil, gorequest.Response{}, errors.New("访问令牌为空"))
func (c *Client) WxaMemberAuth(ctx context.Context) (*WxaMemberAuthResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
params["action"] = "get_experiencer"
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/memberauth?access_token=%s", accessToken), params, http.MethodPost)
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/memberauth?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaMemberAuthResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaMemberAuthResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaMemberAuthResult(response, request.ResponseBody, request), nil
}

@ -30,24 +30,34 @@ type WxaModifyDomainResult struct {
Result WxaModifyDomainResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaModifyDomainResult(result WxaModifyDomainResponse, body []byte, http gorequest.Response, err error) *WxaModifyDomainResult {
return &WxaModifyDomainResult{Result: result, Body: body, Http: http, Err: err}
func newWxaModifyDomainResult(result WxaModifyDomainResponse, body []byte, http gorequest.Response) *WxaModifyDomainResult {
return &WxaModifyDomainResult{Result: result, Body: body, Http: http}
}
// WxaModifyDomain 设置服务器域名
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_Basic_Info/Server_Address_Configuration.html
func (c *Client) WxaModifyDomain(ctx context.Context, notMustParams ...gorequest.Params) *WxaModifyDomainResult {
func (c *Client) WxaModifyDomain(ctx context.Context, notMustParams ...gorequest.Params) (*WxaModifyDomainResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/modify_domain?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaModifyDomainResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaModifyDomainResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaModifyDomainResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -17,24 +17,34 @@ type WxaModifyDomainDirectlyResult struct {
Result WxaModifyDomainDirectlyResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaModifyDomainDirectlyResult(result WxaModifyDomainDirectlyResponse, body []byte, http gorequest.Response, err error) *WxaModifyDomainDirectlyResult {
return &WxaModifyDomainDirectlyResult{Result: result, Body: body, Http: http, Err: err}
func newWxaModifyDomainDirectlyResult(result WxaModifyDomainDirectlyResponse, body []byte, http gorequest.Response) *WxaModifyDomainDirectlyResult {
return &WxaModifyDomainDirectlyResult{Result: result, Body: body, Http: http}
}
// WxaModifyDomainDirectly 快速设置小程序服务器域名
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_Basic_Info/modify_domain_directly.html
func (c *Client) WxaModifyDomainDirectly(ctx context.Context, notMustParams ...gorequest.Params) *WxaModifyDomainDirectlyResult {
func (c *Client) WxaModifyDomainDirectly(ctx context.Context, notMustParams ...gorequest.Params) (*WxaModifyDomainDirectlyResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/modify_domain_directly?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaModifyDomainDirectlyResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaModifyDomainDirectlyResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaModifyDomainDirectlyResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -17,24 +17,38 @@ type WxaReleaseResult struct {
Result WxaReleaseResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaReleaseResult(result WxaReleaseResponse, body []byte, http gorequest.Response, err error) *WxaReleaseResult {
return &WxaReleaseResult{Result: result, Body: body, Http: http, Err: err}
func newWxaReleaseResult(result WxaReleaseResponse, body []byte, http gorequest.Response) *WxaReleaseResult {
return &WxaReleaseResult{Result: result, Body: body, Http: http}
}
// WxaRelease 发布已通过审核的小程序
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/release.html
func (c *Client) WxaRelease(ctx context.Context) *WxaReleaseResult {
func (c *Client) WxaRelease(ctx context.Context) (*WxaReleaseResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/release?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaReleaseResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaReleaseResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaReleaseResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -18,24 +18,34 @@ type WxaSecurityApplyPrivacyInterfaceResult struct {
Result WxaSecurityApplyPrivacyInterfaceResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaSecurityApplyPrivacyInterfaceResult(result WxaSecurityApplyPrivacyInterfaceResponse, body []byte, http gorequest.Response, err error) *WxaSecurityApplyPrivacyInterfaceResult {
return &WxaSecurityApplyPrivacyInterfaceResult{Result: result, Body: body, Http: http, Err: err}
func newWxaSecurityApplyPrivacyInterfaceResult(result WxaSecurityApplyPrivacyInterfaceResponse, body []byte, http gorequest.Response) *WxaSecurityApplyPrivacyInterfaceResult {
return &WxaSecurityApplyPrivacyInterfaceResult{Result: result, Body: body, Http: http}
}
// WxaSecurityApplyPrivacyInterface 申请接口
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/apply_api/apply_privacy_interface.html
func (c *Client) WxaSecurityApplyPrivacyInterface(ctx context.Context, notMustParams ...gorequest.Params) *WxaSecurityApplyPrivacyInterfaceResult {
func (c *Client) WxaSecurityApplyPrivacyInterface(ctx context.Context, notMustParams ...gorequest.Params) (*WxaSecurityApplyPrivacyInterfaceResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/security/apply_privacy_interface?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaSecurityApplyPrivacyInterfaceResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaSecurityApplyPrivacyInterfaceResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaSecurityApplyPrivacyInterfaceResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -28,24 +28,34 @@ type WxaSecurityGetPrivacyInterfaceResult struct {
Result WxaSecurityGetPrivacyInterfaceResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaSecurityGetPrivacyInterfaceResult(result WxaSecurityGetPrivacyInterfaceResponse, body []byte, http gorequest.Response, err error) *WxaSecurityGetPrivacyInterfaceResult {
return &WxaSecurityGetPrivacyInterfaceResult{Result: result, Body: body, Http: http, Err: err}
func newWxaSecurityGetPrivacyInterfaceResult(result WxaSecurityGetPrivacyInterfaceResponse, body []byte, http gorequest.Response) *WxaSecurityGetPrivacyInterfaceResult {
return &WxaSecurityGetPrivacyInterfaceResult{Result: result, Body: body, Http: http}
}
// WxaSecurityGetPrivacyInterface 获取接口列表
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/apply_api/get_privacy_interface.html
func (c *Client) WxaSecurityGetPrivacyInterface(ctx context.Context) *WxaSecurityGetPrivacyInterfaceResult {
func (c *Client) WxaSecurityGetPrivacyInterface(ctx context.Context) (*WxaSecurityGetPrivacyInterfaceResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/security/get_privacy_interface?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodGet)
if err != nil {
return nil, err
}
// 定义
var response WxaSecurityGetPrivacyInterfaceResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaSecurityGetPrivacyInterfaceResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaSecurityGetPrivacyInterfaceResult(response, request.ResponseBody, request), nil
}
// ErrcodeInfo 错误描述

@ -18,22 +18,32 @@ type WxaSubmitAuditResult struct {
Result WxaSubmitAuditResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaSubmitAuditResult(result WxaSubmitAuditResponse, body []byte, http gorequest.Response, err error) *WxaSubmitAuditResult {
return &WxaSubmitAuditResult{Result: result, Body: body, Http: http, Err: err}
func newWxaSubmitAuditResult(result WxaSubmitAuditResponse, body []byte, http gorequest.Response) *WxaSubmitAuditResult {
return &WxaSubmitAuditResult{Result: result, Body: body, Http: http}
}
// WxaSubmitAudit 提交审核
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/submit_audit.html
func (c *Client) WxaSubmitAudit(ctx context.Context, notMustParams ...gorequest.Params) *WxaSubmitAuditResult {
func (c *Client) WxaSubmitAudit(ctx context.Context, notMustParams ...gorequest.Params) (*WxaSubmitAuditResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/submit_audit?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaSubmitAuditResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaSubmitAuditResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaSubmitAuditResult(response, request.ResponseBody, request), nil
}

@ -17,16 +17,20 @@ type WxaUnbindTesterResult struct {
Result WxaUnbindTesterResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newWxaUnbindTesterResult(result WxaUnbindTesterResponse, body []byte, http gorequest.Response, err error) *WxaUnbindTesterResult {
return &WxaUnbindTesterResult{Result: result, Body: body, Http: http, Err: err}
func newWxaUnbindTesterResult(result WxaUnbindTesterResponse, body []byte, http gorequest.Response) *WxaUnbindTesterResult {
return &WxaUnbindTesterResult{Result: result, Body: body, Http: http}
}
// WxaUnbindTester 解除绑定体验者
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_AdminManagement/unbind_tester.html
func (c *Client) WxaUnbindTester(ctx context.Context, wechatid, userstr string) *WxaUnbindTesterResult {
func (c *Client) WxaUnbindTester(ctx context.Context, wechatid, userstr string) (*WxaUnbindTesterResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
// 参数
params := gorequest.NewParams()
if wechatid != "" {
@ -35,8 +39,14 @@ func (c *Client) WxaUnbindTester(ctx context.Context, wechatid, userstr string)
params["userstr"] = userstr
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/unbind_tester?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response WxaUnbindTesterResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newWxaUnbindTesterResult(response, request.ResponseBody, request, err)
if err != nil {
return nil, err
}
return newWxaUnbindTesterResult(response, request.ResponseBody, request), nil
}

Loading…
Cancel
Save