apis

package
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 26, 2022 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Provider      = "provider"       // 第三方服务商
	ThirdApp      = "third_app"      // 第三方应用
	CustomizedApp = "customized_app" // 自建应用代开发
)

标识

View Source
const (
	MediaTypeImage = "image"
	MediaTypeVoice = "voice"
	MediaTypeVideo = "video"
	MediaTypeFile  = "file"
)
View Source
const DefaultQYAPIHost = "https://qyapi.weixin.qq.com"

DefaultQYAPIHost 默认企业微信 API Host

View Source
const ErrCode701002 = 701002

不合法的license帐号

View Source
const ErrCode701003 = 701003

激活码已绑定

View Source
const ErrCode701004 = 701004

激活码未绑定

View Source
const ErrCode701005 = 701005

无效的license订单

View Source
const ErrCode701006 = 701006

不合法的license帐号类型

View Source
const ErrCode701007 = 701007

不合法的帐号类型

View Source
const ErrCode701008 = 701008

没有合法的有互通license的用户

View Source
const ErrCode701009 = 701009

灰度期间,month只能为1个月

View Source
const ErrCode701010 = 701010

所有的account_code都非法

View Source
const ErrCode701011 = 701011

userid已经绑定

View Source
const ErrCode701012 = 701012

active_code 超过绑定有效期

View Source
const ErrCode701013 = 701013

灰度期间只允许续期一次

View Source
const ErrCode701014 = 701014

jobid最多关联100w个userid

View Source
const ErrCode701015 = 701015

没有第三方或者代开发授权,不允许下单

View Source
const ErrCode701016 = 701016

帐号未激活或者已经过期

View Source
const ErrCode701017 = 701017

帐号30天内迁移过

View Source
const ErrCode701018 = 701018

迁移帐号重叠,接收帐号已有相同类型的帐号

View Source
const ErrCode701019 = 701019

用户userid非法或者跨企业

View Source
const ErrCode701020 = 701020

有重复的userid

View Source
const ErrCode701021 = 701021

非法的激活码

View Source
const ErrCode701022 = 701022

激活码还在生成中,稍后再试

View Source
const ErrCode701023 = 701023

有重复的激活码

View Source
const ErrCode701024 = 701024

批量操作全部失败了

View Source
const ErrCode701025 = 701025

批量操作传了空列表

View Source
const ErrCode701026 = 701026

列表数量超过最大值

View Source
const HttpTTL = 1 * time.Minute
View Source
const PathGetCorpToken = "/cgi-bin/service/get_corp_token"

Variables

View Source
var (
	ErrCodeMap = map[ErrCode]string{
		ErrCodeServiceUnavailable: "系统繁忙",
		ErrCode40011:              "发送素材过大,请使用链接发送",
		ErrCode40029:              "登录过期,请点击按钮重新登录",
		ErrCode40082:              errPrefix + "invalid suite_token",
		ErrCode41022:              errPrefix + "suite_access_token missing",
		ErrCode42001:              errPrefix + "access_token已过期",
		ErrCode42009:              errPrefix + "suite_access_token已过期",
		ErrCode45033:              "接口并发调用超过限制",
		ErrCode60011:              "无权限访问",
		ErrCode92002:              "不允许跨企业调用",
	}
)

重定义error,转为友好的错误提示

View Source
var FastClient = CreateFastHttpClient()
View Source
var InvalidTokenErrCode = map[int64]struct{}{
	ErrCode40014: struct{}{},
	ErrCode40082: struct{}{},
	ErrCode42001: struct{}{},
	ErrCode42009: struct{}{},
}

不合法或过期的 access_token 错误码

Functions

func CreateFastHttpClient

func CreateFastHttpClient() fasthttp.Client

func Retry

func Retry(o backoff.Operation) error

Types

type AddContactWayConclusions

type AddContactWayConclusions struct {
	Image       AddContactWayConclusionsImage       `json:"image"`
	Link        AddContactWayConclusionsLink        `json:"link"`
	Miniprogram AddContactWayConclusionsMiniprogram `json:"miniprogram"`
	Text        AddContactWayConclusionsText        `json:"text"`
}

type AddContactWayConclusionsImage

type AddContactWayConclusionsImage struct {
	MediaID string `json:"media_id"`
}
type AddContactWayConclusionsLink struct {
	Desc   string `json:"desc"`
	Picurl string `json:"picurl"`
	Title  string `json:"title"`
	URL    string `json:"url"`
}

type AddContactWayConclusionsMiniprogram

type AddContactWayConclusionsMiniprogram struct {
	Appid      string `json:"appid"`
	Page       string `json:"page"`
	PicMediaID string `json:"pic_media_id"`
	Title      string `json:"title"`
}

type AddContactWayConclusionsText

type AddContactWayConclusionsText struct {
	Content string `json:"content"`
}

type AddMsgTemplateAttachments

type AddMsgTemplateAttachments struct {
	File        AddMsgTemplateAttachmentsFile        `json:"file"`
	Image       AddMsgTemplateAttachmentsImage       `json:"image"`
	Link        AddMsgTemplateAttachmentsLink        `json:"link"`
	Miniprogram AddMsgTemplateAttachmentsMiniprogram `json:"miniprogram"`
	// Msgtype 附件类型,可选image、link、miniprogram或者video,必填
	Msgtype string                         `json:"msgtype"`
	Video   AddMsgTemplateAttachmentsVideo `json:"video"`
}

type AddMsgTemplateAttachmentsFile

type AddMsgTemplateAttachmentsFile struct {
	MediaID string `json:"media_id"`
}

type AddMsgTemplateAttachmentsImage

type AddMsgTemplateAttachmentsImage struct {
	MediaID string `json:"media_id"`
	// PicURL 图片的链接,<strong>仅可使用<a href="#13219">上传图片</a>接口得到的链接</strong>
	PicURL string `json:"pic_url"`
}
type AddMsgTemplateAttachmentsLink struct {
	// Desc 图文消息的描述,最多512个<strong>字节</strong>
	Desc string `json:"desc"`
	// Picurl 图文消息封面的url,最长2048个字节
	Picurl string `json:"picurl"`
	// Title 图文消息标题,最长128个字节,必填
	// Title 小程序消息标题,最多64个<strong>字节</strong>,必填
	Title string `json:"title"`
	// URL 图文消息的链接,最长2048个字节,必填
	URL string `json:"url"`
}

type AddMsgTemplateAttachmentsMiniprogram

type AddMsgTemplateAttachmentsMiniprogram struct {
	// Appid 小程序appid(可以在微信公众平台上查询),必须是<strong>关联到企业的小程序应用</strong>,必填
	Appid string `json:"appid"`
	// Page 小程序page路径,必填
	Page string `json:"page"`
	// PicMediaID 小程序消息封面的mediaid,封面图建议尺寸为520*416,必填
	PicMediaID string `json:"pic_media_id"`
	// Title 图文消息标题,最长128个字节,必填
	// Title 小程序消息标题,最多64个<strong>字节</strong>,必填
	Title string `json:"title"`
}

type AddMsgTemplateAttachmentsVideo

type AddMsgTemplateAttachmentsVideo struct {
	MediaID string `json:"media_id"`
}

type AddMsgTemplateText

type AddMsgTemplateText struct {
	// Content 消息文本内容,最多4000个<strong>字节</strong>
	Content string `json:"content"`
}

type ApiClient

type ApiClient struct {
	CorpId             string // 企业ID
	CorpProviderSecret string // 企业密钥

	// 第三方应用/代开发必填字段
	AppSuiteId     string // 应用唯一身份标识
	AppSuiteSecret string // 应用密钥
	AppSuiteTicket string // 企业微信服务器会定时(每十分钟)推送ticket。ticket会实时变更,并用于后续接口的调用。

	// 授权企业必填字段
	CompanyPermanentCode string // 企业授权给应用的永久授权码
	AgentId              int    // 授权方应用id

	ThirdAppClient *ApiClient // 第三方应用client,用于授权企业API客户端获取suite_access_token,目前用于第三方应用获取企业凭证接口
	// contains filtered or unexported fields
}

ApiClient 企业微信客户端

func NewAuthCorpApiClient

func NewAuthCorpApiClient(corpId, companyPermanentCode string, AgentId int, thirdAppClient *ApiClient, opts Options) *ApiClient

第三方应用授权企业API客户端初始化

func NewCustomizedApiClient

func NewCustomizedApiClient(corpId, appSuiteId, appSuiteSecret, appSuiteTicket string, opts Options) *ApiClient

自建应用代开发API客户端初始化,第一次调用这个接口时,appSuiteTicket为空字符串

func NewCustomizedAuthCorpApiClient

func NewCustomizedAuthCorpApiClient(corpId, companyPermanentCode string, AgentId int, customizedAppClient *ApiClient, opts Options) *ApiClient

自建应用代开发授权企业API客户端初始化

func NewProviderApiClient

func NewProviderApiClient(corpId, corpProviderSecret string, opts Options) *ApiClient

第三方服务商API客户端初始化

func NewThirdAppApiClient

func NewThirdAppApiClient(corpId, appSuiteId, appSuiteSecret, appSuiteTicket string, opts Options) *ApiClient

第三方应用API客户端初始化,第一次调用这个接口时,appSuiteTicket为空字符串

func (*ApiClient) ExecActiveAccountLicense

func (c *ApiClient) ExecActiveAccountLicense(req ReqActiveAccountLicense) (RespActiveAccountLicense, error)

execActiveAccountLicense 激活帐号 文档:https://developer.work.weixin.qq.com/document/path/95553#激活帐号

func (*ApiClient) ExecAddContactWayExternalcontact

func (c *ApiClient) ExecAddContactWayExternalcontact(req ReqAddContactWayExternalcontact) (RespAddContactWayExternalcontact, error)

execAddContactWayExternalcontact 配置客户联系「联系我」方式 文档:https://developer.work.weixin.qq.com/document/path/92577#配置客户联系「联系我」方式

func (*ApiClient) ExecAddCorpTagExternalcontact

func (c *ApiClient) ExecAddCorpTagExternalcontact(req ReqAddCorpTagExternalcontact) (RespAddCorpTagExternalcontact, error)

execAddCorpTagExternalcontact 添加企业客户标签 文档:https://developer.work.weixin.qq.com/document/path/92696#添加企业客户标签

func (*ApiClient) ExecAddMsgTemplateExternalcontact

func (c *ApiClient) ExecAddMsgTemplateExternalcontact(req ReqAddMsgTemplateExternalcontact) (RespAddMsgTemplateExternalcontact, error)

execAddMsgTemplateExternalcontact 创建企业群发 文档:https://developer.work.weixin.qq.com/document/path/92698#创建企业群发

func (*ApiClient) ExecBatchActiveAccountLicense

func (c *ApiClient) ExecBatchActiveAccountLicense(req ReqBatchActiveAccountLicense) (RespBatchActiveAccountLicense, error)

execBatchActiveAccountLicense 批量激活帐号 文档:https://developer.work.weixin.qq.com/document/path/95553#批量激活帐号

func (*ApiClient) ExecBatchGetActiveInfoByCodeLicense

func (c *ApiClient) ExecBatchGetActiveInfoByCodeLicense(req ReqBatchGetActiveInfoByCodeLicense) (RespBatchGetActiveInfoByCodeLicense, error)

execBatchGetActiveInfoByCodeLicense 批量获取激活码详情 文档:https://developer.work.weixin.qq.com/document/path/95552#批量获取激活码详情

func (*ApiClient) ExecBatchTransferLicenseLicense

func (c *ApiClient) ExecBatchTransferLicenseLicense(req ReqBatchTransferLicenseLicense) (RespBatchTransferLicenseLicense, error)

execBatchTransferLicenseLicense 帐号继承 文档:https://developer.work.weixin.qq.com/document/path/95673#帐号继承

func (*ApiClient) ExecCloseTempChatExternalcontact

func (c *ApiClient) ExecCloseTempChatExternalcontact(req ReqCloseTempChatExternalcontact) (RespCloseTempChatExternalcontact, error)

execCloseTempChatExternalcontact 结束临时会话 文档:https://developer.work.weixin.qq.com/document/path/92577#结束临时会话

func (*ApiClient) ExecCorpidToOpencorpidService

func (c *ApiClient) ExecCorpidToOpencorpidService(req ReqCorpidToOpencorpidService) (RespCorpidToOpencorpidService, error)

execCorpidToOpencorpidService 1.4 corpid转换 文档:https://developer.work.weixin.qq.com/document/path/95327#1.4 corpid转换

func (*ApiClient) ExecCreateNewOrderLicense

func (c *ApiClient) ExecCreateNewOrderLicense(req ReqCreateNewOrderLicense) (RespCreateNewOrderLicense, error)

execCreateNewOrderLicense 下单购买帐号 文档:https://developer.work.weixin.qq.com/document/path/95644#下单购买帐号

func (*ApiClient) ExecCreateRenewOrderJobLicense

func (c *ApiClient) ExecCreateRenewOrderJobLicense(req ReqCreateRenewOrderJobLicense) (RespCreateRenewOrderJobLicense, error)

execCreateRenewOrderJobLicense 创建续期任务 文档:https://developer.work.weixin.qq.com/document/path/95646#创建续期任务

func (*ApiClient) ExecDelContactWayExternalcontact

func (c *ApiClient) ExecDelContactWayExternalcontact(req ReqDelContactWayExternalcontact) (RespDelContactWayExternalcontact, error)

execDelContactWayExternalcontact 删除企业已配置的「联系我」方式 文档:https://developer.work.weixin.qq.com/document/path/92577#删除企业已配置的「联系我」方式

func (*ApiClient) ExecDelCorpTagExternalcontact

func (c *ApiClient) ExecDelCorpTagExternalcontact(req ReqDelCorpTagExternalcontact) (RespDelCorpTagExternalcontact, error)

execDelCorpTagExternalcontact 删除企业客户标签 文档:https://developer.work.weixin.qq.com/document/path/92696#删除企业客户标签

func (*ApiClient) ExecEditCorpTagExternalcontact

func (c *ApiClient) ExecEditCorpTagExternalcontact(req ReqEditCorpTagExternalcontact) (RespEditCorpTagExternalcontact, error)

execEditCorpTagExternalcontact 编辑企业客户标签 文档:https://developer.work.weixin.qq.com/document/path/92696#编辑企业客户标签

func (*ApiClient) ExecFinishExternalUseridMigration

func (c *ApiClient) ExecFinishExternalUseridMigration(req ReqFinishExternalUseridMigration) (RespFinishExternalUseridMigration, error)

func (*ApiClient) ExecGetActiveInfoByCodeLicense

func (c *ApiClient) ExecGetActiveInfoByCodeLicense(req ReqGetActiveInfoByCodeLicense) (RespGetActiveInfoByCodeLicense, error)

execGetActiveInfoByCodeLicense 获取激活码详情 文档:https://developer.work.weixin.qq.com/document/path/95552#获取激活码详情

func (*ApiClient) ExecGetActiveInfoByUserLicense

func (c *ApiClient) ExecGetActiveInfoByUserLicense(req ReqGetActiveInfoByUserLicense) (RespGetActiveInfoByUserLicense, error)

execGetActiveInfoByUserLicense 获取成员的激活详情 文档:https://developer.work.weixin.qq.com/document/path/95555#获取成员的激活详情

func (*ApiClient) ExecGetAdminListService

func (c *ApiClient) ExecGetAdminListService(req ReqGetAdminListService) (RespGetAdminListService, error)

execGetAdminListService 获取应用的管理员列表 文档:https://developer.work.weixin.qq.com/document/path/90606#获取应用的管理员列表

func (*ApiClient) ExecGetAppLicenseInfoLicense added in v1.0.11

func (c *ApiClient) ExecGetAppLicenseInfoLicense(req ReqGetAppLicenseInfoLicense) (RespGetAppLicenseInfoLicense, error)

execGetAppLicenseInfoLicense 获取应用的接口许可状态 文档:https://developer.work.weixin.qq.com/document/path/95844#获取应用的接口许可状态

func (*ApiClient) ExecGetAuthInfoService

func (c *ApiClient) ExecGetAuthInfoService(req ReqGetAuthInfoService) (RespGetAuthInfoService, error)

execGetAuthInfoService 获取企业授权信息 文档:https://developer.work.weixin.qq.com/document/path/90604#获取企业授权信息

func (*ApiClient) ExecGetAutoActiveStatusLicense added in v1.0.13

func (c *ApiClient) ExecGetAutoActiveStatusLicense(req ReqGetAutoActiveStatusLicense) (RespGetAutoActiveStatusLicense, error)

execGetAutoActiveStatusLicense 查询企业的许可自动激活状态 文档:https://developer.work.weixin.qq.com/document/path/95874#查询企业的许可自动激活状态

func (*ApiClient) ExecGetByUserBatch

func (c *ApiClient) ExecGetByUserBatch(req ReqGetByUserBatch) (RespGetByUserBatch, error)

execGetByUserBatch 批量获取客户详情 文档:https://developer.work.weixin.qq.com/document/path/93010#批量获取客户详情

func (*ApiClient) ExecGetContactWayExternalcontact

func (c *ApiClient) ExecGetContactWayExternalcontact(req ReqGetContactWayExternalcontact) (RespGetContactWayExternalcontact, error)

execGetContactWayExternalcontact 获取企业已配置的「联系我」方式 文档:https://developer.work.weixin.qq.com/document/path/92577#获取企业已配置的「联系我」方式

func (*ApiClient) ExecGetCorpTagListExternalcontact

func (c *ApiClient) ExecGetCorpTagListExternalcontact(req ReqGetCorpTagListExternalcontact) (RespGetCorpTagListExternalcontact, error)

execGetCorpTagListExternalcontact 获取企业标签库 文档:https://developer.work.weixin.qq.com/document/path/92696#获取企业标签库

func (*ApiClient) ExecGetCorpTokenService

func (c *ApiClient) ExecGetCorpTokenService(req ReqGetCorpTokenService) (RespGetCorpTokenService, error)

execGetCorpTokenService 获取企业凭证 文档:https://developer.work.weixin.qq.com/document/path/90605#获取企业凭证

func (*ApiClient) ExecGetDepartment

func (c *ApiClient) ExecGetDepartment(req ReqGetDepartment) (RespGetDepartment, error)

execGetDepartment 获取单个部门详情 文档:https://developer.work.weixin.qq.com/document/path/95407#获取单个部门详情

func (*ApiClient) ExecGetExternalcontact

func (c *ApiClient) ExecGetExternalcontact(req ReqGetExternalcontact) (RespGetExternalcontact, error)

execGetExternalcontact 获取客户详情 文档:https://developer.work.weixin.qq.com/document/path/92265#获取客户详情

func (*ApiClient) ExecGetGroupchat

func (c *ApiClient) ExecGetGroupchat(req ReqGetGroupchat) (RespGetGroupchat, error)

execGetGroupchat 获取客户群详情 文档:https://developer.work.weixin.qq.com/document/path/92707#获取客户群详情

func (*ApiClient) ExecGetGroupmsgListV2Externalcontact

func (c *ApiClient) ExecGetGroupmsgListV2Externalcontact(req ReqGetGroupmsgListV2Externalcontact) (RespGetGroupmsgListV2Externalcontact, error)

execGetGroupmsgListV2Externalcontact 获取群发记录列表 文档:https://developer.work.weixin.qq.com/document/path/93338#获取群发记录列表

func (*ApiClient) ExecGetGroupmsgSendResultExternalcontact

func (c *ApiClient) ExecGetGroupmsgSendResultExternalcontact(req ReqGetGroupmsgSendResultExternalcontact) (RespGetGroupmsgSendResultExternalcontact, error)

execGetGroupmsgSendResultExternalcontact 获取企业群发成员执行结果 文档:https://developer.work.weixin.qq.com/document/path/93338#获取企业群发成员执行结果

func (*ApiClient) ExecGetGroupmsgTaskExternalcontact

func (c *ApiClient) ExecGetGroupmsgTaskExternalcontact(req ReqGetGroupmsgTaskExternalcontact) (RespGetGroupmsgTaskExternalcontact, error)

execGetGroupmsgTaskExternalcontact 获取群发成员发送任务列表 文档:https://developer.work.weixin.qq.com/document/path/93338#获取群发成员发送任务列表

func (*ApiClient) ExecGetJSAPITicket

func (c *ApiClient) ExecGetJSAPITicket(req JsAPITicketReq) (JsAPITicketResp, error)

ExecGetJSAPITicket 获取企业的jsapi_ticket

func (*ApiClient) ExecGetJSAPITicketAgentConfig

func (c *ApiClient) ExecGetJSAPITicketAgentConfig(req JsAPITicketAgentConfigReq) (JsAPITicketResp, error)

ExecGetJSAPITicketAgentConfig 获取应用的jsapi_ticket

func (*ApiClient) ExecGetOrderLicense

func (c *ApiClient) ExecGetOrderLicense(req ReqGetOrderLicense) (RespGetOrderLicense, error)

execGetOrderLicense 获取订单详情 文档:https://developer.work.weixin.qq.com/document/path/95648#获取订单详情

func (*ApiClient) ExecGetPermanentCodeService

func (c *ApiClient) ExecGetPermanentCodeService(req ReqGetPermanentCodeService) (RespGetPermanentCodeService, error)

execGetPermanentCodeService 获取企业永久授权码 文档:https://developer.work.weixin.qq.com/document/path/90603#获取企业永久授权码

func (*ApiClient) ExecGetProviderTokenService

func (c *ApiClient) ExecGetProviderTokenService(req ReqGetProviderTokenService) (RespGetProviderTokenService, error)

execGetProviderTokenService 获取服务商凭证 文档:https://developer.work.weixin.qq.com/document/path/91200#获取服务商凭证

func (*ApiClient) ExecGetRegisterCodeService

func (c *ApiClient) ExecGetRegisterCodeService(req ReqGetRegisterCodeService) (RespGetRegisterCodeService, error)

execGetRegisterCodeService 获取注册码 文档:https://developer.work.weixin.qq.com/document/path/90581#获取注册码

func (*ApiClient) ExecGetRegisterUrl

func (c *ApiClient) ExecGetRegisterUrl(registerCode string) string

推广二维码方式安装应用:获取应用安装链接 文档:https://developer.work.weixin.qq.com/document/path/90578

func (*ApiClient) ExecGetSuiteTokenService

func (c *ApiClient) ExecGetSuiteTokenService(req ReqGetSuiteTokenService) (RespGetSuiteTokenService, error)

execGetSuiteTokenService 获取第三方应用凭证 文档:https://developer.work.weixin.qq.com/document/path/90600#获取第三方应用凭证

func (*ApiClient) ExecGetUnassignedListExternalcontact

func (c *ApiClient) ExecGetUnassignedListExternalcontact(req ReqGetUnassignedListExternalcontact) (RespGetUnassignedListExternalcontact, error)

execGetUnassignedListExternalcontact 离职继承-获取待分配的离职成员列表 文档:https://developer.work.weixin.qq.com/document/path/92273#获取待分配的离职成员列表

func (*ApiClient) ExecGetUser

func (c *ApiClient) ExecGetUser(req ReqGetUser) (RespGetUser, error)

execGetUser 读取成员 文档:https://developer.work.weixin.qq.com/document/path/90332#读取成员

func (*ApiClient) ExecGetuserdetail3RdService

func (c *ApiClient) ExecGetuserdetail3RdService(req ReqGetuserdetail3RdService) (RespGetuserdetail3RdService, error)

execGetuserdetail3RdService 获取访问用户敏感信息 文档:https://developer.work.weixin.qq.com/document/path/91122#获取访问用户敏感信息

func (*ApiClient) ExecGetuserinfo3RdService

func (c *ApiClient) ExecGetuserinfo3RdService(req ReqGetuserinfo3RdService) (RespGetuserinfo3RdService, error)

execGetuserinfo3RdService 获取访问用户身份 文档:https://developer.work.weixin.qq.com/document/path/91121#获取访问用户身份

func (*ApiClient) ExecGroupchatStatistic

func (c *ApiClient) ExecGroupchatStatistic(req ReqGroupchatStatistic) (RespGroupchatStatistic, error)

func (*ApiClient) ExecListActivedAccountLicense

func (c *ApiClient) ExecListActivedAccountLicense(req ReqListActivedAccountLicense) (RespListActivedAccountLicense, error)

execListActivedAccountLicense 获取企业的帐号列表 文档:https://developer.work.weixin.qq.com/document/path/95544#获取企业的帐号列表

func (*ApiClient) ExecListContactWayExternalcontact

func (c *ApiClient) ExecListContactWayExternalcontact(req ReqListContactWayExternalcontact) (RespListContactWayExternalcontact, error)

execListContactWayExternalcontact 获取企业已配置的「联系我」列表 文档:https://developer.work.weixin.qq.com/document/path/92577#获取企业已配置的「联系我」列表

func (*ApiClient) ExecListDepartment

func (c *ApiClient) ExecListDepartment(req ReqListDepartment) (RespListDepartment, error)

execListDepartment 获取部门列表 文档:https://developer.work.weixin.qq.com/document/path/90344#获取部门列表

func (*ApiClient) ExecListExternalcontact

func (c *ApiClient) ExecListExternalcontact(req ReqListExternalcontact) (RespListExternalcontact, error)

execListExternalcontact 获取客户列表 文档:https://developer.work.weixin.qq.com/document/path/92264#获取客户列表

func (*ApiClient) ExecListGroupchat

func (c *ApiClient) ExecListGroupchat(req ReqListGroupchat) (RespListGroupchat, error)

execListGroupchat 获取客户群列表 文档:https://developer.work.weixin.qq.com/document/path/93414#获取客户群列表

func (*ApiClient) ExecListOrderAccountLicense

func (c *ApiClient) ExecListOrderAccountLicense(req ReqListOrderAccountLicense) (RespListOrderAccountLicense, error)

execListOrderAccountLicense 获取订单中的帐号列表 文档:https://developer.work.weixin.qq.com/document/path/95649#获取订单中的帐号列表

func (*ApiClient) ExecListOrderLicense

func (c *ApiClient) ExecListOrderLicense(req ReqListOrderLicense) (RespListOrderLicense, error)

execListOrderLicense 获取订单列表 文档:https://developer.work.weixin.qq.com/document/path/95647#获取订单列表

func (*ApiClient) ExecListUser

func (c *ApiClient) ExecListUser(req ReqListUser) (RespListUser, error)

execListUser 获取部门成员详情 文档:https://developer.work.weixin.qq.com/document/path/90337#获取部门成员详情

func (*ApiClient) ExecMarkTagExternalcontact

func (c *ApiClient) ExecMarkTagExternalcontact(req ReqMarkTagExternalcontact) (RespMarkTagExternalcontact, error)

execMarkTagExternalcontact 编辑客户企业标签 文档:https://developer.work.weixin.qq.com/document/path/92697#编辑客户企业标签

func (*ApiClient) ExecOnjobTransferGroupchat added in v1.0.13

func (c *ApiClient) ExecOnjobTransferGroupchat(req ReqOnjobTransferGroupchat) (RespOnjobTransferGroupchat, error)

execOnjobTransferGroupchat 分配在职成员的客户群 文档:https://developer.work.weixin.qq.com/document/path/95703#分配在职成员的客户群

func (*ApiClient) ExecRemarkExternalcontact

func (c *ApiClient) ExecRemarkExternalcontact(req ReqRemarkExternalcontact) (RespRemarkExternalcontact, error)

execRemarkExternalcontact 修改客户备注信息 文档:https://developer.work.weixin.qq.com/document/path/92694#修改客户备注信息

func (*ApiClient) ExecSentMessageCard

func (c *ApiClient) ExecSentMessageCard(req ReqSentMessageCard) (RespSentMessageCard, error)

发送应用消息 文档:https://developer.work.weixin.qq.com/document/path/90372#接口定义

func (*ApiClient) ExecSentMessageCardMiniNotice

func (c *ApiClient) ExecSentMessageCardMiniNotice(req ReqSentMessageCardMiniNotice) (RespSentMessageCard, error)

发送应用消息-小程序通知消息 文档:https://developer.work.weixin.qq.com/document/path/90372#接口定义

func (*ApiClient) ExecSentMessageCardTemplateCard

func (c *ApiClient) ExecSentMessageCardTemplateCard(req ReqSentMessageCardTemplateCard) (RespSentMessageCard, error)

发送应用消息-模板卡片消息 文档:https://developer.work.weixin.qq.com/document/path/90372#接口定义

func (*ApiClient) ExecSentMessageCardTemplateMsg

func (c *ApiClient) ExecSentMessageCardTemplateMsg(req ReqSentMessageCardTemplateMsg) (RespSentMessageCard, error)

发送应用消息-模板消息 文档:https://developer.work.weixin.qq.com/document/path/90372#接口定义

func (*ApiClient) ExecSetAutoActiveStatusLicense added in v1.0.13

func (c *ApiClient) ExecSetAutoActiveStatusLicense(req ReqSetAutoActiveStatusLicense) (RespSetAutoActiveStatusLicense, error)

execSetAutoActiveStatusLicense 设置企业的许可自动激活状态 文档:https://developer.work.weixin.qq.com/document/path/95873#设置企业的许可自动激活状态

func (*ApiClient) ExecSimplelistDepartment

func (c *ApiClient) ExecSimplelistDepartment(req ReqSimplelistDepartment) (RespSimplelistDepartment, error)

execSimplelistDepartment 获取子部门ID列表 文档:https://developer.work.weixin.qq.com/document/path/95406#获取子部门ID列表

func (*ApiClient) ExecSimplelistUser

func (c *ApiClient) ExecSimplelistUser(req ReqSimplelistUser) (RespSimplelistUser, error)

execSimplelistUser 获取部门成员 文档:https://developer.work.weixin.qq.com/document/path/90336#获取部门成员

func (*ApiClient) ExecSubmitOrderJobLicense

func (c *ApiClient) ExecSubmitOrderJobLicense(req ReqSubmitOrderJobLicense) (RespSubmitOrderJobLicense, error)

execSubmitOrderJobLicense 提交续期订单 文档:https://developer.work.weixin.qq.com/document/path/95646#提交续期订单

func (*ApiClient) ExecTransferCustomerExternalcontact

func (c *ApiClient) ExecTransferCustomerExternalcontact(req ReqTransferCustomerExternalcontact) (RespTransferCustomerExternalcontact, error)

execTransferCustomerExternalcontact 在职继承-分配在职成员的客户 文档:https://developer.work.weixin.qq.com/document/path/94096#分配在职成员的客户

func (*ApiClient) ExecTransferCustomerResigned

func (c *ApiClient) ExecTransferCustomerResigned(req ReqTransferCustomerResigned) (RespTransferCustomerResigned, error)

execTransferCustomerResigned 离职继承-分配离职成员的客户 文档:https://developer.work.weixin.qq.com/document/path/94100#分配离职成员的客户

func (*ApiClient) ExecTransferGroupchat

func (c *ApiClient) ExecTransferGroupchat(req ReqTransferGroupchat) (RespTransferGroupchat, error)

execTransferGroupchat 离职继承-分配离职成员的客户群 文档:https://developer.work.weixin.qq.com/document/path/93242#分配离职成员的客户群

func (*ApiClient) ExecTransferResultExternalcontact

func (c *ApiClient) ExecTransferResultExternalcontact(req ReqTransferResultExternalcontact) (RespTransferResultExternalcontact, error)

execTransferResultExternalcontact 在职继承-查询客户接替状态 文档:https://developer.work.weixin.qq.com/document/path/94097#查询客户接替状态

func (*ApiClient) ExecTransferResultResigned

func (c *ApiClient) ExecTransferResultResigned(req ReqTransferResultResigned) (RespTransferResultResigned, error)

execTransferResultResigned 离职继承-查询客户接替状态 文档:https://developer.work.weixin.qq.com/document/path/94101#查询客户接替状态

func (*ApiClient) ExecUnionidToExternalUserid3RdExternalcontact

func (c *ApiClient) ExecUnionidToExternalUserid3RdExternalcontact(req ReqUnionidToExternalUserid3RdExternalcontact) (RespUnionidToExternalUserid3RdExternalcontact, error)

execUnionidToExternalUserid3RdExternalcontact 4.2 unionid查询external_userid 文档:https://developer.work.weixin.qq.com/document/path/95327#4.2 unionid查询external_userid

func (*ApiClient) ExecUpdateContactWayExternalcontact

func (c *ApiClient) ExecUpdateContactWayExternalcontact(req ReqUpdateContactWayExternalcontact) (RespUpdateContactWayExternalcontact, error)

execUpdateContactWayExternalcontact 更新企业已配置的「联系我」方式 文档:https://developer.work.weixin.qq.com/document/path/92577#更新企业已配置的「联系我」方式

func (*ApiClient) ExecUpdateTemplateCardMessage

func (c *ApiClient) ExecUpdateTemplateCardMessage(req ReqUpdateTemplateCardMessage) (RespUpdateTemplateCardMessage, error)

文档:https://developer.work.weixin.qq.com/document/path/94945#更新按钮为不可点击状态

func (*ApiClient) ExecUploadMedia

func (c *ApiClient) ExecUploadMedia(req ReqUploadMedia) (RespUploadMedia, error)

execUploadMedia 上传临时素材 文档:https://developer.work.weixin.qq.com/document/path/90389#上传临时素材

func (*ApiClient) ExecUserBehaviorData

func (c *ApiClient) ExecUserBehaviorData(req ReqUserBehaviorData) (RespUserBehaviorData, error)

func (*ApiClient) ExecUseridToOpenuseridBatch

func (c *ApiClient) ExecUseridToOpenuseridBatch(req ReqUseridToOpenuseridBatch) (RespUseridToOpenuseridBatch, error)

execUseridToOpenuseridBatch 2.4 userid的转换 文档:https://developer.work.weixin.qq.com/document/path/95327#2.4 userid的转换

func (*ApiClient) GetCorpQualification

func (c *ApiClient) GetCorpQualification(req ReqGetCorpQualification) (RespGetCorpQualification, error)

func (*ApiClient) GetJSAPITicket

func (c *ApiClient) GetJSAPITicket() (string, error)

GetJSAPITicket 获取 JSAPI_ticket

func (*ApiClient) GetJSAPITicketAgentConfig

func (c *ApiClient) GetJSAPITicketAgentConfig() (string, error)

GetJSAPITicketAgentConfig 获取 JSAPI_ticket_agent_config

func (*ApiClient) GetJsSdkSign added in v1.0.13

func (c *ApiClient) GetJsSdkSign(corpId, link, jsapiTicket string, agentId int) GetJsSdkSignResp

获取前端 JS-SDK 使用权限签名 文档:https://developer.work.weixin.qq.com/document/path/90506

func (*ApiClient) GetThirdOauthUrl

func (c *ApiClient) GetThirdOauthUrl(req GetThirdOauthUrlReq) string

构造oauth2链接

func (*ApiClient) GetToken

func (c *ApiClient) GetToken() (token string, err error)

func (*ApiClient) RefreshSuiteTicket

func (c *ApiClient) RefreshSuiteTicket(ticket string, ttl time.Duration)

更新suite_ticket

func (*ApiClient) RemoveToken

func (c *ApiClient) RemoveToken()

移除不合法或失效的的access_token/jsapi_ticket

func (*ApiClient) RemoveTokenByHttpClient

func (c *ApiClient) RemoveTokenByHttpClient(httpBody string)

移除不合法或过期的的access_token

func (*ApiClient) UploadTempMedia

func (c *ApiClient) UploadTempMedia(req UploadMediaReq) (UploadMediaResult, error)

UploadMedia 上传临时素材

type AuthCorp

type AuthCorp struct {
	PermanentCode string
	AgentId       int
}

需初始化的参数

type ClientError

type ClientError struct {
	// Code 错误码,0表示成功,非0表示调用失败。
	// 开发者需根据errcode是否为0判断是否调用成功(errcode意义请见全局错误码)。
	Code ErrCode
	// Msg 错误信息,调用失败会有相关的错误信息返回。
	// 仅作参考,后续可能会有变动,因此不可作为是否调用成功的判据。
	Msg string
}

ClientError 企业微信客户端 SDK 的响应错误

func (*ClientError) Error

func (e *ClientError) Error() string

type CommonResp

type CommonResp struct {
	ErrCode int64  `json:"errcode"`
	ErrMsg  string `json:"errmsg"`
}

func (*CommonResp) IsOK

func (x *CommonResp) IsOK() bool

IsOK 响应体是否为一次成功请求的响应

实现依据: https://developer.work.weixin.qq.com/document/10013

> 企业微信所有接口,返回包里都有errcode、errmsg。(除部分旧接口只有在失败时才会返回errcode,但没什么影响,因为结构体中errcode默认值为0,即默认成功) > 开发者需根据errcode是否为0判断是否调用成功(errcode意义请见全局错误码)。 > 而errmsg仅作参考,后续可能会有变动,因此不可作为是否调用成功的判据。

func (*CommonResp) TryIntoErr

func (x *CommonResp) TryIntoErr() error

type DcsAppSuiteTicket

type DcsAppSuiteTicket interface {
	Get(cacheKey string) string                          // 获取suite_ticket
	Set(cacheKey, suiteTicket string, ttl time.Duration) // 设置suite_ticket
}

分布式app_suite_ticket:获取和设置suite_ticket的值,自行实现该接口的具体逻辑,比如使用redis方案【企微服务器每十分钟推送一次suite_ticket】

type DcsToken

type DcsToken interface {
	Get(cacheKey string) TokenInfo                                     // 获取access_token
	Set(cacheKey string, tokenInfo TokenInfo, ttl time.Duration) error // 设置access_token,ttl:缓存生存时间
	Del(cacheKey string) error                                         // 删除缓存
	Lock(cacheKey string, ttl time.Duration) bool                      // 加锁,返回成功或失败
	Unlock(cacheKey string) error                                      // 释放锁
}

分布式access_token:获取和设置access_token的值,自行实现该接口的具体逻辑,比如使用redis方案

type ErrCode

type ErrCode = int64
const ErrCode2000002 ErrCode = 2000002

ErrCode2000002 CorpId参数无效 排查方法: 指定的CorpId不存在

const ErrCode301002 ErrCode = 301002

ErrCode301002 无权限操作指定的应用 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:301002) 无权限操作指定的应用。access_token来源需要有指定应用的权限。 比如说,[发消息接口](https://open.work.weixin.qq.com/api/doc#10167) 指定了参数 “agentid”: 14,但使用的 access_token 是通过应用agentid: 100032 生成的调用凭证,这种就会报该错误码。 access_token的权限查询,可在 [错误码查询工具](https://open.work.weixin.qq.com/devtool/query) 确认。

const ErrCode301005 ErrCode = 301005

ErrCode301005 不允许删除创建者 排查方法: 创建者不允许从通讯录中删除。如果需要删除该成员,需要先在WEB管理端转移创建者身份。

const ErrCode301007 ErrCode = 301007

ErrCode301007 授权企业被解散

const ErrCode301012 ErrCode = 301012

ErrCode301012 参数 position 不合法 排查方法: 长度不允许超过128个字符

const ErrCode301013 ErrCode = 301013

ErrCode301013 参数 telephone 不合法 排查方法: telephone必须由1-32位的纯数字或’-‘号组成。

const ErrCode301014 ErrCode = 301014

ErrCode301014 参数 english_name 不合法 排查方法: 参数如果有传递,不允许为空字符串,同时不能超过64字节,只能是由字母、数字、点(.)、减号(-)、空格或下划线(_)组成

const ErrCode301015 ErrCode = 301015

ErrCode301015 参数 mediaid 不合法 排查方法: 请检查 mediaid 来源,应该通过[上传临时素材](https://developer.work.weixin.qq.com/document/path/90313#10112)的图片类型获得mediaid

const ErrCode301016 ErrCode = 301016

ErrCode301016 上传语音文件不符合系统要求 排查方法: 语音文件的系统限制,参考[上传的媒体文件限制](https://developer.work.weixin.qq.com/document/path/90313#10112/上传的媒体文件限制)

const ErrCode301017 ErrCode = 301017

ErrCode301017 上传语音文件仅支持AMR格式 排查方法: 语音文件的系统限制,参考[上传的媒体文件限制](https://developer.work.weixin.qq.com/document/path/90313#10112/上传的媒体文件限制)

const ErrCode301021 ErrCode = 301021

ErrCode301021 参数 userid 无效 排查方法: 至少有一个userid不存在于通讯录中

const ErrCode301022 ErrCode = 301022

ErrCode301022 获取打卡数据失败 排查方法: 系统失败,可重试处理

const ErrCode301023 ErrCode = 301023

ErrCode301023 useridlist非法或超过限额 排查方法: 列表数量不能为0且不超过100

const ErrCode301024 ErrCode = 301024

ErrCode301024 获取打卡记录时间间隔超限 排查方法: 保证开始时间大于0 且结束时间大于 0 且结束时间大于开始时间,且间隔少于一个月

const ErrCode301025 ErrCode = 301025

ErrCode301025 审批开放接口参数错误 排查方法: 请参考参数说明正确填写

const ErrCode301036 ErrCode = 301036

ErrCode301036 不允许更新该用户的userid 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:301036) 不允许更新该用户的userid。确认: 只有当userid由系统自动生成时,才被允许修改一次 比如,邀请关注时用户提交登记信息,审批通过后系统会自动分配userid,此时可修改userid

const ErrCode301039 ErrCode = 301039

ErrCode301039 请求参数错误,请检查输入参数 排查方法: -

const ErrCode301042 ErrCode = 301042

ErrCode301042 ip白名单限制,请求ip不在设置白名单范围 排查方法: -

const ErrCode301048 ErrCode = 301048

ErrCode301048 sdkfileid对应的文件不存在或已过期 排查方法: -

const ErrCode301052 ErrCode = 301052

ErrCode301052 会话存档服务已过期 排查方法: -

const ErrCode301053 ErrCode = 301053

ErrCode301053 会话存档服务未开启 排查方法: -

const ErrCode301058 ErrCode = 301058

ErrCode301058 拉取会话数据请求超过大小限制,可减少limit参数 排查方法: -

const ErrCode301059 ErrCode = 301059

ErrCode301059 非内部群,不提供数据 排查方法: -

const ErrCode301060 ErrCode = 301060

ErrCode301060 拉取同意情况请求量过大,请减少到100个参数以下 排查方法: -

const ErrCode301061 ErrCode = 301061

ErrCode301061 userid或者exteropenid用户不存在 排查方法: -

const ErrCode302003 ErrCode = 302003

ErrCode302003 批量导入任务的文件中userid有重复 排查方法: -

const ErrCode302004 ErrCode = 302004

ErrCode302004 组织架构不合法(1不是一棵树,2 多个一样的partyid,3 partyid空,4 partyid name 空,5 同一个父节点下有两个子节点 部门名字一样 可能是以上情况,请一一排查) 排查方法: -

const ErrCode302005 ErrCode = 302005

ErrCode302005 批量导入系统失败,请重新尝试导入 排查方法: -

const ErrCode302006 ErrCode = 302006

ErrCode302006 批量导入任务的文件中partyid有重复 排查方法: -

const ErrCode302007 ErrCode = 302007

ErrCode302007 批量导入任务的文件中,同一个部门下有两个子部门名字一样 排查方法: -

const ErrCode40001 ErrCode = 40001

ErrCode40001 不合法的secret参数 排查方法: secret在应用详情/通讯录管理助手可查看

const ErrCode40003 ErrCode = 40003

ErrCode40003 无效的UserID 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:40003) 不合法的UserID。确认: 1)有效的UserID需要满足:长度1~64字符,由英文字母、数字、中划线、下划线以及点号构成。 2)除了创建用户,其余使用UserID的接口,还要保证UserID必须在通讯录中存在。

const ErrCode40004 ErrCode = 40004

ErrCode40004 不合法的媒体文件类型 排查方法: 不满足系统文件要求。参考:[上传的媒体文件限制](https://developer.work.weixin.qq.com/document/path/90313#10112)

const ErrCode40005 ErrCode = 40005

ErrCode40005 不合法的type参数 排查方法: 合法的type取值,参考:[上传临时素材](https://developer.work.weixin.qq.com/document/path/90313#10112)

const ErrCode40006 ErrCode = 40006

ErrCode40006 不合法的文件大小 排查方法: 系统文件要求,参考:[上传的媒体文件限制](https://developer.work.weixin.qq.com/document/path/90313#10112)

const ErrCode40007 ErrCode = 40007

ErrCode40007 不合法的media_id参数 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:40007) 不合法的媒体文件。确认: 1)媒体文件ID的获取方式,是否存在。注:上传临时素材生成的medida_id,有效期是3天。 2)媒体文件类型应符合接口要求(比如发送图片消息,此时不能用音频文件的media_id)。

const ErrCode40008 ErrCode = 40008

ErrCode40008 不合法的msgtype参数 排查方法: 合法的msgtype取值,参考:[消息类型](https://developer.work.weixin.qq.com/document/path/90313#10167)

const ErrCode40009 ErrCode = 40009

ErrCode40009 上传图片大小不是有效值 排查方法: 图片大小的系统限制,参考[上传的媒体文件限制](https://developer.work.weixin.qq.com/document/path/90313#10112/上传的媒体文件限制)

const ErrCode40011 ErrCode = 40011

ErrCode40011 上传视频大小不是有效值 排查方法: 视频大小的系统限制,参考[上传的媒体文件限制](https://developer.work.weixin.qq.com/document/path/90313#10112/上传的媒体文件限制)

const ErrCode40013 ErrCode = 40013

ErrCode40013 不合法的CorpID 排查方法: 需确认CorpID是否填写正确,在 web管理端-设置 可查看

const ErrCode40014 ErrCode = 40014

ErrCode40014 不合法的access_token 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:40014) access_token参数错误。确认: 1)access_token的获取方式 2)access_token是否已过期 可以重新获取一次access_token解决

const ErrCode40016 ErrCode = 40016

ErrCode40016 不合法的按钮个数 排查方法: 菜单按钮1-3个

const ErrCode40017 ErrCode = 40017

ErrCode40017 不合法的按钮类型 排查方法: 支持的类型,参考:[按钮类型](https://developer.work.weixin.qq.com/document/path/90313#10786)

const ErrCode40018 ErrCode = 40018

ErrCode40018 不合法的按钮名字长度 排查方法: 长度应不超过16个字节

const ErrCode40019 ErrCode = 40019

ErrCode40019 不合法的按钮KEY长度 排查方法: 长度应不超过128字节

const ErrCode40020 ErrCode = 40020

ErrCode40020 不合法的按钮URL长度 排查方法: 长度应不超过1024字节

const ErrCode40022 ErrCode = 40022

ErrCode40022 不合法的子菜单级数 排查方法: 只能包含一级菜单和二级菜单

const ErrCode40023 ErrCode = 40023

ErrCode40023 不合法的子菜单按钮个数 排查方法: 子菜单按钮1-5个

const ErrCode40024 ErrCode = 40024

ErrCode40024 不合法的子菜单按钮类型 排查方法: 支持的类型,参考:[按钮类型](https://developer.work.weixin.qq.com/document/path/90313#10786)

const ErrCode40025 ErrCode = 40025

ErrCode40025 不合法的子菜单按钮名字长度 排查方法: 支持的类型,参考:[按钮类型](https://developer.work.weixin.qq.com/document/path/90313#10786)

const ErrCode40026 ErrCode = 40026

ErrCode40026 不合法的子菜单按钮KEY长度 排查方法: -

const ErrCode40027 ErrCode = 40027

ErrCode40027 不合法的子菜单按钮URL长度 排查方法: 长度应不超过1024字节

const ErrCode40029 ErrCode = 40029

ErrCode40029 不合法的oauth_code 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:40029) oauth_code参数错误。确认: 1)code只能消费一次,不能重复消费。比如说,是否存在多个服务器同时消费同一code情况。 2)code需要在有效期间消费(5分钟),过期会自动失效。

const ErrCode40031 ErrCode = 40031

ErrCode40031 不合法的UserID列表 排查方法: 指定的UserID列表,部分UserID不在通讯录中

const ErrCode40032 ErrCode = 40032

ErrCode40032 不合法的UserID列表长度 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:40032) 不合法的UserID列表长度。确认: 1)[发消息接口](https://open.work.weixin.qq.com/api/doc#10167),最多指定1000人。 2)[批量删除成员接口](https://open.work.weixin.qq.com/api/doc#10060),最多指定200人。

const ErrCode40033 ErrCode = 40033

ErrCode40033 不合法的请求字符 排查方法: 不能包含\uxxxx格式的字符

const ErrCode40035 ErrCode = 40035

ErrCode40035 不合法的参数 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:40035) 不合法的参数。确认: 1)userlist和partylist不能同时为空 2)userlist包含的成员个数不能大于1000 3)partylist包含的部门个数不能大于100 4)指定的userlist和partylist为数组格式,不是字符串格式。比如说, “userlist”:[ “user1”,”user2”],而不是 “userlist”: “user1|user2”

const ErrCode40036 ErrCode = 40036

ErrCode40036 不合法的模板id长度 排查方法: -

const ErrCode40037 ErrCode = 40037

ErrCode40037 无效的模板id 排查方法: -

const ErrCode40039 ErrCode = 40039

ErrCode40039 不合法的url长度 排查方法: url长度限制1024个字节

const ErrCode40050 ErrCode = 40050

ErrCode40050 chatid不存在 排查方法: 会话需要先创建后,才可修改会话详情或者发起聊天

const ErrCode40054 ErrCode = 40054

ErrCode40054 不合法的子菜单url域名 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:40054 40055) 菜单设置URL不合法。确认: 1)链接需要带上协议头。以 http:// 或者 https:// 开头。比如:https://work.weixin.qq.com 2)微信支付的链接,必须以 weixin://wxpay/bizpayurl 开头

const ErrCode40055 ErrCode = 40055

ErrCode40055 不合法的菜单url域名 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:40054 40055) 菜单设置URL不合法。确认: 1)链接需要带上协议头。以 http:// 或者 https:// 开头。比如:https://work.weixin.qq.com 2)微信支付的链接,必须以 weixin://wxpay/bizpayurl 开头

const ErrCode40056 ErrCode = 40056

ErrCode40056 不合法的agentid 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:40056) agentid不合法。确认: 1)agentid为整型数字 2)在web管理端存在该应用

const ErrCode40057 ErrCode = 40057

ErrCode40057 不合法的callbackurl或者callbackurl验证失败

const ErrCode40058 ErrCode = 40058

ErrCode40058 不合法的参数 排查方法: 传递参数不符合系统要求,需要参照具体API接口说明

const ErrCode40059 ErrCode = 40059

ErrCode40059 不合法的上报地理位置标志位 排查方法: 开关标志位只能填 0 或者 1

const ErrCode40063 ErrCode = 40063

ErrCode40063 参数为空 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:40063) 必填的参数缺少,需要参照具体API接口说明。同时确认: 1)Http请求方法,是否正确。比如说接口要求以Post方法,就不能使用Get方式 2)Http请求参数,是否正确。比如说,接口内容要求json结构体,就不能以url参数传递或者form-data方式。

const ErrCode40066 ErrCode = 40066

ErrCode40066 不合法的部门列表 排查方法: 部门列表为空,或者至少存在一个部门ID不存在于通讯录中

const ErrCode40068 ErrCode = 40068

ErrCode40068 不合法的标签ID 排查方法: 标签ID未指定,或者指定的标签ID不存在

const ErrCode40070 ErrCode = 40070

ErrCode40070 指定的标签范围结点全部无效 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:40070) 指定的标签范围结点全部无效。确认: 1)指定的参数格式是否正确。比如,”userlist”:[ “user1”],而不是指定为 “userlist” : “user1”。 2)指定的成员或者部门,是否存在于通讯录中。

const ErrCode40071 ErrCode = 40071

ErrCode40071 不合法的标签名字 排查方法: 标签名字已经存在

const ErrCode40072 ErrCode = 40072

ErrCode40072 不合法的标签名字长度 排查方法: 不允许为空,最大长度限制为32个字(汉字或英文字母)

const ErrCode40073 ErrCode = 40073

ErrCode40073 不合法的openid 排查方法: openid不存在,需确认获取来源

const ErrCode40074 ErrCode = 40074

ErrCode40074 news消息不支持保密消息类型 排查方法: 图文消息支持保密类型需改用mpnews

const ErrCode40077 ErrCode = 40077

ErrCode40077 不合法的pre_auth_code参数 排查方法: 预授权码不存在,参考:[获取预授权码](https://developer.work.weixin.qq.com/document/path/90313#10975/获取预授权码)

const ErrCode40078 ErrCode = 40078

ErrCode40078 不合法的auth_code参数 排查方法: 需确认获取来源,并且只能消费一次

const ErrCode40080 ErrCode = 40080

ErrCode40080 不合法的suite_secret 排查方法: 套件secret可在第三方管理端套件详情查看

const ErrCode40082 ErrCode = 40082

ErrCode40082 不合法的suite_token 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:40082) suite_token参数错误。确认: 1)suite_token的获取方式 2)suite_token是否已过期 可以重新获取一次suite_token解决

const ErrCode40083 ErrCode = 40083

ErrCode40083 不合法的suite_id 排查方法: suite_id不存在

const ErrCode40084 ErrCode = 40084

ErrCode40084 不合法的permanent_code参数 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:40084) 不合法的永久授权码。确认: 1)是否填写有误 2)企业是否已取消授权该套件 3)永久授权码不能跨服务商使用

const ErrCode40085 ErrCode = 40085

ErrCode40085 不合法的的suite_ticket参数 排查方法: suite_ticket不存在或者已失效

const ErrCode40086 ErrCode = 40086

ErrCode40086 不合法的第三方应用appid 排查方法: 至少有一个不存在应用id

const ErrCode40088 ErrCode = 40088

ErrCode40088 jobid不存在 排查方法: 请检查 jobid 来源

const ErrCode40089 ErrCode = 40089

ErrCode40089 批量任务的结果已清理 排查方法: 系统仅保存最近5次批量任务的结果。可在通讯录查看实际导入情况

const ErrCode40091 ErrCode = 40091

ErrCode40091 secret不合法 排查方法: 可能用了别的企业的secret

const ErrCode40092 ErrCode = 40092

ErrCode40092 导入文件存在不合法的内容 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:40092) 导入文件存在不合法的内容。确认: 1)不允许上传空文件 2)文件内容缺少必填字段,比如:手机/邮箱,姓名,UserID或者部门。

const ErrCode40093 ErrCode = 40093

ErrCode40093 jsapi签名错误 排查方法: 请检查用于签名的jsapi_ticket是否是正确的,是否过期。可以通过获取相应jsapi_ticket接口获取当前的jsapi_ticket跟用于签名的jsapi_ticket比对是否一致,若jsapi_ticket还在有效期内,当前获取到的jsapi_ticket是一致的。若jsapi_ticket没问题,请检查用于签名的url参数是不是正确的, url(当前网页的URL, 不包含#及其后面部分)。

const ErrCode40094 ErrCode = 40094

ErrCode40094 不合法的URL 排查方法: 缺少主页URL参数,或者URL不合法(链接需要带上协议头,以 http:// 或者 https:// 开头)

const ErrCode40096 ErrCode = 40096

ErrCode40096 不合法的外部联系人userid 排查方法: -

const ErrCode40097 ErrCode = 40097

ErrCode40097 该成员尚未离职 排查方法: 离职成员外部联系人转移接口要求转出用户必须已经离职

const ErrCode40098 ErrCode = 40098

ErrCode40098 成员尚未实名认证 排查方法: 确认传入的userid是已经过实名认证成员的

const ErrCode40099 ErrCode = 40099

ErrCode40099 外部联系人的数量已达上限 排查方法: -

const ErrCode40100 ErrCode = 40100

ErrCode40100 此用户的外部联系人已经在转移流程中 排查方法: -

const ErrCode40102 ErrCode = 40102

ErrCode40102 域名或IP不可与应用市场上架应用重复 排查方法: -

const ErrCode40123 ErrCode = 40123

ErrCode40123 上传临时图片素材,图片格式非法 排查方法: 请确认上传的内容是否为合法的图片内容

const ErrCode40124 ErrCode = 40124

ErrCode40124 推广活动里的sn禁止绑定 排查方法: -

const ErrCode40125 ErrCode = 40125

ErrCode40125 无效的openuserid参数 排查方法: -

const ErrCode40126 ErrCode = 40126

ErrCode40126 企业标签个数达到上限,最多为3000个 排查方法: -

const ErrCode40127 ErrCode = 40127

ErrCode40127 不支持的uri schema 排查方法: 检查uri链接的schema是否符合参数要求

const ErrCode40128 ErrCode = 40128

ErrCode40128 客户转接过于频繁(90天内只允许转接一次,同一个客户最多只能转接两次) 排查方法: -

const ErrCode40129 ErrCode = 40129

ErrCode40129 当前客户正在转接中 排查方法: -

const ErrCode40130 ErrCode = 40130

ErrCode40130 原跟进人与接手人一样,不可继承 排查方法: -

const ErrCode40131 ErrCode = 40131

ErrCode40131 handover_userid 并不是外部联系人的跟进人 排查方法: -

const ErrCode41001 ErrCode = 41001

ErrCode41001 缺少access_token参数 排查方法: -

const ErrCode41002 ErrCode = 41002

ErrCode41002 缺少corpid参数 排查方法: -

const ErrCode41004 ErrCode = 41004

ErrCode41004 缺少secret参数 排查方法: -

const ErrCode41006 ErrCode = 41006

ErrCode41006 缺少media_id参数 排查方法: media_id为调用接口必填参数,请确认是否有传递

const ErrCode41008 ErrCode = 41008

ErrCode41008 缺少auth code参数 排查方法: -

const ErrCode41009 ErrCode = 41009

ErrCode41009 缺少userid参数 排查方法: -

const ErrCode41010 ErrCode = 41010

ErrCode41010 缺少url参数 排查方法: -

const ErrCode41011 ErrCode = 41011

ErrCode41011 缺少agentid参数 排查方法: -

const ErrCode41016 ErrCode = 41016

ErrCode41016 缺少title参数 排查方法: 发送图文消息,标题是必填参数。请确认参数是否有传递。

const ErrCode41017 ErrCode = 41017

ErrCode41017 缺少tagid参数 排查方法: -

const ErrCode41019 ErrCode = 41019

ErrCode41019 缺少 department 参数 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:41019) 缺少 department 参数。确认: 1)创建成员接口,成员所属部门是必填信息。 2)所属部门是数字数组格式,不是字符串。如:”department: [1, 2]

const ErrCode41021 ErrCode = 41021

ErrCode41021 缺少suite_id参数 排查方法: -

const ErrCode41022 ErrCode = 41022

ErrCode41022 缺少suite_access_token参数 排查方法: -

const ErrCode41023 ErrCode = 41023

ErrCode41023 缺少suite_ticket参数 排查方法: -

const ErrCode41024 ErrCode = 41024

ErrCode41024 缺少secret参数 排查方法: -

const ErrCode41025 ErrCode = 41025

ErrCode41025 缺少permanent_code参数 排查方法: -

const ErrCode41033 ErrCode = 41033

ErrCode41033 缺少 description 参数 排查方法: [发送文本卡片消息接口](https://developer.work.weixin.qq.com/document/path/90313#10167/文本卡片消息),description 是必填字段

const ErrCode41035 ErrCode = 41035

ErrCode41035 缺少外部联系人userid参数 排查方法: -

const ErrCode41036 ErrCode = 41036

ErrCode41036 不合法的企业对外简称 排查方法: 企业对外简称必须是认证过的,如果要改回默认简称,传空字符串把对外简称清除就可以了

const ErrCode41037 ErrCode = 41037

ErrCode41037 缺少「联系我」type参数 排查方法: -

const ErrCode41038 ErrCode = 41038

ErrCode41038 缺少「联系我」scene参数 排查方法: -

const ErrCode41039 ErrCode = 41039

ErrCode41039 无效的「联系我」type参数 排查方法: -

const ErrCode41040 ErrCode = 41040

ErrCode41040 无效的「联系我」scene参数 排查方法: -

const ErrCode41041 ErrCode = 41041

ErrCode41041 「联系我」使用人数超过限制 排查方法: 默认限制不超过100人(包括部门展开后的人数)

const ErrCode41042 ErrCode = 41042

ErrCode41042 无效的「联系我」style参数 排查方法: -

const ErrCode41043 ErrCode = 41043

ErrCode41043 缺少「联系我」config_id参数 排查方法: -

const ErrCode41044 ErrCode = 41044

ErrCode41044 无效的「联系我」config_id参数 排查方法: -

const ErrCode41045 ErrCode = 41045

ErrCode41045 API添加「联系我」达到数量上限 排查方法: -

const ErrCode41046 ErrCode = 41046

ErrCode41046 缺少企业群发消息id 排查方法: -

const ErrCode41047 ErrCode = 41047

ErrCode41047 无效的企业群发消息id 排查方法: -

const ErrCode41048 ErrCode = 41048

ErrCode41048 无可发送的客户 排查方法: -

const ErrCode41049 ErrCode = 41049

ErrCode41049 缺少欢迎语code参数 排查方法: -

const ErrCode41050 ErrCode = 41050

ErrCode41050 无效的欢迎语code 排查方法: 欢迎语code(welcome_code)具有时效性,须在添加好友后20秒内使用

const ErrCode41051 ErrCode = 41051

ErrCode41051 客户和服务人员已经开始聊天了 排查方法: 已经开始的聊天的客户不能发送欢迎语

const ErrCode41052 ErrCode = 41052

ErrCode41052 无效的发送时间 排查方法: -

const ErrCode41053 ErrCode = 41053

ErrCode41053 客户未同意聊天存档 排查方法: 须外部联系人同意服务须知后,成员才可发送欢迎语

const ErrCode41054 ErrCode = 41054

ErrCode41054 该用户尚未激活 排查方法: -

const ErrCode41055 ErrCode = 41055

ErrCode41055 群欢迎语模板数量达到上限 排查方法: -

const ErrCode41056 ErrCode = 41056

ErrCode41056 外部联系人id类型不正确 排查方法: -

const ErrCode41057 ErrCode = 41057

ErrCode41057 企业或服务商未绑定微信开发者账号 排查方法: -

const ErrCode41059 ErrCode = 41059

ErrCode41059 缺少moment_id参数 排查方法: -

const ErrCode41060 ErrCode = 41060

ErrCode41060 不合法的moment_id参数 排查方法: -

const ErrCode41061 ErrCode = 41061

ErrCode41061 不合法朋友圈发送成员userid,当前朋友圈并非此用户发表 排查方法: -

const ErrCode41062 ErrCode = 41062

ErrCode41062 企业创建的朋友圈尚未被成员userid发表 排查方法: -

const ErrCode41063 ErrCode = 41063

ErrCode41063 群发消息正在被派发中,请稍后再试 排查方法: [创建企业群发](https://developer.work.weixin.qq.com/document/path/90313#15836)后,立刻调用[获取企业的全部群发记录](https://developer.work.weixin.qq.com/document/path/90313#25429)的相关接口,将可能出现该错误

const ErrCode41064 ErrCode = 41064

ErrCode41064 附件大小超过限制 排查方法: -

const ErrCode41065 ErrCode = 41065

ErrCode41065 无效的附件类型 排查方法: -

const ErrCode41066 ErrCode = 41066

ErrCode41066 用户视频号名称错误 排查方法: -

const ErrCode41102 ErrCode = 41102

ErrCode41102 缺少菜单名 排查方法: -

const ErrCode42001 ErrCode = 42001

ErrCode42001 access_token已过期 排查方法: access_token有时效性,需要重新获取一次

const ErrCode42007 ErrCode = 42007

ErrCode42007 pre_auth_code已过期 排查方法: pre_auth_code有时效性,需要重新获取一次

const ErrCode42009 ErrCode = 42009

ErrCode42009 suite_access_token已过期 排查方法: suite_access_token有时效性,需要重新获取一次

const ErrCode42012 ErrCode = 42012

ErrCode42012 jsapi_ticket不可用,一般是没有正确调用接口来创建jsapi_ticket 排查方法: 如果是agentConfig使用,请特别注意是否是使用”[获取应用身份的ticket](https://developer.work.weixin.qq.com/document/path/90313#10029/获取应用的jsapi_ticket)“来获取jsapi_ticket

const ErrCode42013 ErrCode = 42013

ErrCode42013 小程序未登陆或登录态已经过期 排查方法: 需要重新走登陆流程

const ErrCode42014 ErrCode = 42014

ErrCode42014 任务卡片消息的task_id不合法 排查方法: -

const ErrCode42015 ErrCode = 42015

ErrCode42015 更新的消息的应用与发送消息的应用不匹配 排查方法: -

const ErrCode42016 ErrCode = 42016

ErrCode42016 更新的task_id不存在 排查方法: -

const ErrCode42017 ErrCode = 42017

ErrCode42017 按钮key值不存在 排查方法: -

const ErrCode42018 ErrCode = 42018

ErrCode42018 按钮key值不合法 排查方法: -

const ErrCode42019 ErrCode = 42019

ErrCode42019 缺少按钮key值不合法 排查方法: -

const ErrCode42020 ErrCode = 42020

ErrCode42020 缺少按钮名称 排查方法: -

const ErrCode42021 ErrCode = 42021

ErrCode42021 device_access_token 过期 排查方法: -

const ErrCode42022 ErrCode = 42022

ErrCode42022 code已经被使用过。只能使用一次 排查方法: -

const ErrCode43004 ErrCode = 43004

ErrCode43004 指定的userid未绑定微信或未关注微工作台(原企业号) 排查方法: 需要成员使用微信登录企业微信或者关注微工作台才能获取openid

const ErrCode43009 ErrCode = 43009

ErrCode43009 企业未验证主体 排查方法: -

const ErrCode43012 ErrCode = 43012

ErrCode43012 应用需配置回调url 排查方法: -

const ErrCode44001 ErrCode = 44001

ErrCode44001 多媒体文件为空 排查方法: 确认header和body的内容正确。

const ErrCode44004 ErrCode = 44004

ErrCode44004 文本消息content参数为空 排查方法: 发文本消息content为必填参数,且不能为空

const ErrCode45001 ErrCode = 45001

ErrCode45001 多媒体文件大小超过限制 排查方法: 图片不可超过5M;音频不可超过5M;文件不可超过20M

const ErrCode45002 ErrCode = 45002

ErrCode45002 消息内容大小超过限制 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:45002) 消息内容大小超过限制。确认: 1)文本消息类型:最长不超过2048个字节。 2)图文消息类型:最长不超过666k个字节

const ErrCode45004 ErrCode = 45004

ErrCode45004 应用description参数长度不符合系统限制 排查方法: 设置应用若带有description参数,则长度必须为4至120个字符

const ErrCode45007 ErrCode = 45007

ErrCode45007 语音播放时间超过限制 排查方法: 语音播放时长不能超过60秒

const ErrCode45008 ErrCode = 45008

ErrCode45008 图文消息的文章数量不符合系统限制 排查方法: 图文消息的文章数量不能超过8条

const ErrCode45009 ErrCode = 45009

ErrCode45009 接口调用超过限制 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:45009) 接口调用超过限制。 1) 具体频率策略,参考:[主动调用频率限制](https://open.work.weixin.qq.com/api/doc#10785) 2) 频率拦截时长一般与调用的限制时长相同,比如说是分钟级别的限制,则在中频率后的1分钟后自动解除。小时、天、以及月份,也是以此类推。 3) 我们对接口调用的频率限制是比较宽松的。对于接口中频率的调用,考虑以下优化: * 接口实现时,仅系统失败需要重试。其余错误码,应该排查下调用失败原因 * 发消息应该控制合理调用,对于单个成员来说,一天收到大量的推送,体验是不好的 4) 部分频率拦截,可自助解封,访问:[频率自助解封工具](https://open.work.weixin.qq.com/wwopen/devtool/checkCorpSpamBlock) 5) 发送应用消息的频率拦截,可用api接口查询各个应用消息发送统计,访问:[查询应用消息发送统计](https://developer.work.weixin.qq.com/document/path/92369)

const ErrCode45022 ErrCode = 45022

ErrCode45022 应用name参数长度不符合系统限制 排查方法: 设置应用若带有name参数,则不允许为空,且不超过32个字符

const ErrCode45024 ErrCode = 45024

ErrCode45024 帐号数量超过上限 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:45024) 帐号数量超过上限。请确认: 1)通讯录是否有无效或者无用的帐号,可以删除,让出额度 2)提高帐号上限,可以提交重新认证或者申请扩容

const ErrCode45026 ErrCode = 45026

ErrCode45026 触发删除用户数的保护 排查方法: 限制参考:[全量覆盖成员](https://developer.work.weixin.qq.com/document/path/90313#10138/全量覆盖成员)

const ErrCode45029 ErrCode = 45029

ErrCode45029 回包大小超过上限 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:45029) 回包大小超过上限。请确认: 1)/cgi-bin/user/list:由于通讯录组织架构庞大,建议按部门分别拉取,同时不要指定fetch_child=1。

const ErrCode45032 ErrCode = 45032

ErrCode45032 图文消息author参数长度超过限制 排查方法: 最长64个字节

const ErrCode45033 ErrCode = 45033

ErrCode45033 接口并发调用超过限制(某些接口是并发调用数不能超过5个) 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:45033) 接口并发调用超过限制。出现这种拦截限制,一般是开发者的程序有bug,导致对同一份资源有过高的并发且持续不断的请求,例如对一个media_id一直持续不断请求“获取临时素材”接口。

const ErrCode46003 ErrCode = 46003

ErrCode46003 菜单未设置 排查方法: 菜单需发布后才能获取到数据

const ErrCode46004 ErrCode = 46004

ErrCode46004 指定的用户不存在 排查方法: 需要确认指定的用户存在于通讯录中

const ErrCode48001 ErrCode = 48001

ErrCode48001 API功能未授权

const ErrCode48002 ErrCode = 48002

ErrCode48002 API接口无权限调用 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:48002) API接口无权限调用。请确认: 1)写通讯录接口,只能由通讯录同步助手的access_token来调用。同时需要保证通讯录同步功能是开启的。 2)通讯录同步助手的access_token,仅用于同步通讯录,不能用于发消息 3)设置应用可见范围,仅支持注册定制化安装情况,详情见:[设置授权应用可见范围](https://open.work.weixin.qq.com/api/doc#14936) 4)客户联系相关的接口,只能由系统应用“客户联系”,或配置到“可调用应用”列表中的自建应用的access_token来调用。 5) 小程序应用仅支持发送[小程序通知消息](https://developer.work.weixin.qq.com/document/path/90236#%E5%B0%8F%E7%A8%8B%E5%BA%8F%E9%80%9A%E7%9F%A5%E6%B6%88%E6%81%AF),暂不支持文本、图片、语音、视频、图文等其他类型的消息。

const ErrCode48003 ErrCode = 48003

ErrCode48003 不合法的suite_id 排查方法: 确认suite_access_token由指定的suite_id生成

const ErrCode48004 ErrCode = 48004

ErrCode48004 授权关系无效 排查方法: 可能是无授权或授权已被取消

const ErrCode48005 ErrCode = 48005

ErrCode48005 API接口已废弃 排查方法: 接口已不再支持,建议改用新接口或者新方案

const ErrCode48006 ErrCode = 48006

ErrCode48006 接口权限被收回 排查方法: 由于企业长时间未使用应用,接口权限被收回,需企业管理员重新启用

const ErrCode49004 ErrCode = 49004

ErrCode49004 签名不匹配 排查方法: -

const ErrCode49008 ErrCode = 49008

ErrCode49008 群已经解散 排查方法: 群主已经解散群聊

const ErrCode50001 ErrCode = 50001

ErrCode50001 redirect_url未登记可信域名 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:50001) redirect_url未登记可信域名。请确认: 1)颁发code的场景在哪个应用点击的。消费code使用的access_token是否有该应用权限。(通过[查询access_token权限](https://open.work.weixin.qq.com/devtool/query)可确认) 2)secret的获取来源 * 来源于应用:url的域名,需设置到应用可信域名中。 * 来源于通讯录同步助手:仅可同步通讯录,不可用于发消息或者消费code * 来源于第三方套件授权:套件中至少有一个应用,设置了该url域名为可信域名 * 来源于管理组:管理组配置的应用列表,至少有一个应用设置了该url域名为可信域名 3)url填写的域名,必须与设置的可信域名 **完全匹配**(包括端口号)。比如:填可信域名填qq.com,访问url域名为www.qq.com,就不匹配;或者可信域名填www.qq.com,访问url域名为www.qq.com:8008,也不匹配。

const ErrCode50002 ErrCode = 50002

ErrCode50002 成员不在权限范围 排查方法: 请检查应用或管理组的权限范围

const ErrCode50003 ErrCode = 50003

ErrCode50003 应用已禁用 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:50003) 应用禁用之后,将无法再调用api,可在”管理端-应用管理”重新启用该应用。 <img src="https://p.qpic.cn/pic_wework/1283325914/090fad19ebf740ce78b1e49f2cc0f0f8d1791c3262b8e946/0" style="width:800px;"/>

const ErrCode50100 ErrCode = 50100

ErrCode50100 分页查询的游标无效 排查方法: -

const ErrCode6000 ErrCode = 6000

ErrCode6000 数据版本冲突 排查方法: 可能有多个调用端同时修改数据,稍后重试

const ErrCode600001 ErrCode = 600001

ErrCode600001 不合法的sn 排查方法: sn可能尚未进行登记

const ErrCode600002 ErrCode = 600002

ErrCode600002 设备已注册 排查方法: 可能设备已经建立过长连接

const ErrCode600003 ErrCode = 600003

ErrCode600003 不合法的硬件activecode 排查方法: -

const ErrCode600004 ErrCode = 600004

ErrCode600004 该硬件尚未授权任何企业 排查方法: -

const ErrCode600005 ErrCode = 600005

ErrCode600005 硬件Secret无效 排查方法: -

const ErrCode600007 ErrCode = 600007

ErrCode600007 缺少硬件sn 排查方法: -

const ErrCode600008 ErrCode = 600008

ErrCode600008 缺少nonce参数 排查方法: -

const ErrCode600009 ErrCode = 600009

ErrCode600009 缺少timestamp参数 排查方法: -

const ErrCode60001 ErrCode = 60001

ErrCode60001 部门长度不符合限制 排查方法: 部门名称不能为空且长度不能超过32个字

const ErrCode600010 ErrCode = 600010

ErrCode600010 缺少signature参数 排查方法: -

const ErrCode600011 ErrCode = 600011

ErrCode600011 签名校验失败 排查方法: -

const ErrCode600012 ErrCode = 600012

ErrCode600012 长连接已经注册过设备 排查方法: -

const ErrCode600013 ErrCode = 600013

ErrCode600013 缺少activecode参数 排查方法: -

const ErrCode600014 ErrCode = 600014

ErrCode600014 设备未网络注册 排查方法: -

const ErrCode600015 ErrCode = 600015

ErrCode600015 缺少secret参数 排查方法: -

const ErrCode600016 ErrCode = 600016

ErrCode600016 设备未激活 排查方法: -

const ErrCode600018 ErrCode = 600018

ErrCode600018 无效的起始结束时间 排查方法: -

const ErrCode600020 ErrCode = 600020

ErrCode600020 设备未登录 排查方法: -

const ErrCode600021 ErrCode = 600021

ErrCode600021 设备sn已存在 排查方法: -

const ErrCode600023 ErrCode = 600023

ErrCode600023 时间戳已失效 排查方法: -

const ErrCode600024 ErrCode = 600024

ErrCode600024 固件大小超过5M 排查方法: -

const ErrCode600025 ErrCode = 600025

ErrCode600025 固件名为空或者超过20字节 排查方法: -

const ErrCode600026 ErrCode = 600026

ErrCode600026 固件信息不存在 排查方法: -

const ErrCode600027 ErrCode = 600027

ErrCode600027 非法的固件参数 排查方法: -

const ErrCode600028 ErrCode = 600028

ErrCode600028 固件版本已存在 排查方法: -

const ErrCode600029 ErrCode = 600029

ErrCode600029 非法的固件版本 排查方法: -

const ErrCode60003 ErrCode = 60003

ErrCode60003 部门ID不存在 排查方法: 需要确认部门ID是否有带,并且存在通讯录中

const ErrCode600030 ErrCode = 600030

ErrCode600030 缺少固件版本参数 排查方法: -

const ErrCode600031 ErrCode = 600031

ErrCode600031 硬件固件不允许升级 排查方法: -

const ErrCode600032 ErrCode = 600032

ErrCode600032 无法解析硬件二维码 排查方法: -

const ErrCode600033 ErrCode = 600033

ErrCode600033 设备型号id冲突 排查方法: -

const ErrCode600034 ErrCode = 600034

ErrCode600034 指纹数据大小超过限制 排查方法: -

const ErrCode600035 ErrCode = 600035

ErrCode600035 人脸数据大小超过限制 排查方法: -

const ErrCode600036 ErrCode = 600036

ErrCode600036 设备sn冲突 排查方法: -

const ErrCode600037 ErrCode = 600037

ErrCode600037 缺失设备型号id 排查方法: -

const ErrCode600038 ErrCode = 600038

ErrCode600038 设备型号不存在 排查方法: -

const ErrCode600039 ErrCode = 600039

ErrCode600039 不支持的设备类型 排查方法: -

const ErrCode60004 ErrCode = 60004

ErrCode60004 父部门不存在 排查方法: 需要确认父亲部门ID是否有带,并且存在通讯录中

const ErrCode600040 ErrCode = 600040

ErrCode600040 打印任务id不存在 排查方法: -

const ErrCode600041 ErrCode = 600041

ErrCode600041 无效的offset或limit参数值 排查方法: -

const ErrCode600042 ErrCode = 600042

ErrCode600042 无效的设备型号id 排查方法: -

const ErrCode600043 ErrCode = 600043

ErrCode600043 门禁规则未设置 排查方法: -

const ErrCode600044 ErrCode = 600044

ErrCode600044 门禁规则不合法 排查方法: -

const ErrCode600045 ErrCode = 600045

ErrCode600045 设备已订阅企业信息 排查方法: -

const ErrCode600046 ErrCode = 600046

ErrCode600046 操作id和用户userid不匹配 排查方法: -

const ErrCode600047 ErrCode = 600047

ErrCode600047 secretno的status非法 排查方法: 请确认是否是使用统一初始secretno的设备,如果是无有正确执行换secretno的流程

const ErrCode600048 ErrCode = 600048

ErrCode600048 无效的指纹算法 排查方法: -

const ErrCode600049 ErrCode = 600049

ErrCode600049 无效的人脸识别算法 排查方法: -

const ErrCode60005 ErrCode = 60005

ErrCode60005 部门下存在成员 排查方法: 不允许删除有成员的部门

const ErrCode600050 ErrCode = 600050

ErrCode600050 无效的算法长度 排查方法: -

const ErrCode600051 ErrCode = 600051

ErrCode600051 设备过期 排查方法: -

const ErrCode600052 ErrCode = 600052

ErrCode600052 无效的文件分块 排查方法: -

const ErrCode600053 ErrCode = 600053

ErrCode600053 该链接已经激活 排查方法: -

const ErrCode600054 ErrCode = 600054

ErrCode600054 该链接已经订阅 排查方法: -

const ErrCode600055 ErrCode = 600055

ErrCode600055 无效的用户类型 排查方法: -

const ErrCode600056 ErrCode = 600056

ErrCode600056 无效的健康状态 排查方法: -

const ErrCode600057 ErrCode = 600057

ErrCode600057 缺少体温参数 排查方法: -

const ErrCode60006 ErrCode = 60006

ErrCode60006 部门下存在子部门 排查方法: 不允许删除有子部门的部门

const ErrCode60007 ErrCode = 60007

ErrCode60007 不允许删除根部门 排查方法: -

const ErrCode60008 ErrCode = 60008

ErrCode60008 部门已存在 排查方法: 部门ID或者部门名称已存在

const ErrCode60009 ErrCode = 60009

ErrCode60009 部门名称含有非法字符 排查方法: 不能含有 \:?*“<>| 等字符

const ErrCode60010 ErrCode = 60010

ErrCode60010 部门存在循环关系 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:60010) 部门存在循环关系。请确认: 1)创建部门和更新部门时,指定的parentid参数不能是 部门id 或者 子部门id

const ErrCode60011 ErrCode = 60011

ErrCode60011 指定的成员/部门/标签参数无权限【可能是企业成员安装了第三方应用,需修改为管理员授权安装】 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:60011) 指定的成员/部门/标签参数无权限。请确认: 1) 变更通讯录接口,需要有通讯录编辑权限。 * 普通应用的secret仅有只读权限,可使用通讯录同步助手的secret同步。 2) 其它接口,需要满足配置的通讯录范围。 * 成员:通讯录同步助手access_token可指定任意成员id;应用access_token仅能指定可见范围配置的成员,以及部门/标签包含的成员(递归展开) * 部门:通讯录同步助手access_token可指定任意部门id;应用access_token仅能指定可见范围配置的部门id(创建或移动部门,还需要具有父部门的管理权限),标签包括的部门id,以及上述部门的子部门id * 标签:通讯录同步助手access_token可指定超级管理组及通讯录同步助手创建的标签;应用access_token仅能由应用API创建的标签

const ErrCode60012 ErrCode = 60012

ErrCode60012 不允许删除默认应用 排查方法: 默认应用的id为0

const ErrCode60020 ErrCode = 60020

ErrCode60020 访问ip不在白名单之中 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:60020) 访问ip不在白名单之中。请确认: 1)请确认访问ip是否在服务商白名单IP列表。 登录 [服务商管理后台](https://open.work.weixin.qq.com/wwopen/login),在“服务商信息” - “基本信息” - “IP白名单”配置

const ErrCode60021 ErrCode = 60021

ErrCode60021 userid不在应用可见范围内 排查方法: -

const ErrCode60028 ErrCode = 60028

ErrCode60028 不允许修改第三方应用的主页 URL 排查方法: 第三方应用类型,不允许通过接口修改该应用的主页 URL

const ErrCode60102 ErrCode = 60102

ErrCode60102 UserID已存在 排查方法: -

const ErrCode60103 ErrCode = 60103

ErrCode60103 手机号码不合法 排查方法: 长度不超过32位,字符仅支持数字,加号和减号

const ErrCode60104 ErrCode = 60104

ErrCode60104 手机号码已存在 排查方法: 同一个企业内,成员的手机号不能重复。建议更换手机号,或者更新已有的手机记录。

const ErrCode60105 ErrCode = 60105

ErrCode60105 邮箱不合法 排查方法: 长度不超过64位,且为有效的email格式

const ErrCode60106 ErrCode = 60106

ErrCode60106 邮箱已存在 排查方法: 同一个企业内,成员的邮箱不能重复。建议更换邮箱,或者更新已有的邮箱记录。

const ErrCode60107 ErrCode = 60107

ErrCode60107 微信号不合法 排查方法: 微信号格式由字母、数字、”-“、”_“组成,长度为 3-20 字节,首字符必须是字母或”-“或”_“

const ErrCode60110 ErrCode = 60110

ErrCode60110 用户所属部门数量超过限制 排查方法: 用户同时归属部门不超过20个

const ErrCode60111 ErrCode = 60111

ErrCode60111 UserID不存在 排查方法: UserID参数为空,或者不存在通讯录中

const ErrCode60112 ErrCode = 60112

ErrCode60112 成员name参数不合法 排查方法: 不能为空,且不能超过64字符

const ErrCode60123 ErrCode = 60123

ErrCode60123 无效的部门id 排查方法: 部门不存在通讯录中

const ErrCode60124 ErrCode = 60124

ErrCode60124 无效的父部门id 排查方法: 父部门不存在通讯录中

const ErrCode60125 ErrCode = 60125

ErrCode60125 非法部门名字 排查方法: 不能为空,且不能超过64字节,且不能含有\:*?”<>|等字符

const ErrCode60127 ErrCode = 60127

ErrCode60127 缺少department参数 排查方法: -

const ErrCode60129 ErrCode = 60129

ErrCode60129 成员手机和邮箱都为空 排查方法: 成员手机和邮箱至少有个非空

const ErrCode60132 ErrCode = 60132

ErrCode60132 is_leader_in_dept和department的元素个数不一致 排查方法: -

const ErrCode60136 ErrCode = 60136

ErrCode60136 记录不存在 排查方法: -

const ErrCode60137 ErrCode = 60137

ErrCode60137 家长手机号重复 排查方法: 同一个家校通讯录中,家长的手机号不能重复。建议更换手机号,或者更新已有的手机记录。

const ErrCode60203 ErrCode = 60203

ErrCode60203 不合法的模版ID 排查方法: -

const ErrCode60204 ErrCode = 60204

ErrCode60204 模版状态不可用 排查方法: -

const ErrCode60205 ErrCode = 60205

ErrCode60205 模版关键词不匹配 排查方法: -

const ErrCode60206 ErrCode = 60206

ErrCode60206 该种类型的消息只支持第三方独立应用使用 排查方法: -

const ErrCode60207 ErrCode = 60207

ErrCode60207 第三方独立应用只允许发送模板消息 排查方法: -

const ErrCode60208 ErrCode = 60208

ErrCode60208 第三方独立应用不支持指定@all,不支持参数toparty和totag 排查方法: -

const ErrCode60209 ErrCode = 60209

ErrCode60209 缺少操作者vid 排查方法: -

const ErrCode60210 ErrCode = 60210

ErrCode60210 选择成员列表为空 排查方法: -

const ErrCode60211 ErrCode = 60211

ErrCode60211 SelectedTicket为空 排查方法: -

const ErrCode60214 ErrCode = 60214

ErrCode60214 仅支持第三方应用调用 排查方法: -

const ErrCode60215 ErrCode = 60215

ErrCode60215 传入SelectedTicket数量超过最大限制(10个) 排查方法: -

const ErrCode60217 ErrCode = 60217

ErrCode60217 当前操作者无权限,操作者需要授权或者在可见范围内 排查方法: -

const ErrCode60218 ErrCode = 60218

ErrCode60218 仅支持成员授权模式的应用可调用 排查方法: -

const ErrCode60219 ErrCode = 60219

ErrCode60219 消费SelectedTicket和创建SelectedTicket的应用appid不匹配 排查方法: -

const ErrCode60220 ErrCode = 60220

ErrCode60220 缺少corpappid 排查方法: -

const ErrCode60221 ErrCode = 60221

ErrCode60221 open_userid对应的服务商不是当前服务商 排查方法: -

const ErrCode60222 ErrCode = 60222

ErrCode60222 非法SelectedTicket 排查方法: -

const ErrCode60223 ErrCode = 60223

ErrCode60223 非法BundleId 排查方法: -

const ErrCode60224 ErrCode = 60224

ErrCode60224 非法PackageName 排查方法: -

const ErrCode60225 ErrCode = 60225

ErrCode60225 当前操作者并非SelectedTicket相关人,不能创建群聊 排查方法: -

const ErrCode60226 ErrCode = 60226

ErrCode60226 选人数量超过最大限制(2000) 排查方法: -

const ErrCode60227 ErrCode = 60227

ErrCode60227 缺少ServiceCorpid 排查方法: -

const ErrCode610001 ErrCode = 610001

ErrCode610001 永久二维码超过每个员工5000的限制 排查方法: -

const ErrCode610003 ErrCode = 610003

ErrCode610003 scene参数不合法 排查方法: 有效的scene长度为1~64字符,由英文字母、数字、中划线、下划线以及点号构成

const ErrCode610004 ErrCode = 610004

ErrCode610004 userid不在客户联系配置的使用范围内 排查方法: 请在管理端后台 客户联系->配置->配置使用范围配置该用户

const ErrCode610014 ErrCode = 610014

ErrCode610014 无效的unionid 排查方法: -

const ErrCode610015 ErrCode = 610015

ErrCode610015 小程序对应的开放平台账号未认证 排查方法: -

const ErrCode610016 ErrCode = 610016

ErrCode610016 企业未认证 排查方法: -

const ErrCode610017 ErrCode = 610017

ErrCode610017 小程序和企业主体不一致 排查方法: -

const ErrCode640001 ErrCode = 640001

ErrCode640001 微盘不存在当前空间 排查方法: 判断spaceid是否填错

const ErrCode640002 ErrCode = 640002

ErrCode640002 文件不存在 排查方法: 判断fileid是否填错

const ErrCode640003 ErrCode = 640003

ErrCode640003 文件已删除 排查方法: 判断fileid对应的文件是否已经被删除

const ErrCode640004 ErrCode = 640004

ErrCode640004 无权限访问 排查方法: 判断当前用户是否有访问

const ErrCode640005 ErrCode = 640005

ErrCode640005 成员不在空间内 排查方法: 判断当前成员是否在空间内

const ErrCode640006 ErrCode = 640006

ErrCode640006 超出当前成员拥有的容量 排查方法: 判断当前用户的个人容量是否超出了限制

const ErrCode640007 ErrCode = 640007

ErrCode640007 超出微盘的容量 排查方法: 在管理端查看微盘的容量是否要满了

const ErrCode640008 ErrCode = 640008

ErrCode640008 没有空间权限 排查方法: 判断当前userid是否有空间权限

const ErrCode640009 ErrCode = 640009

ErrCode640009 非法文件名 排查方法: 判断file_name字段是否为空

const ErrCode640010 ErrCode = 640010

ErrCode640010 超出空间的最大成员数 排查方法: 判断当前空间的成员数是否超过了管理端设置的空间最大成员数

const ErrCode640011 ErrCode = 640011

ErrCode640011 json格式不匹配 排查方法: 判断是否的json格式是否有误

const ErrCode640012 ErrCode = 640012

ErrCode640012 非法的userid 排查方法: 判断userid字段是否设置错误

const ErrCode640013 ErrCode = 640013

ErrCode640013 非法的departmentid 排查方法: 判断departmentid字段是否设置错误

const ErrCode640014 ErrCode = 640014

ErrCode640014 空间没有有效的管理员 排查方法: 判断当前空间是否没有有效的管理员

const ErrCode640015 ErrCode = 640015

ErrCode640015 不支持设置预览权限 排查方法: 文件预览权限只有VIP用户才能设置

const ErrCode640016 ErrCode = 640016

ErrCode640016 不支持设置文件水印 排查方法: 文件水印只有VIP用户才能设置

const ErrCode640017 ErrCode = 640017

ErrCode640017 微盘管理端未开通API 权限 排查方法: 在微盘管理端进行打开

const ErrCode640018 ErrCode = 640018

ErrCode640018 微盘管理端未设置编辑权限 排查方法: 在微盘管理端进行打开编辑权限

const ErrCode640019 ErrCode = 640019

ErrCode640019 API 调用次数超出限制 排查方法: 免费版:1000次/企业/月; 付费版:100,000次/企业/月

const ErrCode640020 ErrCode = 640020

ErrCode640020 非法的权限类型 排查方法: 普通文件:可下载、仅预览; 微文档:可编辑、仅浏览

const ErrCode640021 ErrCode = 640021

ErrCode640021 非法的fatherid 排查方法: fatherid应该为:文件所在的目录fileid, 在根目录时为fileid(判断当前字段是否为空)

const ErrCode640022 ErrCode = 640022

ErrCode640022 非法的文件内容的base64 排查方法: 文件内容base64,判断本字段是否为空

const ErrCode640023 ErrCode = 640023

ErrCode640023 非法的权限范围 排查方法: auth_scope应该为三个中的其中一个:1:指定人 2:企业内 3:企业外

const ErrCode640024 ErrCode = 640024

ErrCode640024 非法的fileid 排查方法: 判断fileid字段是否为空

const ErrCode640025 ErrCode = 640025

ErrCode640025 非法的space_name 排查方法: 判断space_name字段是否空

const ErrCode640026 ErrCode = 640026

ErrCode640026 非法的spaceid 排查方法: 判断spaceid字段是否空

const ErrCode640027 ErrCode = 640027

ErrCode640027 参数错误 排查方法: 判断输入的参数是否有误

const ErrCode640028 ErrCode = 640028

ErrCode640028 空间设置了关闭成员邀请链接 排查方法: 查看空间的安全设置的成员邀请链接按钮是否处于关闭状态

const ErrCode640029 ErrCode = 640029

ErrCode640029 只支持下载普通文件,不支持下载文件夹等其他非文件实体类型 排查方法: 检查fileid对应的文件是否为普通文件

const ErrCode65000 ErrCode = 65000

ErrCode65000 学校已经迁移 排查方法: -

const ErrCode65001 ErrCode = 65001

ErrCode65001 无效的关注模式 排查方法: -

const ErrCode65002 ErrCode = 65002

ErrCode65002 导入家长信息数量过多 排查方法: 批量导入家长每次最多1000个

const ErrCode65003 ErrCode = 65003

ErrCode65003 学校尚未迁移 排查方法: -

const ErrCode65004 ErrCode = 65004

ErrCode65004 组织架构不存在 排查方法: -

const ErrCode65005 ErrCode = 65005

ErrCode65005 无效的同步模式 排查方法: -

const ErrCode65006 ErrCode = 65006

ErrCode65006 无效的管理员类型 排查方法: -

const ErrCode65007 ErrCode = 65007

ErrCode65007 无效的家校部门类型 排查方法: -

const ErrCode65008 ErrCode = 65008

ErrCode65008 无效的入学年份 排查方法: -

const ErrCode65009 ErrCode = 65009

ErrCode65009 无效的标准年级类型 排查方法: -

const ErrCode65010 ErrCode = 65010

ErrCode65010 此userid并不是学生 排查方法: -

const ErrCode65011 ErrCode = 65011

ErrCode65011 家长userid数量超过限制 排查方法: 每次最多批量处理100个家长

const ErrCode65012 ErrCode = 65012

ErrCode65012 学生userid数量超过限制 排查方法: 每次最多批量处理10个学生

const ErrCode65013 ErrCode = 65013

ErrCode65013 学生已有家长 排查方法: -

const ErrCode65014 ErrCode = 65014

ErrCode65014 非学校企业 排查方法: -

const ErrCode65015 ErrCode = 65015

ErrCode65015 父部门类型不匹配 排查方法: 添加学校部门,需满足层级关机,班级需要以年级为父部门

const ErrCode65018 ErrCode = 65018

ErrCode65018 家长人数达到上限 排查方法: 未验证的学校\企业最多可添加2000名家长,验证过的学校\企业最多可添加20000名家长

const ErrCode660001 ErrCode = 660001

ErrCode660001 无效的商户号 排查方法: 请检查商户号是否正确

const ErrCode660002 ErrCode = 660002

ErrCode660002 无效的企业收款人id 排查方法: 请检查payee_userid是否正确

const ErrCode660003 ErrCode = 660003

ErrCode660003 userid不在应用的可见范围 排查方法: -

const ErrCode660004 ErrCode = 660004

ErrCode660004 partyid不在应用的可见范围 排查方法: -

const ErrCode660005 ErrCode = 660005

ErrCode660005 tagid不在应用的可见范围 排查方法: -

const ErrCode660006 ErrCode = 660006

ErrCode660006 找不到该商户号 排查方法: -

const ErrCode660007 ErrCode = 660007

ErrCode660007 申请已经存在 排查方法: 不需要重复申请

const ErrCode660008 ErrCode = 660008

ErrCode660008 商户号已经绑定 排查方法: 不需要重新提交申请

const ErrCode660009 ErrCode = 660009

ErrCode660009 商户号主体和商户主体不一致 排查方法: -

const ErrCode660010 ErrCode = 660010

ErrCode660010 超过商户号绑定数量限制 排查方法: -

const ErrCode660011 ErrCode = 660011

ErrCode660011 商户号未绑定 排查方法: -

const ErrCode670001 ErrCode = 670001

ErrCode670001 应用不在共享范围 排查方法: -

const ErrCode701001 ErrCode = 701001

不是license基础帐号

const ErrCode72023 ErrCode = 72023

ErrCode72023 发票已被其他公众号锁定 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:72023) 一般为发票已进入后续报销流程,报销企业公众号/企业微信/App锁定了发票。

const ErrCode72024 ErrCode = 72024

ErrCode72024 发票状态错误 排查方法: reimburse_status状态错误,参考:[更新发票状态](https://developer.work.weixin.qq.com/document/path/90313#11633)

const ErrCode72037 ErrCode = 72037

ErrCode72037 存在发票不属于该用户 排查方法: 只能批量更新该openid的发票,参考:[批量更新发票状态](https://developer.work.weixin.qq.com/document/path/90313#11634)

const ErrCode80001 ErrCode = 80001

ErrCode80001 可信域名不正确,或者无ICP备案 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:80001) 可信域名不正确,未校验域名所有权归属或者可信域名没有ICP备案。请确认: 1)可信域名,只支持全域名匹配,无法通过配置父域来让所有子域都成为可信域名。 2)可信域名,不支持IP地址、端口号及短链域名。 3)如果确认域名已经通过ICP备案,但依然提示这个错误,请尝试重新设置。

const ErrCode81001 ErrCode = 81001

ErrCode81001 部门下的结点数超过限制(3W) 排查方法: -

const ErrCode81002 ErrCode = 81002

ErrCode81002 部门最多15层 排查方法: -

const ErrCode81003 ErrCode = 81003

ErrCode81003 标签下节点个数超过30000个 排查方法: -

const ErrCode81011 ErrCode = 81011

ErrCode81011 无权限操作标签 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:81011) 无权限操作标签。请确认: 1)除了通讯录同步助手和通讯录应用,其他应用和管理组都只能操作自己创建的标签。 2)通讯录同步助手或者通讯录应用,除了能管理自己的标签,还能操作超级管理组创建的标签。

const ErrCode81012 ErrCode = 81012

ErrCode81012 缺失可见范围 排查方法: 请求没有填写UserID、部门ID、标签ID

const ErrCode81013 ErrCode = 81013

ErrCode81013 UserID、部门ID、标签ID全部非法或无权限 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:81013) UserID、部门ID、标签ID全部非法或无权限。一般有以下两种原因: 1)成员、部门或标签已被删除,此种情况需要调整调用接口的接收人参数。 2)成员、部门或标签被移出应用的可见范围,可在管理端将接收人添加到应用的可见范围内。 <img src="https://p.qpic.cn/pic_wework/1283325914/4e48eb5ea14e98977a1687c6cceab0d61ad57eea9af062f0/0" style="width:800px;"/>

const ErrCode81014 ErrCode = 81014

ErrCode81014 标签添加成员,单次添加user或party过多 排查方法: -

const ErrCode81015 ErrCode = 81015

ErrCode81015 邮箱域名需要跟企业邮箱域名一致 排查方法: -

const ErrCode81016 ErrCode = 81016

ErrCode81016 logined_userid字段缺失 排查方法: -

const ErrCode81017 ErrCode = 81017

ErrCode81017 请求个数超过限制 排查方法: -

const ErrCode81018 ErrCode = 81018

ErrCode81018 该服务商可获取名字数量配额不足 排查方法: -

const ErrCode81019 ErrCode = 81019

ErrCode81019 items数组成员缺少id字段 排查方法: -

const ErrCode81020 ErrCode = 81020

ErrCode81020 items数组成员缺少type字段 排查方法: -

const ErrCode81021 ErrCode = 81021

ErrCode81021 items数组成员的type字段不合法 排查方法: -

const ErrCode82001 ErrCode = 82001

ErrCode82001 指定的成员/部门/标签全部为空 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:82001) 指定的成员/部门/标签全部为空。请确认: 参数是否有传递,且至少有一个参数非空。

const ErrCode82002 ErrCode = 82002

ErrCode82002 不合法的PartyID列表长度 排查方法: 发消息,单次不能超过100个部门

const ErrCode82003 ErrCode = 82003

ErrCode82003 不合法的TagID列表长度 排查方法: 发消息,单次不能超过100个标签

const ErrCode82004 ErrCode = 82004

ErrCode82004 不合法的消息内容 排查方法: 消息内容中可能存在使客户端crash的内容

const ErrCode84014 ErrCode = 84014

ErrCode84014 成员票据过期 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:84014) 成员票据过期。确认: 1)user_ticket 有时效性,有效时长由expires_in指定。参考接口:[根据code获取成员信息](https://open.work.weixin.qq.com/api/doc#10028/根据code获取成员信息) 2)若需再次获取用户详情,需要用户重新点击链接后,根据新的code获取新的user_ticket

const ErrCode84015 ErrCode = 84015

ErrCode84015 成员票据无效 排查方法: 确认user_ticket参数来源是否正确。参考接口:[根据code获取成员信息](https://developer.work.weixin.qq.com/document/path/90313#10028/根据code获取成员信息)

const ErrCode84019 ErrCode = 84019

ErrCode84019 缺少templateid参数 排查方法: -

const ErrCode84020 ErrCode = 84020

ErrCode84020 templateid不存在 排查方法: 确认参数是否有带,并且已创建

const ErrCode84021 ErrCode = 84021

ErrCode84021 缺少register_code参数 排查方法: -

const ErrCode84022 ErrCode = 84022

ErrCode84022 无效的register_code参数 排查方法: -

const ErrCode84023 ErrCode = 84023

ErrCode84023 不允许调用设置通讯录同步完成接口 排查方法: -

const ErrCode84024 ErrCode = 84024

ErrCode84024 无注册信息 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:84024) 无注册信息。可能是以下两种情况: 1)注册流程未完成。 2)注册成功已超过24小时。

const ErrCode84025 ErrCode = 84025

ErrCode84025 不符合的state参数 排查方法: 必须是[a-zA-Z0-9]的参数值,长度不可超过128个字节

const ErrCode84052 ErrCode = 84052

ErrCode84052 缺少caller参数 排查方法: -

const ErrCode84053 ErrCode = 84053

ErrCode84053 缺少callee参数 排查方法: -

const ErrCode84054 ErrCode = 84054

ErrCode84054 缺少auth_corpid参数 排查方法: -

const ErrCode84055 ErrCode = 84055

ErrCode84055 超过拨打公费电话频率 排查方法: 同一个客服5秒内只能调用api拨打一次公费电话

const ErrCode84056 ErrCode = 84056

ErrCode84056 被拨打用户安装应用时未授权拨打公费电话权限 排查方法: -

const ErrCode84057 ErrCode = 84057

ErrCode84057 公费电话余额不足 排查方法: -

const ErrCode84058 ErrCode = 84058

ErrCode84058 caller 呼叫号码不支持 排查方法: -

const ErrCode84059 ErrCode = 84059

ErrCode84059 号码非法 排查方法: -

const ErrCode84060 ErrCode = 84060

ErrCode84060 callee 呼叫号码不支持 排查方法: -

const ErrCode84061 ErrCode = 84061

ErrCode84061 不存在外部联系人的关系 排查方法: -

const ErrCode84062 ErrCode = 84062

ErrCode84062 未开启公费电话应用 排查方法: -

const ErrCode84063 ErrCode = 84063

ErrCode84063 caller不存在 排查方法: -

const ErrCode84064 ErrCode = 84064

ErrCode84064 callee不存在 排查方法: -

const ErrCode84065 ErrCode = 84065

ErrCode84065 caller跟callee电话号码一致 排查方法: 不允许自己拨打给自己

const ErrCode84066 ErrCode = 84066

ErrCode84066 服务商拨打次数超过限制 排查方法: 单个企业管理员,在一天(以上午10:00为起始时间)内,对应单个服务商,只能被呼叫【4】次。

const ErrCode84067 ErrCode = 84067

ErrCode84067 管理员收到的服务商公费电话个数超过限制 排查方法: 单个企业管理员,在一天(以上午10:00为起始时间)内,一共只能被【3】个服务商成功呼叫。

const ErrCode84069 ErrCode = 84069

ErrCode84069 拨打方被限制拨打公费电话 排查方法: -

const ErrCode84070 ErrCode = 84070

ErrCode84070 不支持的电话号码 排查方法: 拨打方或者被拨打方电话号码不支持

const ErrCode84071 ErrCode = 84071

ErrCode84071 不合法的外部联系人授权码 排查方法: 非法或者已经消费过

const ErrCode84072 ErrCode = 84072

ErrCode84072 应用未配置客服 排查方法: -

const ErrCode84073 ErrCode = 84073

ErrCode84073 客服userid不在应用配置的客服列表中 排查方法: -

const ErrCode84074 ErrCode = 84074

ErrCode84074 没有外部联系人权限 排查方法: -

const ErrCode84075 ErrCode = 84075

ErrCode84075 不合法或过期的authcode 排查方法: -

const ErrCode84076 ErrCode = 84076

ErrCode84076 缺失authcode 排查方法: -

const ErrCode84077 ErrCode = 84077

ErrCode84077 订单价格过高,无法受理 排查方法: -

const ErrCode84078 ErrCode = 84078

ErrCode84078 购买人数不正确 排查方法: -

const ErrCode84079 ErrCode = 84079

ErrCode84079 价格策略不存在 排查方法: -

const ErrCode84080 ErrCode = 84080

ErrCode84080 订单不存在 排查方法: -

const ErrCode84081 ErrCode = 84081

ErrCode84081 存在未支付订单 排查方法: -

const ErrCode84082 ErrCode = 84082

ErrCode84082 存在申请退款中的订单 排查方法: -

const ErrCode84083 ErrCode = 84083

ErrCode84083 非服务人员 排查方法: -

const ErrCode84084 ErrCode = 84084

ErrCode84084 非跟进用户 排查方法: -

const ErrCode84085 ErrCode = 84085

ErrCode84085 应用已下架 排查方法: -

const ErrCode84086 ErrCode = 84086

ErrCode84086 订单人数超过可购买最大人数 排查方法: -

const ErrCode84087 ErrCode = 84087

ErrCode84087 打开订单支付前禁止关闭订单 排查方法: -

const ErrCode84088 ErrCode = 84088

ErrCode84088 禁止关闭已支付的订单 排查方法: -

const ErrCode84089 ErrCode = 84089

ErrCode84089 订单已支付 排查方法: -

const ErrCode84090 ErrCode = 84090

ErrCode84090 缺失user_ticket 排查方法: -

const ErrCode84091 ErrCode = 84091

ErrCode84091 订单价格不可低于下限 排查方法: -

const ErrCode84092 ErrCode = 84092

ErrCode84092 无法发起代下单操作 排查方法: -

const ErrCode84093 ErrCode = 84093

ErrCode84093 代理关系已占用,无法代下单 排查方法: -

const ErrCode84094 ErrCode = 84094

ErrCode84094 该应用未配置代理分润规则,请先联系应用服务商处理 排查方法: -

const ErrCode84095 ErrCode = 84095

ErrCode84095 免费试用版,无法扩容 排查方法: -

const ErrCode84096 ErrCode = 84096

ErrCode84096 免费试用版,无法续期 排查方法: -

const ErrCode84097 ErrCode = 84097

ErrCode84097 当前企业有未处理订单 排查方法: -

const ErrCode84098 ErrCode = 84098

ErrCode84098 固定总量,无法扩容 排查方法: -

const ErrCode84099 ErrCode = 84099

ErrCode84099 非购买状态,无法扩容 排查方法: -

const ErrCode84100 ErrCode = 84100

ErrCode84100 未购买过此应用,无法续期 排查方法: -

const ErrCode84101 ErrCode = 84101

ErrCode84101 企业已试用付费版本,无法全新购买 排查方法: -

const ErrCode84102 ErrCode = 84102

ErrCode84102 企业当前应用状态已过期,无法扩容 排查方法: -

const ErrCode84103 ErrCode = 84103

ErrCode84103 仅可修改未支付订单 排查方法: -

const ErrCode84104 ErrCode = 84104

ErrCode84104 订单已支付,无法修改 排查方法: -

const ErrCode84105 ErrCode = 84105

ErrCode84105 订单已被取消,无法修改 排查方法: -

const ErrCode84106 ErrCode = 84106

ErrCode84106 企业含有该应用的待支付订单,无法代下单 排查方法: -

const ErrCode84107 ErrCode = 84107

ErrCode84107 企业含有该应用的退款中订单,无法代下单 排查方法: -

const ErrCode84108 ErrCode = 84108

ErrCode84108 企业含有该应用的待生效订单,无法代下单 排查方法: -

const ErrCode84109 ErrCode = 84109

ErrCode84109 订单定价不能未0 排查方法: -

const ErrCode84110 ErrCode = 84110

ErrCode84110 新安装应用不在试用状态,无法升级为付费版 排查方法: -

const ErrCode84111 ErrCode = 84111

ErrCode84111 无足够可用优惠券 排查方法: -

const ErrCode84112 ErrCode = 84112

ErrCode84112 无法关闭未支付订单 排查方法: -

const ErrCode84113 ErrCode = 84113

ErrCode84113 无付费信息 排查方法: -

const ErrCode84114 ErrCode = 84114

ErrCode84114 虚拟版本不支持下单 排查方法: -

const ErrCode84115 ErrCode = 84115

ErrCode84115 虚拟版本不支持扩容 排查方法: -

const ErrCode84116 ErrCode = 84116

ErrCode84116 虚拟版本不支持续期 排查方法: -

const ErrCode84117 ErrCode = 84117

ErrCode84117 在虚拟正式版期内不能扩容 排查方法: -

const ErrCode84118 ErrCode = 84118

ErrCode84118 虚拟正式版期内不能变更版本 排查方法: -

const ErrCode84119 ErrCode = 84119

ErrCode84119 当前企业未报备,无法进行代下单 排查方法: -

const ErrCode84120 ErrCode = 84120

ErrCode84120 当前应用版本已删除 排查方法: -

const ErrCode84121 ErrCode = 84121

ErrCode84121 应用版本已删除,无法扩容 排查方法: -

const ErrCode84122 ErrCode = 84122

ErrCode84122 应用版本已删除,无法续期 排查方法: -

const ErrCode84123 ErrCode = 84123

ErrCode84123 非虚拟版本,无法升级 排查方法: -

const ErrCode84124 ErrCode = 84124

ErrCode84124 非行业方案订单,不能添加部分应用版本的订单 排查方法: -

const ErrCode84125 ErrCode = 84125

ErrCode84125 购买人数不能少于最少购买人数 排查方法: -

const ErrCode84126 ErrCode = 84126

ErrCode84126 购买人数不能多于最大购买人数 排查方法: -

const ErrCode84127 ErrCode = 84127

ErrCode84127 无应用管理权限 排查方法: -

const ErrCode84128 ErrCode = 84128

ErrCode84128 无该行业方案下全部应用的管理权限 排查方法: -

const ErrCode84129 ErrCode = 84129

ErrCode84129 付费策略已被删除,无法下单 排查方法: -

const ErrCode84130 ErrCode = 84130

ErrCode84130 订单生效时间不合法 排查方法: -

const ErrCode84200 ErrCode = 84200

ErrCode84200 文件转译解析错误 排查方法: 只支持utf8文件转译,可能是不支持的文件类型或者格式

const ErrCode844001 ErrCode = 844001

ErrCode844001 非法的output_file_format 排查方法: 判断输出文件格式是否正确

const ErrCode85002 ErrCode = 85002

ErrCode85002 包含不合法的词语 排查方法: -

const ErrCode85004 ErrCode = 85004

ErrCode85004 每企业每个月设置的可信域名不可超过20个 排查方法: -

const ErrCode85005 ErrCode = 85005

ErrCode85005 可信域名未通过所有权校验 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:85005) 域名未通过所有权校验,仅oauth2生效,jssdk功能将受限,请根据调用者身份按以下不同方式完成校验: 1)若调用者是企业应用,请登录企业微信管理端,进入应用详情,按照指引完成域名的所有权校验。 2)若调用者是第三方服务,请登录企业微信服务管理端,进入第三方应用详情,按照指引完成域名的所有权校验。

const ErrCode86001 ErrCode = 86001

ErrCode86001 参数 chatid 不合法 排查方法: -

const ErrCode86003 ErrCode = 86003

ErrCode86003 参数 chatid 不存在 排查方法: -

const ErrCode86004 ErrCode = 86004

ErrCode86004 参数 群名不合法 排查方法: -

const ErrCode86005 ErrCode = 86005

ErrCode86005 参数 群主不合法 排查方法: -

const ErrCode86006 ErrCode = 86006

ErrCode86006 群成员数过多或过少 排查方法: -

const ErrCode86007 ErrCode = 86007

ErrCode86007 不合法的群成员 排查方法: -

const ErrCode86008 ErrCode = 86008

ErrCode86008 非法操作非自己创建的群 排查方法: -

const ErrCode86101 ErrCode = 86101

ErrCode86101 仅群主才有操作权限 排查方法: -

const ErrCode86201 ErrCode = 86201

ErrCode86201 参数 需要chatid 排查方法: -

const ErrCode86202 ErrCode = 86202

ErrCode86202 参数 需要群名 排查方法: -

const ErrCode86203 ErrCode = 86203

ErrCode86203 参数 需要群主 排查方法: -

const ErrCode86204 ErrCode = 86204

ErrCode86204 参数 需要群成员 排查方法: -

const ErrCode86205 ErrCode = 86205

ErrCode86205 参数 字符串chatid过长 排查方法: -

const ErrCode86206 ErrCode = 86206

ErrCode86206 参数 数字chatid过大 排查方法: -

const ErrCode86207 ErrCode = 86207

ErrCode86207 群主不在群成员列表 排查方法: -

const ErrCode86214 ErrCode = 86214

ErrCode86214 群发类型不合法 排查方法: -

const ErrCode86215 ErrCode = 86215

ErrCode86215 会话ID已经存在 排查方法: -

const ErrCode86216 ErrCode = 86216

ErrCode86216 存在非法会话成员ID 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:86216) 存在非法会话成员ID。确认: 1)添加会话成员时,指定的成员ID不存在通讯录 2)删除会话成员时,指定的成员ID不存在于会话中

const ErrCode86217 ErrCode = 86217

ErrCode86217 会话发送者不在会话成员列表中 排查方法: 会话的发送者,必须是会话的成员列表之一

const ErrCode86220 ErrCode = 86220

ErrCode86220 指定的会话参数不合法 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:86220) 指定的会话参数不合法。请确认: 1)参数 type 只能指定 single/group 2)参数 msgtype 只能指定 text/image/file/voice/link

const ErrCode86224 ErrCode = 86224

ErrCode86224 不是受限群,不允许使用该接口 排查方法: -

const ErrCode90001 ErrCode = 90001

ErrCode90001 未认证摇一摇周边 排查方法: -

const ErrCode90002 ErrCode = 90002

ErrCode90002 缺少摇一摇周边ticket参数 排查方法: -

const ErrCode90003 ErrCode = 90003

ErrCode90003 摇一摇周边ticket参数不合法 排查方法: -

const ErrCode90100 ErrCode = 90100

ErrCode90100 非法的对外属性类型 排查方法: -

const ErrCode90101 ErrCode = 90101

ErrCode90101 对外属性:文本类型长度不合法 排查方法: 文本长度不可超过12个UTF8字符

const ErrCode90102 ErrCode = 90102

ErrCode90102 对外属性:网页类型标题长度不合法 排查方法: 标题长度不可超过12个UTF8字符

const ErrCode90103 ErrCode = 90103

ErrCode90103 对外属性:网页url不合法 排查方法: -

const ErrCode90104 ErrCode = 90104

ErrCode90104 对外属性:小程序类型标题长度不合法 排查方法: 标题长度不可超过12个UTF8字符

const ErrCode90105 ErrCode = 90105

ErrCode90105 对外属性:小程序类型pagepath不合法 排查方法: -

const ErrCode90106 ErrCode = 90106

ErrCode90106 对外属性:请求参数不合法 排查方法: -

const ErrCode90200 ErrCode = 90200

ErrCode90200 缺少小程序appid参数 排查方法: -

const ErrCode90201 ErrCode = 90201

ErrCode90201 小程序通知的content_item个数超过限制 排查方法: item个数不能超过10个

const ErrCode90202 ErrCode = 90202

ErrCode90202 小程序通知中的key长度不合法 排查方法: 不能为空或超过10个汉字

const ErrCode90203 ErrCode = 90203

ErrCode90203 小程序通知中的value长度不合法 排查方法: 不能为空或超过30个汉字

const ErrCode90204 ErrCode = 90204

ErrCode90204 小程序通知中的page参数不合法 排查方法: -

const ErrCode90206 ErrCode = 90206

ErrCode90206 小程序未关联到企业中 排查方法: -

const ErrCode90207 ErrCode = 90207

ErrCode90207 不合法的小程序appid 排查方法: -

const ErrCode90208 ErrCode = 90208

ErrCode90208 小程序appid不匹配 排查方法: -

const ErrCode90300 ErrCode = 90300

ErrCode90300 orderid 不合法 排查方法: -

const ErrCode90302 ErrCode = 90302

ErrCode90302 付费应用已过期 排查方法: -

const ErrCode90303 ErrCode = 90303

ErrCode90303 付费应用超过最大使用人数 排查方法: -

const ErrCode90304 ErrCode = 90304

ErrCode90304 订单中心服务异常,请稍后重试 排查方法: -

const ErrCode90305 ErrCode = 90305

ErrCode90305 参数错误,errmsg中有提示具体哪个参数有问题 排查方法: -

const ErrCode90306 ErrCode = 90306

ErrCode90306 商户设置不合法,详情请见errmsg 排查方法: -

const ErrCode90307 ErrCode = 90307

ErrCode90307 登录态过期 排查方法: -

const ErrCode90308 ErrCode = 90308

ErrCode90308 在开启IP鉴权的前提下,识别为无效的请求IP 排查方法: -

const ErrCode90309 ErrCode = 90309

ErrCode90309 订单已经存在,请勿重复下单 排查方法: -

const ErrCode90310 ErrCode = 90310

ErrCode90310 找不到订单 排查方法: -

const ErrCode90311 ErrCode = 90311

ErrCode90311 关单失败, 可能原因:该单并没被拉起支付页面; 已经关单;已经支付;渠道失败;单处于保护状态;等等 排查方法: -

const ErrCode90312 ErrCode = 90312

ErrCode90312 退款请求失败, 详情请看errmsg 排查方法: -

const ErrCode90313 ErrCode = 90313

ErrCode90313 退款调用频率限制,超过规定的阈值 排查方法: -

const ErrCode90314 ErrCode = 90314

ErrCode90314 订单状态错误,可能未支付,或者当前状态操作受限 排查方法: -

const ErrCode90315 ErrCode = 90315

ErrCode90315 退款请求失败,主键冲突,请核实退款refund_id是否已使用 排查方法: -

const ErrCode90316 ErrCode = 90316

ErrCode90316 退款原因编号不对 排查方法: -

const ErrCode90317 ErrCode = 90317

ErrCode90317 尚未注册成为供应商 排查方法: -

const ErrCode90318 ErrCode = 90318

ErrCode90318 参数nonce_str 为空或者重复,判定为重放攻击 排查方法: -

const ErrCode90319 ErrCode = 90319

ErrCode90319 时间戳为空或者与系统时间间隔太大 排查方法: -

const ErrCode90320 ErrCode = 90320

ErrCode90320 订单token无效 排查方法: -

const ErrCode90321 ErrCode = 90321

ErrCode90321 订单token已过有效时间 排查方法: -

const ErrCode90322 ErrCode = 90322

ErrCode90322 旧套件(包含多个应用的套件)不支持支付系统 排查方法: -

const ErrCode90323 ErrCode = 90323

ErrCode90323 单价超过限额 排查方法: -

const ErrCode90324 ErrCode = 90324

ErrCode90324 商品数量超过限额 排查方法: -

const ErrCode90325 ErrCode = 90325

ErrCode90325 预支单已经存在 排查方法: -

const ErrCode90326 ErrCode = 90326

ErrCode90326 预支单单号非法 排查方法: -

const ErrCode90327 ErrCode = 90327

ErrCode90327 该预支单已经结算下单 排查方法: -

const ErrCode90328 ErrCode = 90328

ErrCode90328 结算下单失败,详情请看errmsg 排查方法: -

const ErrCode90329 ErrCode = 90329

ErrCode90329 该订单号已经被预支单占用 排查方法: -

const ErrCode90330 ErrCode = 90330

ErrCode90330 创建供应商失败 排查方法: -

const ErrCode90331 ErrCode = 90331

ErrCode90331 更新供应商失败 排查方法: -

const ErrCode90332 ErrCode = 90332

ErrCode90332 还没签署合同 排查方法: -

const ErrCode90333 ErrCode = 90333

ErrCode90333 创建合同失败 排查方法: -

const ErrCode90338 ErrCode = 90338

ErrCode90338 已经过了可退款期限 排查方法: -

const ErrCode90339 ErrCode = 90339

ErrCode90339 供应商主体名包含非法字符 排查方法: -

const ErrCode90340 ErrCode = 90340

ErrCode90340 创建客户失败,可能信息真实性校验失败 排查方法: -

const ErrCode90341 ErrCode = 90341

ErrCode90341 退款金额大于付款金额 排查方法: -

const ErrCode90342 ErrCode = 90342

ErrCode90342 退款金额超过账户余额 排查方法: -

const ErrCode90343 ErrCode = 90343

ErrCode90343 退款单号已经存在 排查方法: -

const ErrCode90344 ErrCode = 90344

ErrCode90344 指定的付款渠道无效 排查方法: -

const ErrCode90345 ErrCode = 90345

ErrCode90345 超过5w人民币不可指定微信支付渠道 排查方法: -

const ErrCode90346 ErrCode = 90346

ErrCode90346 同一单的退款次数超过限制 排查方法: -

const ErrCode90347 ErrCode = 90347

ErrCode90347 退款金额不可为0 排查方法: -

const ErrCode90348 ErrCode = 90348

ErrCode90348 管理端没配置支付密钥 排查方法: -

const ErrCode90349 ErrCode = 90349

ErrCode90349 记录数量太大 排查方法: -

const ErrCode90350 ErrCode = 90350

ErrCode90350 银行信息真实性校验失败 排查方法: -

const ErrCode90351 ErrCode = 90351

ErrCode90351 应用状态异常 排查方法: -

const ErrCode90352 ErrCode = 90352

ErrCode90352 延迟试用期天数超过限制 排查方法: -

const ErrCode90353 ErrCode = 90353

ErrCode90353 预支单列表不可为空 排查方法: -

const ErrCode90354 ErrCode = 90354

ErrCode90354 预支单列表数量超过限制 排查方法: -

const ErrCode90355 ErrCode = 90355

ErrCode90355 关联有退款预支单,不可删除 排查方法: -

const ErrCode90356 ErrCode = 90356

ErrCode90356 不能0金额下单 排查方法: -

const ErrCode90357 ErrCode = 90357

ErrCode90357 代下单必须指定支付渠道 排查方法: -

const ErrCode90358 ErrCode = 90358

ErrCode90358 预支单或代下单,不支持部分退款 排查方法: -

const ErrCode90359 ErrCode = 90359

ErrCode90359 预支单与下单者企业不匹配 排查方法: -

const ErrCode90381 ErrCode = 90381

ErrCode90381 参数 refunded_credit_orderid 不合法 排查方法: -

const ErrCode90456 ErrCode = 90456

ErrCode90456 必须指定组织者 排查方法: -

const ErrCode90457 ErrCode = 90457

ErrCode90457 日历ID异常 排查方法: -

const ErrCode90458 ErrCode = 90458

ErrCode90458 日历ID列表不能为空 排查方法: -

const ErrCode90459 ErrCode = 90459

ErrCode90459 日历已删除 排查方法: -

const ErrCode90460 ErrCode = 90460

ErrCode90460 日程已删除 排查方法: -

const ErrCode90461 ErrCode = 90461

ErrCode90461 日程ID异常 排查方法: -

const ErrCode90462 ErrCode = 90462

ErrCode90462 日程ID列表不能为空 排查方法: -

const ErrCode90463 ErrCode = 90463

ErrCode90463 不能变更组织者 排查方法: -

const ErrCode90464 ErrCode = 90464

ErrCode90464 参与者数量超过限制 排查方法: -

const ErrCode90465 ErrCode = 90465

ErrCode90465 不支持的重复类型 排查方法: -

const ErrCode90466 ErrCode = 90466

ErrCode90466 不能操作别的应用创建的日历/日程 排查方法: -

const ErrCode90467 ErrCode = 90467

ErrCode90467 星期参数异常 排查方法: -

const ErrCode90468 ErrCode = 90468

ErrCode90468 不能变更组织者 排查方法: -

const ErrCode90469 ErrCode = 90469

ErrCode90469 每页大小超过限制 排查方法: -

const ErrCode90470 ErrCode = 90470

ErrCode90470 页数异常 排查方法: -

const ErrCode90471 ErrCode = 90471

ErrCode90471 提醒时间异常 排查方法: -

const ErrCode90472 ErrCode = 90472

ErrCode90472 没有日历/日程操作权限 排查方法: -

const ErrCode90473 ErrCode = 90473

ErrCode90473 颜色参数异常 排查方法: -

const ErrCode90474 ErrCode = 90474

ErrCode90474 组织者不能与参与者重叠 排查方法: -

const ErrCode90475 ErrCode = 90475

ErrCode90475 不是组织者的日历 排查方法: -

const ErrCode90479 ErrCode = 90479

ErrCode90479 不允许操作用户创建的日程 排查方法: -

const ErrCode90500 ErrCode = 90500

ErrCode90500 群主并未离职 排查方法: -

const ErrCode90501 ErrCode = 90501

ErrCode90501 该群不是客户群 排查方法: -

const ErrCode90502 ErrCode = 90502

ErrCode90502 群主已经离职 排查方法: -

const ErrCode90503 ErrCode = 90503

ErrCode90503 满人 & 99个微信成员,没办法踢,要客户端确认 排查方法: -

const ErrCode90504 ErrCode = 90504

ErrCode90504 群主没变 排查方法: -

const ErrCode90507 ErrCode = 90507

ErrCode90507 离职群正在继承处理中 排查方法: -

const ErrCode90508 ErrCode = 90508

ErrCode90508 离职群已经继承 排查方法: -

const ErrCode91040 ErrCode = 91040

ErrCode91040 获取ticket的类型无效 排查方法: [查看帮助](https://developer.work.weixin.qq.com/document/path/90313#10649/错误码:91040) 获取ticket的类型无效。jsapi ticket可以通过以下几种获取: 1)[获取jsapi_ticket](https://open.work.weixin.qq.com/api/doc#10029/获取jsapi_ticket)。这里参数只需要传access_token,不需要带其余的参数,比如type=jsapi 2)[获取电子发票ticket](https://open.work.weixin.qq.com/api/doc#10029/获取电子发票ticket)。需要同时指定access_token及type,同时type=wx_card是固定的。

const ErrCode92000 ErrCode = 92000

ErrCode92000 成员不在应用可见范围之内 排查方法: -

const ErrCode92001 ErrCode = 92001

ErrCode92001 应用没有敏感信息权限 排查方法: -

const ErrCode92002 ErrCode = 92002

ErrCode92002 不允许跨企业调用 排查方法: -

const ErrCode92006 ErrCode = 92006

ErrCode92006 该直播已经开始或取消 排查方法: -

const ErrCode92007 ErrCode = 92007

ErrCode92007 该直播回放不能被删除 排查方法: -

const ErrCode92008 ErrCode = 92008

ErrCode92008 当前应用没权限操作这个直播 排查方法: -

const ErrCode93000 ErrCode = 93000

ErrCode93000 机器人webhookurl不合法或者机器人已经被移除出群 排查方法: -

const ErrCode93004 ErrCode = 93004

ErrCode93004 机器人被停用 排查方法: -

const ErrCode93008 ErrCode = 93008

ErrCode93008 不在群里 排查方法: -

const ErrCode94000 ErrCode = 94000

ErrCode94000 应用未开启工作台自定义模式 排查方法: 请在管理端后台应用详情里面开启自定义工作台模式

const ErrCode94001 ErrCode = 94001

ErrCode94001 不合法的type类型 排查方法: -

const ErrCode94002 ErrCode = 94002

ErrCode94002 缺少keydata字段 排查方法: -

const ErrCode94003 ErrCode = 94003

ErrCode94003 keydata的items列表长度超出限制 排查方法: -

const ErrCode94005 ErrCode = 94005

ErrCode94005 缺少list字段 排查方法: -

const ErrCode94006 ErrCode = 94006

ErrCode94006 list的items列表长度超出限制 排查方法: -

const ErrCode94007 ErrCode = 94007

ErrCode94007 缺少webview字段 排查方法: -

const ErrCode94008 ErrCode = 94008

ErrCode94008 应用未设置自定义工作台模版类型 排查方法: -

const ErrCodeServiceUnavailable ErrCode = -1

ErrCodeServiceUnavailable 系统繁忙 排查方法: 服务器暂不可用,建议稍候重试。建议重试次数不超过3次。

const ErrCodeSuccess ErrCode = 0

ErrCodeSuccess 请求成功 排查方法: 接口调用成功

const ErrCodeSystemDefined ErrCode = -999

非企微ErrCode,自定义的系统错误码,可在自己的项目中使用

type GetAuthCorpFromDBFunc

type GetAuthCorpFromDBFunc func(corpId, appSuiteId string) (AuthCorp, error)

需初始化的参数

type GetJsSdkSignResp added in v1.0.13

type GetJsSdkSignResp struct {
	CorpId    string `json:"corp_id"`
	Noncestr  string `json:"noncestr"`
	Timestamp int64  `json:"timestamp"`
	Signature string `json:"signature"`
	AgentId   int64  `json:"agent_id,omitempty"`
}

type GetThirdOauthUrlReq

type GetThirdOauthUrlReq struct {
	RedirectUri string `json:"redirect_uri"` // 授权回调跳转地址
	Scope       string `json:"scope"`        // 应用授权作用域
	State       string `json:"state"`        // 重定向后会带上state参数,企业可以填写a-zA-Z0-9的参数值,长度不可超过128个字节
}

type GroupchatOwnerFilter

type GroupchatOwnerFilter struct {
	// UseridList 用户ID列表。最多100个
	UseridList []string `json:"userid_list"`
}

type JsAPITicketAgentConfigReq

type JsAPITicketAgentConfigReq struct{}

type JsAPITicketReq

type JsAPITicketReq struct{}

type JsAPITicketResp

type JsAPITicketResp struct {
	CommonResp

	Ticket        string `json:"ticket"`
	ExpiresInSecs int64  `json:"expires_in"`
}

type Logger

type Logger interface {
	Info(args ...interface{})
	Infof(template string, args ...interface{})
	Error(args ...interface{})
	Errorf(template string, args ...interface{})
}

日志输出接口

type Media

type Media struct {
	// contains filtered or unexported fields
}

Media 欲上传的素材

func NewMediaFromBuffer

func NewMediaFromBuffer(filename string, buf []byte) (*Media, error)

NewMediaFromBuffer 从内存创建一个欲上传的素材对象

func NewMediaFromFile

func NewMediaFromFile(f *os.File) (*Media, error)

NewMediaFromFile 从操作系统级文件创建一个欲上传的素材对象

type Options

type Options struct {
	DcsToken                     DcsToken              // 选传参数,如果不传这个参数,则只会把 token 存在内存中,这会导致每次重启服务都要重新获取 token 和多个服务需发起多次 token 请求的问题。
	DcsAppSuiteTicket            DcsAppSuiteTicket     // 选传参数,如果不传这个参数,则只会把 ticket 存在内存中,这会导致每次重启服务都要重新获取 ticket 和多个服务需发起多次 ticket 请求的问题。
	GetThirdAppAuthCorpFunc      GetAuthCorpFromDBFunc // 第三方应用必传参数,用于获取企业数据,如从数据库中取数
	GetCustomizedAppAuthCorpFunc GetAuthCorpFromDBFunc // 自建应用代开发必传参数,用于获取企业数据,如从数据库中取数
	Logger                       Logger                // 选传参数,不传则默认将日志直接输出在终端
}

需初始化的参数

type OwnerFilterP

type OwnerFilterP struct {
	UseridList []string `json:"userid_list"`
}

文档:https://developer.work.weixin.qq.com/document/path/93476

type ReqActiveAccountLicense

type ReqActiveAccountLicense struct {
	// ActiveCode 帐号激活码,必填
	ActiveCode string `json:"active_code"`
	// Corpid 待绑定激活的成员所属企业corpid,只支持加密的corpid,必填
	Corpid string `json:"corpid"`
	// Userid 待绑定激活的企业成员userid 。只支持加密的userid,必填
	Userid string `json:"userid"`
}

type ReqAddContactWayExternalcontact

type ReqAddContactWayExternalcontact struct {
	// ChatExpiresIn 临时会话有效期,以秒为单位。该参数仅在is_temp为true时有效,默认为添加好友后24小时,最多为14天
	ChatExpiresIn int                      `json:"chat_expires_in"`
	Conclusions   AddContactWayConclusions `json:"conclusions"` // 结束语,会话结束时自动发送给客户,可参考“<a href="#15645/结束语定义">结束语定义</a>”,仅在is_temp为true时有效
	// ExpiresIn 临时会话二维码有效期,以秒为单位。该参数仅在is_temp为true时有效,默认7天,最多为14天
	ExpiresIn int `json:"expires_in"`
	// IsTemp 是否临时会话模式,true表示使用临时会话模式,默认为false
	IsTemp bool `json:"is_temp"`
	// Party 使用该联系方式的部门id列表,只在type为2时有效
	Party []int `json:"party"`
	// Remark 联系方式的备注信息,用于助记,不超过30个字符
	Remark string `json:"remark"`
	// Scene 场景,1-在小程序中联系,2-通过二维码联系,必填
	Scene int `json:"scene"`
	// SkipVerify 外部客户添加时是否无需验证,默认为true
	SkipVerify bool `json:"skip_verify"`
	// State 企业自定义的state参数,用于区分不同的添加渠道,在调用“<a href="#13878">获取外部联系人详情</a>”时会返回该参数值,不超过30个字符
	State string `json:"state"`
	// Style 在小程序中联系时使用的控件样式,详见附表
	Style int `json:"style"`
	// Type 联系方式类型,1-单人, 2-多人,必填
	Type int `json:"type"`
	// Unionid 可进行临时会话的客户unionid,该参数仅在is_temp为true时有效,如不指定则不进行限制
	Unionid string `json:"unionid"`
	// User 使用该联系方式的用户userID列表,在type为1时为必填,且只能有一个
	User []string `json:"user"`
}

type ReqAddCorpTagExternalcontact

type ReqAddCorpTagExternalcontact struct {
	// Agentid 授权方安装的应用agentid。<strong>仅旧的第三方多应用套件需要填此参数</strong>
	Agentid int `json:"agentid,omitempty"`
	// GroupID 标签组id
	GroupID string `json:"group_id,omitempty"`
	// GroupName 标签组名称,最长为30个<strong>字符</strong>
	GroupName string `json:"group_name,omitempty"`
	// Order 标签组次序值。order值大的排序靠前。有效的值范围是[0, 2^32)
	Order int `json:"order,omitempty"`
	Tag   []struct {
		// Name 添加的标签名称,最长为30个<strong>字符</strong>,必填
		Name  string `json:"name"`
		Order int    `json:"order,omitempty"`
	} `json:"tag"`
}

type ReqAddMsgTemplateExternalcontact

type ReqAddMsgTemplateExternalcontact struct {
	Attachments []AddMsgTemplateAttachments `json:"attachments"` // 附件,最多支持添加9个附件
	// ChatType 群发任务的类型,默认为single,表示发送给客户,group表示发送给客户群
	ChatType string `json:"chat_type"`
	// ExternalUserid 客户的外部联系人id列表,仅在chat_type为single时有效,不可与sender同时为空,最多可传入<strong>1万</strong>个客户
	ExternalUserid []string `json:"external_userid"`
	// Sender 发送企业群发消息的成员userid,当类型为发送给客户群时必填
	Sender string             `json:"sender"`
	Text   AddMsgTemplateText `json:"text"`
}

type ReqBatchActiveAccountLicense

type ReqBatchActiveAccountLicense struct {
	ActiveList []struct {
		// ActiveCode 帐号激活码,必填
		// ActiveCode 帐号激活码,必填
		ActiveCode string `json:"active_code"`
		// Userid 待绑定激活的企业成员userid 。只支持加密的userid,必填
		// Userid 本次激活的企业成员的加密userid,必填
		Userid string `json:"userid"`
	} `json:"active_list"` // 需要激活的帐号列表,必填
	// Corpid 待绑定激活的成员所属企业corpid,只支持加密的corpid,必填
	Corpid string `json:"corpid"`
}

type ReqBatchGetActiveInfoByCodeLicense

type ReqBatchGetActiveInfoByCodeLicense struct {
	// ActiveCodeList 激活码列表,最多不超过1000个,必填
	ActiveCodeList []string `json:"active_code_list"`
	// Corpid 要查询的企业的corpid,只支持加密的corpid,必填
	Corpid string `json:"corpid"`
}

type ReqBatchTransferLicenseLicense

type ReqBatchTransferLicenseLicense struct {
	// Corpid 待绑定激活的成员所属企业corpid,只支持加密的corpid,必填
	Corpid       string `json:"corpid"`
	TransferList []struct {
		// HandoverUserid 转移成员的userid。只支持加密的userid,必填
		HandoverUserid string `json:"handover_userid"`
		// TakeoverUserid 接收成员的userid。只支持加密的userid,必填
		TakeoverUserid string `json:"takeover_userid"`
	} `json:"transfer_list"`
}

type ReqCloseTempChatExternalcontact

type ReqCloseTempChatExternalcontact struct {
	// ExternalUserid 客户的外部联系人userid,必填
	ExternalUserid string `json:"external_userid"`
	// Userid 企业成员的userid,必填
	Userid string `json:"userid"`
}

type ReqCorpidToOpencorpidService

type ReqCorpidToOpencorpidService struct {
	// Corpid 待获取的企业ID,必填
	Corpid string `json:"corpid"`
}

type ReqCreateNewOrderLicense

type ReqCreateNewOrderLicense struct {
	AccountCount struct {
		// BaseCount 基础帐号个数,最多1000000个。(若企业为服务商测试企业,最多购买1000个)
		BaseCount int `json:"base_count,omitempty"`
		// ExternalContactCount 互通帐号个数,最多1000000个。(若企业为服务商测试企业,最多购买1000个)
		ExternalContactCount int `json:"external_contact_count,omitempty"`
	} `json:"account_count"` // 账号个数详情,基础账号跟互通账号不能同时为0,必填
	AccountDuration struct {
		// Months 购买的月数,每个月按照31天计算。最多购买36个月。(若企业为服务商测试企业,最多购买1个月),必填
		Months int `json:"months"`
	} `json:"account_duration"` // 帐号购买时长,必填
	// BuyerUserid 下单人。服务商企业内成员userid。该userid必须登录过企业微信,并且企业微信已绑定微信。最终也支持由其他人支付,必填
	BuyerUserid string `json:"buyer_userid"`
	// Corpid 企业id,只支持加密的corpid,必填
	Corpid string `json:"corpid"`
}

type ReqCreateRenewOrderJobLicense

type ReqCreateRenewOrderJobLicense struct {
	AccountList []struct {
		// Type 续期帐号类型。1:基础帐号,2:互通帐号,必填
		Type int `json:"type"`
		// Userid 续期企业的成员userid。只支持加密的userid,必填
		Userid string `json:"userid"`
	} `json:"account_list"` // 续期的帐号列表,每次最多1000个。同一个jobid最多关联1000000个基础账号跟1000000个互通账号,必填
	// Corpid 企业id,只支持加密的corpid,必填
	Corpid string `json:"corpid"`
	// Jobid 任务id,若不传则默认创建一个新任务。若指定第一次调用后拿到jobid,可以通过该接口将jobid关联多个userid
	Jobid string `json:"jobid,omitempty"`
}

type ReqDelContactWayExternalcontact

type ReqDelContactWayExternalcontact struct {
	// ConfigID 企业联系方式的配置id,必填
	ConfigID string `json:"config_id"`
}

type ReqDelCorpTagExternalcontact

type ReqDelCorpTagExternalcontact struct {
	// Agentid 授权方安装的应用agentid。<strong>仅旧的第三方多应用套件需要填此参数</strong>
	Agentid int `json:"agentid,omitempty"`
	// GroupID 标签组的id列表
	GroupID []string `json:"group_id,omitempty"`
	// TagID 标签的id列表
	TagID []string `json:"tag_id,omitempty"`
}

type ReqEditCorpTagExternalcontact

type ReqEditCorpTagExternalcontact struct {
	// Agentid 授权方安装的应用agentid。<strong>仅旧的第三方多应用套件需要填此参数</strong>
	Agentid int `json:"agentid,omitempty"`
	// ID 标签或标签组的id,必填
	ID string `json:"id"`
	// Name 新的标签或标签组名称,最长为30个<strong>字符</strong>
	Name string `json:"name,omitempty"`
	// Order 标签/标签组的次序值。order值大的排序靠前。有效的值范围是[0, 2^32)
	Order int `json:"order,omitempty"`
}

type ReqExternalcontactToServiceExternalUserid

type ReqExternalcontactToServiceExternalUserid struct {
	// 明文externalUserId
	ExternalUserId string `json:"external_userid"`
}

自建应用代开发external_userid转换 文档:https://developer.work.weixin.qq.com/document/path/95195

type ReqFinishExternalUseridMigration

type ReqFinishExternalUseridMigration struct {
	// 企业corpid,必填
	Corpid string `json:"corpid"`
}

type ReqGetActiveInfoByCodeLicense

type ReqGetActiveInfoByCodeLicense struct {
	// ActiveCode 激活码,必填
	ActiveCode string `json:"active_code"`
	// Corpid 要查询的企业的corpid,只支持加密的corpid,必填
	Corpid string `json:"corpid"`
}

type ReqGetActiveInfoByUserLicense

type ReqGetActiveInfoByUserLicense struct {
	// Corpid 企业corpid,只支持加密的corpid,必填
	Corpid string `json:"corpid"`
	// Userid 待查询员工的userid,只支持加密的userid,必填
	Userid string `json:"userid"`
}

type ReqGetAdminListService

type ReqGetAdminListService struct {
	// Agentid 授权方安装的应用agentid,必填
	Agentid int `json:"agentid"`
	// AuthCorpid 授权方corpid,必填
	AuthCorpid string `json:"auth_corpid"`
}

type ReqGetAppLicenseInfoLicense added in v1.0.11

type ReqGetAppLicenseInfoLicense struct {
	// Appid 旧的多应用套件中的应用id,新开发者请忽略
	Appid int `json:"appid,omitempty"`
	// Corpid 企业id,必填
	Corpid string `json:"corpid"`
	// SuiteID 套件id,必填
	SuiteID string `json:"suite_id"`
}

type ReqGetAuthInfoService

type ReqGetAuthInfoService struct {
	// AuthCorpid 授权方corpid,必填
	AuthCorpid string `json:"auth_corpid"`
	// PermanentCode 永久授权码,通过get_permanent_code获取,必填
	PermanentCode string `json:"permanent_code"`
}

type ReqGetAutoActiveStatusLicense added in v1.0.13

type ReqGetAutoActiveStatusLicense struct {
	// Corpid 查询的企业corpid。要求服务商为企业购买过接口许可才有查询结果。,必填
	Corpid string `json:"corpid"`
}

type ReqGetByUserBatch

type ReqGetByUserBatch struct {
	// Cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用可不填
	Cursor string `json:"cursor"`
	// Limit 返回的最大记录数,整型,最大值100,默认值50,超过最大值时取最大值
	Limit int `json:"limit"`
	// UseridList 企业成员的userid列表,字符串类型,最多支持100个,必填
	UseridList []string `json:"userid_list"`
}

type ReqGetContactWayExternalcontact

type ReqGetContactWayExternalcontact struct {
	// ConfigID 联系方式的配置id,必填
	ConfigID string `json:"config_id"`
}

type ReqGetCorpQualification

type ReqGetCorpQualification struct {
}

type ReqGetCorpTagListExternalcontact

type ReqGetCorpTagListExternalcontact struct {
	// GroupID 要查询的标签组id,返回该标签组以及其下的所有标签信息
	GroupID []string `json:"group_id,omitempty"`
	// TagID 要查询的标签id
	TagID []string `json:"tag_id,omitempty"`
}

type ReqGetCorpTokenService

type ReqGetCorpTokenService struct {
	// AuthCorpid 授权方corpid,必填
	AuthCorpid string `json:"auth_corpid"`
	// PermanentCode 永久授权码,通过get_permanent_code获取,必填
	PermanentCode string `json:"permanent_code"`
}

type ReqGetCustomizedCorpTokenService

type ReqGetCustomizedCorpTokenService struct {
	// AuthCorpid 授权方corpid,必填
	Corpid string `json:"corpid"`
	// PermanentCode 永久授权码,通过get_permanent_code获取,必填
	Corpsecret string `json:"corpsecret"`
}

type ReqGetDepartment

type ReqGetDepartment struct {
	// ID 部门id,必填
	ID int `json:"id"`
}

type ReqGetExternalcontact

type ReqGetExternalcontact struct {
	// AccessToken 调用接口凭证,必填
	AccessToken string `json:"access_token"`
	// Cursor 上次请求返回的<code>next_cursor</code>
	Cursor string `json:"cursor"`
	// ExternalUserid 外部联系人的<code>userid</code>,注意不是企业成员的帐号,必填
	ExternalUserid string `json:"external_userid"`
}

type ReqGetGroupchat

type ReqGetGroupchat struct {
	// ChatID 客户群ID,必填
	ChatID string `json:"chat_id"`
	// NeedName 是否需要返回群成员的名字<code>group_chat.member_list.name</code>。0-不返回;1-返回。默认不返回
	NeedName int `json:"need_name"`
}

type ReqGetGroupmsgListV2Externalcontact

type ReqGetGroupmsgListV2Externalcontact struct {
	// ChatType 群发任务的类型,默认为single,表示发送给客户,group表示发送给客户群,必填
	ChatType string `json:"chat_type"`
	// Creator 群发任务创建人企业账号id
	Creator string `json:"creator"`
	// Cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用可不填
	Cursor string `json:"cursor"`
	// EndTime 群发任务记录结束时间,必填
	EndTime int `json:"end_time"`
	// FilterType 创建人类型。0:企业发表 1:个人发表 2:所有,包括个人创建以及企业创建,默认情况下为所有类型
	FilterType int `json:"filter_type"`
	// Limit 返回的最大记录数,整型,最大值100,默认值50,超过最大值时取默认值
	Limit int `json:"limit"`
	// StartTime 群发任务记录开始时间,必填
	StartTime int `json:"start_time"`
}

type ReqGetGroupmsgSendResultExternalcontact

type ReqGetGroupmsgSendResultExternalcontact struct {
	Cursor string `json:"cursor"`
	Limit  int    `json:"limit"`
	Msgid  string `json:"msgid"`
	Userid string `json:"userid"`
}

type ReqGetGroupmsgTaskExternalcontact

type ReqGetGroupmsgTaskExternalcontact struct {
	// Cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用可不填
	Cursor string `json:"cursor"`
	// Limit 返回的最大记录数,整型,最大值1000,默认值500,超过最大值时取默认值
	Limit int `json:"limit"`
	// Msgid 群发消息的id,通过<a href="#%E8%8E%B7%E5%8F%96%E7%BE%A4%E5%8F%91%E8%AE%B0%E5%BD%95%E5%88%97%E8%A1%A8" rel="nofollow">获取群发记录列表</a>接口返回,必填
	Msgid string `json:"msgid"`
}

type ReqGetNewExternalUseridExternalcontact

type ReqGetNewExternalUseridExternalcontact struct {
	// 旧外部联系人id列表,最多不超过1000个,必填
	ExternalUseridList []string `json:"external_userid_list"`
}

type ReqGetOrderLicense

type ReqGetOrderLicense struct {
	// OrderID 订单id,必填
	OrderID string `json:"order_id"`
}

type ReqGetPermanentCodeService

type ReqGetPermanentCodeService struct {
	// AuthCode <a href="#10974">临时授权码</a>,会在授权成功时附加在redirect_uri中跳转回第三方服务商网站,或通过<a href="#14951">授权成功通知</a>回调推送给服务商。长度为64至512个字节,必填
	AuthCode string `json:"auth_code"`
}

type ReqGetProviderTokenService

type ReqGetProviderTokenService struct {
	// Corpid 服务商的corpid,必填
	Corpid string `json:"corpid"`
	// ProviderSecret 服务商的secret,在服务商管理后台可见,必填
	ProviderSecret string `json:"provider_secret"`
}

type ReqGetRegisterCodeService

type ReqGetRegisterCodeService struct {
	// AdminMobile 管理员手机号
	AdminMobile string `json:"admin_mobile"`
	// AdminName 管理员姓名
	AdminName string `json:"admin_name"`
	// CorpName 企业名称
	CorpName string `json:"corp_name"`
	// FollowUser 跟进人的userid,必须是服务商所在企业的成员。若配置该值,则由该注册码创建的企业,在服务商管理后台,该企业的报备记录会自动标注跟进人员为指定成员
	FollowUser string `json:"follow_user"`
	// State 用户自定义的状态值。只支持英文字母和数字,最长为128字节。若指定该参数, 接口 <a href="#11729/查询注册状态">查询注册状态</a> 及 <a href="#11729/注册完成回调事件">注册完成回调事件</a> 会相应返回该字段值
	State string `json:"state"`
	// TemplateID 推广包ID,最长为128个字节。在“<a href="https://open.work.weixin.qq.com/wwopen/developer">服务商管理端</a>-应用管理-推广二维码”,创建的推广码详情可查看。,必填
	TemplateID string `json:"template_id"`
}

type ReqGetSuiteTokenService

type ReqGetSuiteTokenService struct {
	// SuiteID 以ww或wx开头应用id(对应于旧的以tj开头的套件id),必填
	SuiteID string `json:"suite_id"`
	// SuiteSecret 应用secret,必填
	SuiteSecret string `json:"suite_secret"`
	// SuiteTicket 企业微信后台推送的ticket,必填
	SuiteTicket string `json:"suite_ticket"`
}

type ReqGetUnassignedListExternalcontact

type ReqGetUnassignedListExternalcontact struct {
	// Cursor 分页查询游标,字符串类型,适用于数据量较大的情况,如果使用该参数则无需填写page_id,该参数由上一次调用返回
	Cursor string `json:"cursor"`
	// PageID 分页查询,要查询页号,从0开始
	PageID int `json:"page_id"`
	// PageSize 每次返回的最大记录数,默认为1000,最大值为1000
	PageSize int `json:"page_size"`
}

type ReqGetUser

type ReqGetUser struct {
	// Userid 成员UserID。对应管理端的帐号,企业内必须唯一。不区分大小写,长度为1~64个字节,必填
	Userid string `json:"userid"`
}

type ReqGetuserdetail3RdService

type ReqGetuserdetail3RdService struct {
	// UserTicket 成员票据,必填
	UserTicket string `json:"user_ticket"`
}

type ReqGetuserinfo3RdService

type ReqGetuserinfo3RdService struct {
	// Code 通过成员授权获取到的code,最大为512字节。每次成员授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。,必填
	Code string `json:"code"`
}

type ReqGroupchatStatistic

type ReqGroupchatStatistic struct {
	DayBeginTime int64        `json:"day_begin_time"`
	DayEndTime   int64        `json:"day_end_time"`
	OwnerFilter  OwnerFilterP `json:"owner_filter"`
}

type ReqListActivedAccountLicense

type ReqListActivedAccountLicense struct {
	// Corpid 企业corpid ,只支持加密的corpid,必填
	Corpid string `json:"corpid"`
	// Cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用可不填
	Cursor string `json:"cursor,omitempty"`
	// Limit 返回的最大记录数,整型,最大值1000,默认值500
	Limit int `json:"limit,omitempty"`
}

type ReqListContactWayExternalcontact

type ReqListContactWayExternalcontact struct {
	// Cursor 分页查询使用的游标,为上次请求返回的 <code>next_cursor</code>
	Cursor string `json:"cursor"`
	// EndTime 「联系我」创建结束时间戳, 默认为当前时间
	EndTime int `json:"end_time"`
	// Limit 每次查询的分页大小,默认为100条,最多支持1000条
	Limit int `json:"limit"`
	// StartTime 「联系我」创建起始时间戳, 默认为90天前
	StartTime int `json:"start_time"`
}

type ReqListDepartment

type ReqListDepartment struct {
	// ID 部门id。获取指定部门及其下的子部门(以及子部门的子部门等等,递归)。 如果不填,默认获取全量组织架构
	ID int `json:"id"`
}

type ReqListExternalcontact

type ReqListExternalcontact struct {
	// Userid 企业成员的userid,必填
	Userid string `json:"userid"`
}

type ReqListGroupchat

type ReqListGroupchat struct {
	// Cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用不填
	Cursor string `json:"cursor"`
	// Limit 分页,预期请求的数据量,取值范围 1 ~ 1000,必填
	Limit       int                  `json:"limit"`
	OwnerFilter GroupchatOwnerFilter `json:"owner_filter"` // 群主过滤。<br/>如果不填,表示获取应用可见范围内全部群主的数据(但是不建议这么用,如果可见范围人数超过1000人,为了防止数据包过大,会报错 81017)
	// StatusFilter 客户群跟进状态过滤。<br/>0 - 所有列表(即不过滤)<br/>1 - 离职待继承<br/>2 - 离职继承中<br/>3 - 离职继承完成<br/><br/>默认为0
	StatusFilter int `json:"status_filter"`
}

type ReqListOrderAccountLicense

type ReqListOrderAccountLicense struct {
	// Cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用可不填
	Cursor string `json:"cursor,omitempty"`
	// Limit 返回的最大记录数,整型,最大值1000,默认值500
	Limit int `json:"limit,omitempty"`
	// OrderID 订单号,必填
	OrderID string `json:"order_id"`
}

type ReqListOrderLicense

type ReqListOrderLicense struct {
	// Corpid 企业id,只支持加密的corpid。若指定corpid且corpid为服务商测试企业,则返回的订单列表为测试订单列表。否则只返回正式订单列表
	Corpid string `json:"corpid,omitempty"`
	// Cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用可不填
	Cursor string `json:"cursor,omitempty"`
	// EndTime 结束时间,下单时间。起始时间跟结束时间不能超过31天。可不填。但是不能单独指定该字段,start_time跟end_time必须同时指定。
	EndTime int `json:"end_time,omitempty"`
	// Limit 返回的最大记录数,整型,最大值1000,默认值500
	Limit int `json:"limit,omitempty"`
	// StartTime 开始时间,下单时间。可不填。但是不能单独指定该字段,start_time跟end_time必须同时指定。
	StartTime int `json:"start_time,omitempty"`
}

type ReqListUser

type ReqListUser struct {
	// DepartmentID 获取的部门id,必填
	DepartmentID int `json:"department_id"`
	// FetchChild 1/0:是否递归获取子部门下面的成员
	FetchChild int `json:"fetch_child"`
}

type ReqMarkTagExternalcontact

type ReqMarkTagExternalcontact struct {
	// AddTag 要标记的标签列表
	AddTag []string `json:"add_tag,omitempty"`
	// ExternalUserid 外部联系人userid,必填
	ExternalUserid string `json:"external_userid"`
	// RemoveTag 要移除的标签列表
	RemoveTag []string `json:"remove_tag,omitempty"`
	// Userid 添加外部联系人的userid,必填
	Userid string `json:"userid"`
}

type ReqOnjobTransferGroupchat added in v1.0.13

type ReqOnjobTransferGroupchat struct {
	// ChatIDList 需要转群主的客户群ID列表。取值范围: 1 ~ 100,必填
	ChatIDList []string `json:"chat_id_list"`
	// NewOwner 新群主ID,必填
	NewOwner string `json:"new_owner"`
}

type ReqRemarkExternalcontact

type ReqRemarkExternalcontact struct {
	// Description 此用户对外部联系人的描述,最多150个字符
	Description string `json:"description,omitempty"`
	// ExternalUserid 外部联系人userid,必填
	ExternalUserid string `json:"external_userid"`
	// Remark 此用户对外部联系人的备注,最多20个字符
	Remark string `json:"remark,omitempty"`
	// RemarkCompany 此用户对外部联系人备注的所属公司名称,最多20个字符
	RemarkCompany string `json:"remark_company,omitempty"`
	// RemarkMobiles 此用户对外部联系人备注的手机号
	RemarkMobiles []string `json:"remark_mobiles,omitempty"`
	// RemarkPicMediaid 备注图片的mediaid,
	RemarkPicMediaid string `json:"remark_pic_mediaid,omitempty"`
	// Userid 企业成员的userid,必填
	Userid string `json:"userid"`
}

type ReqSentFileBody

type ReqSentFileBody struct {
	MediaId string `json:"media_id"` // 文件id,可以调用上传临时素材接口获取
}

文件消息

type ReqSentImageBody

type ReqSentImageBody struct {
	MediaId string `json:"media_id"` // 图片媒体文件id,可以调用上传临时素材接口获取
}

图片消息

type ReqSentMarkdownBody

type ReqSentMarkdownBody struct {
	Content string `json:"content"` // markdown内容,最长不超过2048个字节,必须是utf8编码
}

markdown消息

type ReqSentMessageCard

type ReqSentMessageCard struct {
	ToUser                 string                     `json:"touser,omitempty"`                   // 成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送
	ToParty                string                     `json:"toparty,omitempty"`                  // 部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
	ToTag                  string                     `json:"totag,omitempty"`                    // 标签ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
	MsgType                string                     `json:"msgtype"`                            // 消息类型,如text/image/file
	AgentId                int                        `json:"agentid"`                            // 企业应用的id,整型。企业内部开发,可在应用的设置页面查看;第三方服务商,可通过接口 获取企业授权信息 获取该参数值
	EnableIdTrans          int                        `json:"enable_id_trans,omitempty"`          // 表示是否开启id转译,0表示否,1表示是,默认0
	EnableDuplicateCheck   int                        `json:"enable_duplicate_check,omitempty"`   // 表示是否开启重复消息检查,0表示否,1表示是,默认0
	DuplicateCheckInterval int                        `json:"duplicate_check_interval,omitempty"` // 表示是否重复消息检查的时间间隔,默认1800s,最大不超过4小时
	Safe                   int                        `json:"safe,omitempty"`                     // 表示是否是保密消息,0表示可对外分享,1表示不能分享且内容显示水印,2表示仅限在企业内分享,默认为0;注意仅mpnews类型的消息支持safe值为2,其他消息类型不支持
	Text                   ReqSentTextBody            `json:"text"`
	Image                  ReqSentImageBody           `json:"image"`
	Voice                  ReqSentVoiceBody           `json:"voice"`
	Video                  ReqSentVideoBody           `json:"video"`
	File                   ReqSentFileBody            `json:"file"`
	Textcard               ReqSentMessageCardTextBody `json:"textcard"`
	News                   ReqSentMessageCardNewsBody `json:"news"`
	Mpnews                 ReqSentMpNewsArticle       `json:"mpnews"`
	Markdown               ReqSentMarkdownBody        `json:"markdown"`
}

type ReqSentMessageCardMiniNotice

type ReqSentMessageCardMiniNotice struct {
	ToUser                 string             `json:"touser,omitempty"`                   // 成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送
	ToParty                string             `json:"toparty,omitempty"`                  // 部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
	ToTag                  string             `json:"totag,omitempty"`                    // 标签ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
	MsgType                string             `json:"msgtype"`                            // 消息类型,如text/image/file
	EnableIdTrans          string             `json:"enable_id_trans,omitempty"`          // 表示是否开启id转译,0表示否,1表示是,默认0
	EnableDuplicateCheck   string             `json:"enable_duplicate_check,omitempty"`   // 表示是否开启重复消息检查,0表示否,1表示是,默认0
	DuplicateCheckInterval string             `json:"duplicate_check_interval,omitempty"` // 表示是否重复消息检查的时间间隔,默认1800s,最大不超过4小时
	MiniprogramNotice      SentMiniNoticeBody `json:"miniprogram_notice"`
}

type ReqSentMessageCardNewsArticleBody

type ReqSentMessageCardNewsArticleBody struct {
	Title       string `json:"title"`       // 标题,不超过128个字节,超过会自动截断(支持id转译)
	Description string `json:"description"` // 描述,不超过512个字节,超过会自动截断(支持id转译)
	Url         string `json:"url"`         // 点击后跳转的链接。 最长2048字节,请确保包含了协议头(http/https),小程序或者url必须填写一个
	UrlImg      string `json:"picurl"`      // 图文消息的图片链接,支持JPG、PNG格式,较好的效果为大图 1068*455,小图150*150。
	Appid       string `json:"appid"`       // 小程序appid,必须是与当前应用关联的小程序,appid和pagepath必须同时填写,填写后会忽略url字段
	Pagepath    string `json:"pagepath"`    // 点击消息卡片后的小程序页面,仅限本小程序内的页面。appid和pagepath必须同时填写,填写后会忽略url字段
}

图文消息

type ReqSentMessageCardNewsBody

type ReqSentMessageCardNewsBody struct {
	Articles []ReqSentMessageCardNewsArticleBody `json:"articles"`
}

type ReqSentMessageCardTemplateCard

type ReqSentMessageCardTemplateCard struct {
	ToUser                 string               `json:"touser,omitempty"`                   // 成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送
	ToParty                string               `json:"toparty,omitempty"`                  // 部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
	ToTag                  string               `json:"totag,omitempty"`                    // 标签ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
	MsgType                string               `json:"msgtype"`                            // 消息类型,如text/image/file
	AgentId                int                  `json:"agentid"`                            // 企业应用的id,整型。企业内部开发,可在应用的设置页面查看;第三方服务商,可通过接口 获取企业授权信息 获取该参数值
	EnableIdTrans          int                  `json:"enable_id_trans,omitempty"`          // 表示是否开启id转译,0表示否,1表示是,默认0
	EnableDuplicateCheck   int                  `json:"enable_duplicate_check,omitempty"`   // 表示是否开启重复消息检查,0表示否,1表示是,默认0
	DuplicateCheckInterval int                  `json:"duplicate_check_interval,omitempty"` // 表示是否重复消息检查的时间间隔,默认1800s,最大不超过4小时
	TemplateCard           SentTemplateCardBody `json:"template_card"`
}

type ReqSentMessageCardTemplateMsg

type ReqSentMessageCardTemplateMsg struct {
	ToUser             string          `json:"touser,omitempty"`          // 成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送
	ToParty            string          `json:"toparty,omitempty"`         // 部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
	ToTag              string          `json:"totag,omitempty"`           // 标签ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
	MsgType            string          `json:"msgtype"`                   // 消息类型,如text/image/file
	AgentId            int             `json:"agentid"`                   // 企业应用的id,整型。企业内部开发,可在应用的设置页面查看;第三方服务商,可通过接口 获取企业授权信息 获取该参数值
	EnableIdTrans      int             `json:"enable_id_trans,omitempty"` // 表示是否开启id转译,0表示否,1表示是,默认0
	SelectedTicketList []string        `json:"selected_ticket_list"`      // 选人sdk或者选人jsapi返回的ticket列表,列表不超过10个。接收者不包含selected_tikcet的操作者,若要发送给操作者,可将操作者填到touser字段。
	TemplateMsg        SentTemplateMsg `json:"template_msg"`
	OnlyUnauth         bool            `json:"only_unauth"` // 仅向selected_ticket_list中未授权的用户发送模板消息,仅当selected_ticket_list存在时该字段生效。如果该字段为true,则自动忽略touser,toparty,totag
}

type ReqSentMessageCardTextBody

type ReqSentMessageCardTextBody struct {
	Title       string `json:"title"`       // 标题,不超过128个字节,超过会自动截断
	Description string `json:"description"` // 描述,不超过512个字节,超过会自动截断
	Url         string `json:"url"`         // 点击后跳转的链接。 最长2048字节,请确保包含了协议头(http/https),小程序或者url必须填写一个
	BtnTxt      string `json:"btntxt"`      // 按钮文字。 默认为“详情”, 不超过4个文字,超过自动截断。
}

文本卡片

type ReqSentMpNewsArticle

type ReqSentMpNewsArticle struct {
	Title            string `json:"title"`              // 标题,不超过128个字节,超过会自动截断(支持id转译)
	ThumbMediaId     string `json:"thumb_media_id"`     // 图文消息缩略图的media_id, 可以通过素材管理接口获得。此处thumb_media_id即上传接口返回的media_id
	Author           string `json:"author"`             // 图文消息的作者,不超过64个字节
	ContentSourceUrl string `json:"content_source_url"` // 图文消息点击“阅读原文”之后的页面链接
	Content          string `json:"content"`            // 图文消息的内容,支持html标签,不超过666 K个字节(支持id转译)
	Digest           string `json:"digest"`             // 图文消息的描述,不超过512个字节,超过会自动截断(支持id转译)
}

图文消息(mpnews)

type ReqSentMpNewsBody

type ReqSentMpNewsBody struct {
	Articles []ReqSentMpNewsArticle `json:"articles"`
}

type ReqSentTextBody

type ReqSentTextBody struct {
	Content string `json:"content"` // 消息内容,最长不超过2048个字节,超过将截断(支持id转译)
}

文本消息

type ReqSentVideoBody

type ReqSentVideoBody struct {
	MediaId     string `json:"media_id"`    // 视频媒体文件id,可以调用上传临时素材接口获取
	Title       string `json:"title"`       // 视频消息的标题,不超过128个字节,超过会自动截断
	Description string `json:"description"` // 视频消息的描述,不超过512个字节,超过会自动截断
}

视频消息

type ReqSentVoiceBody

type ReqSentVoiceBody struct {
	MediaId string `json:"media_id"` // 语音文件id,可以调用上传临时素材接口获取
}

语音消息

type ReqSetAutoActiveStatusLicense added in v1.0.13

type ReqSetAutoActiveStatusLicense struct {
	// AutoActiveStatus 许可自动激活状态。0:关闭,1:打开,必填
	AutoActiveStatus int `json:"auto_active_status"`
	// Corpid 企业corpid,要求服务商为企业购买过接口许可,购买指支付完成,购买并退款成功包括在内,必填
	Corpid string `json:"corpid"`
}

type ReqSimplelistDepartment

type ReqSimplelistDepartment struct {
	// ID 部门id。获取指定部门及其下的子部门(以及子部门的子部门等等,递归)。 如果不填,默认获取全量组织架构
	ID int `json:"id"`
}

type ReqSimplelistUser

type ReqSimplelistUser struct {
	// DepartmentID 获取的部门id,必填
	DepartmentID int `json:"department_id"`
	// FetchChild 是否递归获取子部门下面的成员:1-递归获取,0-只获取本部门
	FetchChild int `json:"fetch_child"`
}

type ReqSubmitOrderJobLicense

type ReqSubmitOrderJobLicense struct {
	AccountDuration struct {
		// Months 购买的月数,每个月按照31天计算。最多购买36个月。(若企业为服务商测试企业,每次续期只能续期1个月),必填
		Months int `json:"months"`
	} `json:"account_duration"` // 账号购买时长,必填
	// BuyerUserid 下单人。服务商企业内成员userid。该userid必须登录过企业微信,并且企业微信已绑定微信,必填
	BuyerUserid string `json:"buyer_userid"`
	// Jobid 任务id,必填
	Jobid string `json:"jobid"`
}

type ReqTransferCustomerExternalcontact

type ReqTransferCustomerExternalcontact struct {
	// ExternalUserid 客户的external_userid列表,每次最多分配100个客户,必填
	ExternalUserid []string `json:"external_userid"`
	// HandoverUserid 原跟进成员的userid,必填
	HandoverUserid string `json:"handover_userid"`
	// TakeoverUserid 接替成员的userid,必填
	TakeoverUserid string `json:"takeover_userid"`
	// TransferSuccessMsg 转移成功后发给客户的消息,最多200个字符,不填则使用默认文案
	TransferSuccessMsg string `json:"transfer_success_msg"`
}

type ReqTransferCustomerResigned

type ReqTransferCustomerResigned struct {
	// ExternalUserid 客户的external_userid列表,最多一次转移100个客户,必填
	ExternalUserid []string `json:"external_userid"`
	// HandoverUserid 原跟进成员的userid,必填
	HandoverUserid string `json:"handover_userid"`
	// TakeoverUserid 接替成员的userid,必填
	TakeoverUserid string `json:"takeover_userid"`
}

type ReqTransferGroupchat

type ReqTransferGroupchat struct {
	// ChatIDList 需要转群主的客户群ID列表。取值范围: 1 ~ 100,必填
	ChatIDList []string `json:"chat_id_list"`
	// NewOwner 新群主ID,必填
	NewOwner string `json:"new_owner"`
}

type ReqTransferResultExternalcontact

type ReqTransferResultExternalcontact struct {
	// Cursor 分页查询的cursor,每个分页返回的数据不会超过1000条;不填或为空表示获取第一个分页;
	Cursor string `json:"cursor"`
	// HandoverUserid 原添加成员的<code>userid</code>,必填
	HandoverUserid string `json:"handover_userid"`
	// TakeoverUserid 接替成员的<code>userid</code>,必填
	TakeoverUserid string `json:"takeover_userid"`
}

type ReqTransferResultResigned

type ReqTransferResultResigned struct {
	// Cursor 分页查询的cursor,每个分页返回的数据不会超过1000条;不填或为空表示获取第一个分页
	Cursor string `json:"cursor"`
	// HandoverUserid 原添加成员的<code>userid</code>,必填
	HandoverUserid string `json:"handover_userid"`
	// TakeoverUserid 接替成员的<code>userid</code>,必填
	TakeoverUserid string `json:"takeover_userid"`
}

type ReqUnionidToExternalUserid3RdExternalcontact

type ReqUnionidToExternalUserid3RdExternalcontact struct {
	// 微信用户的unionid,必填
	Unionid string `json:"unionid"`
	// 微信用户的openid,必填
	Openid string `json:"openid"`
	// 需要换取的企业corpid,不填则拉取所有企业
	Corpid string `json:"corpid"`
}

type ReqUpdateContactWayExternalcontact

type ReqUpdateContactWayExternalcontact struct {
	// ChatExpiresIn 临时会话有效期,以秒为单位,该参数仅在临时会话模式下有效
	ChatExpiresIn int                      `json:"chat_expires_in"`
	Conclusions   AddContactWayConclusions `json:"conclusions"` // 结束语,会话结束时自动发送给客户,可参考“<a href="#15645/结束语定义">结束语定义</a>”,仅临时会话模式(is_temp为true)可设置
	// ConfigID 企业联系方式的配置id,必填
	ConfigID string `json:"config_id"`
	// ExpiresIn 临时会话二维码有效期,以秒为单位,该参数仅在临时会话模式下有效
	ExpiresIn int `json:"expires_in"`
	// Party 使用该联系方式的部门列表,将覆盖原有部门列表,只在配置的type为2时有效
	Party []int `json:"party"`
	// Remark 联系方式的备注信息,不超过30个字符,将覆盖之前的备注
	Remark string `json:"remark"`
	// SkipVerify 外部客户添加时是否无需验证
	SkipVerify bool `json:"skip_verify"`
	// State 企业自定义的state参数,用于区分不同的添加渠道,在调用“<a href="#13878">获取外部联系人详情</a>”时会返回该参数值
	State string `json:"state"`
	// Style 样式,只针对“在小程序中联系”的配置生效
	Style int `json:"style"`
	// Unionid 可进行临时会话的客户unionid,该参数仅在临时会话模式有效,如不指定则不进行限制
	Unionid string `json:"unionid"`
	// User 使用该联系方式的用户列表,将覆盖原有用户列表
	User []string `json:"user"`
}

type ReqUpdateTemplateCardMessage

type ReqUpdateTemplateCardMessage struct {
	Userids      []string                           `json:"userids"`       // 企业的成员ID列表(最多支持1000个)
	Partyids     []int                              `json:"partyids"`      // 企业的部门ID列表(最多支持100个)
	Tagids       []int                              `json:"tagids"`        // 企业的标签ID列表(最多支持100个)
	Atall        int                                `json:"atall"`         // 更新整个任务接收人员
	Agentid      int                                `json:"agentid"`       // 应用的agentid
	ResponseCode string                             `json:"response_code"` // 更新卡片所需要消费的code,可通过发消息接口和回调接口返回值获取,一个code只能调用一次该接口,且只能在24小时内调用
	Button       ReqUpdateTemplateCardMessageButton `json:"button"`
}

type ReqUpdateTemplateCardMessageButton

type ReqUpdateTemplateCardMessageButton struct {
	ReplaceName string `json:"replace_name"` // 需要更新的按钮的文案
}

type ReqUploadMedia

type ReqUploadMedia struct {
	// 媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)
	Type  string `json:"type"`
	Media *Media `json:"media"`
}

type ReqUserBehaviorData

type ReqUserBehaviorData struct {
	Userid    []string `json:"userid"`
	Partyid   []int    `json:"partyid"`
	StartTime int64    `json:"start_time"`
	EndTime   int64    `json:"end_time"`
}

type ReqUseridToOpenuseridBatch

type ReqUseridToOpenuseridBatch struct {
	// UseridList 获取到的成员ID,必填
	UseridList []string `json:"userid_list"`
}

ReqUseridToOpenuseridBatch 2.4 userid的转换请求 文档:https://developer.work.weixin.qq.com/document/path/95327#2.4 userid的转换

type RespActiveAccountLicense

type RespActiveAccountLicense struct {
	CommonResp
}

type RespAddContactWayExternalcontact

type RespAddContactWayExternalcontact struct {
	ConfigID string `json:"config_id"`
	CommonResp
	QrCode string `json:"qr_code"`
}

type RespAddCorpTagExternalcontact

type RespAddCorpTagExternalcontact struct {
	CommonResp
	TagGroup struct {
		// CreateTime 标签组创建时间
		// CreateTime 标签创建时间
		// CreateTime 标签组创建时间
		// CreateTime 标签创建时间
		CreateTime int `json:"create_time"`
		// GroupID 标签组id
		GroupID string `json:"group_id"`
		// GroupName 标签组名称
		GroupName string `json:"group_name"`
		// Order 标签组次序值。order值大的排序靠前。有效的值范围是[0, 2^32)
		// Order 标签次序值。order值大的排序靠前。有效的值范围是[0, 2^32)
		// Order 标签组次序值。order值大的排序靠前。有效的值范围是[0, 2^32)
		// Order 标签次序值。order值大的排序靠前。有效的值范围是[0, 2^32)
		Order int `json:"order"`
		Tag   []struct {
			CreateTime int `json:"create_time"`
			// ID 新建标签id
			ID string `json:"id"`
			// Name 新建标签名称
			Name  string `json:"name"`
			Order int    `json:"order"`
		} `json:"tag"` // 标签组内的标签列表
	} `json:"tag_group"`
}

type RespAddMsgTemplateExternalcontact

type RespAddMsgTemplateExternalcontact struct {
	CommonResp
	FailList []string `json:"fail_list"`
	Msgid    string   `json:"msgid"`
}

type RespBatchActiveAccountLicense

type RespBatchActiveAccountLicense struct {
	ActiveResult []struct {
		ActiveCode string `json:"active_code"`
		Errcode    int    `json:"errcode"`
		Userid     string `json:"userid"`
	} `json:"active_result"`
	CommonResp
}

type RespBatchGetActiveInfoByCodeLicense

type RespBatchGetActiveInfoByCodeLicense struct {
	ActiveInfoList []struct {
		// ActiveCode 帐号激活码
		ActiveCode string `json:"active_code"`
		ActiveTime int    `json:"active_time"`
		// CreateTime 创建时间,订单支付成功后立即创建。激活码必须在创建时间后的365天内激活
		CreateTime int `json:"create_time"`
		// ExpireTime 过期时间。为首次激活绑定的时间加上购买时长。未激活则不返回该字段
		ExpireTime int `json:"expire_time"`
		// Status 帐号状态:1:未绑定,2:已绑定且有效,3:已过期
		Status int `json:"status"`
		// Type 帐号类型:1:基础帐号,2:互通帐号
		Type int `json:"type"`
		// Userid 帐号绑定激活的企业成员userid,未激活则不返回该字段。返回加密的userid
		Userid string `json:"userid"`
	} `json:"active_info_list"` // 帐号码信息列表
	CommonResp
	InvalidActiveCodeList []string `json:"invalid_active_code_list"`
}

type RespBatchTransferLicenseLicense

type RespBatchTransferLicenseLicense struct {
	CommonResp
	TransferResult []struct {
		Errcode int `json:"errcode"`
		// HandoverUserid 转移成员加密的userid
		HandoverUserid string `json:"handover_userid"`
		// TakeoverUserid 接收成员加密的userid
		TakeoverUserid string `json:"takeover_userid"`
	} `json:"transfer_result"`
}

type RespCloseTempChatExternalcontact

type RespCloseTempChatExternalcontact struct {
	CommonResp
}

type RespCorpidToOpencorpidService

type RespCorpidToOpencorpidService struct {
	CommonResp
	OpenCorpid string `json:"open_corpid"`
}

type RespCreateNewOrderLicense

type RespCreateNewOrderLicense struct {
	CommonResp
	// OrderID 订单号
	OrderID string `json:"order_id"`
}

type RespCreateRenewOrderJobLicense

type RespCreateRenewOrderJobLicense struct {
	// Errcode 账号不合法相关错误码
	CommonResp
	Errmsg             string `json:"errmsg"`
	InvalidAccountList []struct {
		// Errcode 账号不合法相关错误码
		CommonResp
		Errmsg string `json:"errmsg"`
		Type   int    `json:"type"`
		Userid string `json:"userid"`
	} `json:"invalid_account_list"` // 不合法的续期账号列表
	// Jobid 任务id,请求包中未指定jobid时,会生成一个新的jobid返回
	Jobid string `json:"jobid"`
}

type RespDelContactWayExternalcontact

type RespDelContactWayExternalcontact struct {
	CommonResp
}

type RespDelCorpTagExternalcontact

type RespDelCorpTagExternalcontact struct {
	CommonResp
}

type RespEditCorpTagExternalcontact

type RespEditCorpTagExternalcontact struct {
	CommonResp
}

type RespExternalcontactToServiceExternalUserid

type RespExternalcontactToServiceExternalUserid struct {
	CommonResp
	// 密文externalUserId
	ExternalUserid string `json:"external_userid"`
}

type RespFinishExternalUseridMigration

type RespFinishExternalUseridMigration struct {
	CommonResp
	Items []struct {
		ExternalUserid    string `json:"external_userid"`
		NewExternalUserid string `json:"new_external_userid"`
	} `json:"items"`
}

type RespGetActiveInfoByCodeLicense

type RespGetActiveInfoByCodeLicense struct {
	ActiveInfo struct {
		// ActiveCode 帐号激活码
		ActiveCode string `json:"active_code"`
		ActiveTime int    `json:"active_time"`
		// CreateTime 创建时间,订单支付成功后立即创建。激活码必须在创建时间后的365天内激活。
		CreateTime int `json:"create_time"`
		// ExpireTime 过期时间。为首次激活绑定的时间加上购买时长。未激活则不返回该字段
		ExpireTime int `json:"expire_time"`
		// Status 帐号状态:1:未绑定,2:已绑定且有效,3:已过期
		Status int `json:"status"`
		// Type 帐号类型:1:基础帐号,2:互通帐号
		Type int `json:"type"`
		// Userid 帐号绑定激活的企业成员userid,未激活则不返回该字段。返回加密的userid
		Userid string `json:"userid"`
	} `json:"active_info"` // 帐号码信息
	CommonResp
}

type RespGetActiveInfoByUserLicense

type RespGetActiveInfoByUserLicense struct {
	ActiveInfoList []struct {
		// ActiveCode 帐号激活码
		ActiveCode string `json:"active_code"`
		// ActiveTime 激活时间
		ActiveTime int `json:"active_time"`
		// ExpireTime 过期时间
		ExpireTime int `json:"expire_time"`
		// Type 帐号类型:1:基础帐号,2:互通帐号
		Type int `json:"type"`
		// Userid 帐号绑定激活的成员userid。返回加密的userid
		Userid string `json:"userid"`
	} `json:"active_info_list"` // 帐号列表,同一个userid最多有两个帐号:一个基础帐号与一个互通帐号
	// ActiveStatus 帐号激活状态。0:未激活、 1:已激活
	ActiveStatus int `json:"active_status"`
	CommonResp
}

type RespGetAdminListService

type RespGetAdminListService struct {
	Admin []struct {
		AuthType   int    `json:"auth_type"`
		OpenUserid string `json:"open_userid"`
		Userid     string `json:"userid"`
	} `json:"admin"`
	CommonResp
}

type RespGetAppLicenseInfoLicense added in v1.0.11

type RespGetAppLicenseInfoLicense struct {
	CommonResp
	// LicenseStatus license检查开启状态。<br/>0:未开启license检查状态(<a href="#38519" rel="nofollow">未迁移的历史授权应用</a>一般是这种状态) <br/>1:已开启license检查状态。若开启且已过试用期,则需要为企业购买license帐号才可以使用
	LicenseStatus int `json:"license_status"`
	TrailInfo     struct {
		// EndTime 接口许可试用到期时间。若企业多次安装卸载同一个第三方应用,以第一次安装的时间为试用期开始时间,第一次安装完90天后为结束试用时间
		EndTime int `json:"end_time"`
		// StartTime 接口许可试用开始时间
		StartTime int `json:"start_time"`
	} `json:"trail_info"` // 应用license试用期信息。仅当license_status为1时返回该字段
}

type RespGetAuthInfoService

type RespGetAuthInfoService struct {
	AuthCorpInfo struct {
		CorpFullName      string `json:"corp_full_name"`
		CorpIndustry      string `json:"corp_industry"`
		CorpName          string `json:"corp_name"`
		CorpScale         string `json:"corp_scale"`
		CorpSquareLogoURL string `json:"corp_square_logo_url"`
		CorpSubIndustry   string `json:"corp_sub_industry"`
		CorpType          string `json:"corp_type"`
		CorpUserMax       int    `json:"corp_user_max"`
		CorpWxqrcode      string `json:"corp_wxqrcode"`
		Corpid            string `json:"corpid"`
		SubjectType       int    `json:"subject_type"`
		VerifiedEndTime   int    `json:"verified_end_time"`
		Location          string `json:"location"`
	} `json:"auth_corp_info"`
	AuthInfo struct {
		Agent []struct {
			Agentid         int    `json:"agentid"`
			Appid           int    `json:"appid"`
			AuthMode        int    `json:"auth_mode"`
			IsCustomizedApp bool   `json:"is_customized_app"`
			Name            string `json:"name"`
			Privilege       struct {
				AllowParty []int    `json:"allow_party"`
				AllowTag   []int    `json:"allow_tag"`
				AllowUser  []string `json:"allow_user"`
				ExtraParty []int    `json:"extra_party"`
				ExtraTag   []int    `json:"extra_tag"`
				ExtraUser  []string `json:"extra_user"`
				Level      int      `json:"level"`
			} `json:"privilege"`
			RoundLogoURL string `json:"round_logo_url"`
			SharedFrom   struct {
				Corpid string `json:"corpid"`
			} `json:"shared_from"`
			SquareLogoURL string `json:"square_logo_url"`
		} `json:"agent"`
	} `json:"auth_info"`
	DealerCorpInfo struct {
		CorpName string `json:"corp_name"`
		Corpid   string `json:"corpid"`
	} `json:"dealer_corp_info"`
	CommonResp
}

type RespGetAutoActiveStatusLicense added in v1.0.13

type RespGetAutoActiveStatusLicense struct {
	// AutoActiveStatus 许可自动激活状态。0:关闭,1:打开
	AutoActiveStatus int `json:"auto_active_status"`
	CommonResp
}

type RespGetByUserBatch

type RespGetByUserBatch struct {
	CommonResp
	ExternalContactList []struct {
		ExternalContact struct {
			Avatar          string `json:"avatar"`
			CorpFullName    string `json:"corp_full_name"`
			CorpName        string `json:"corp_name"`
			ExternalProfile struct {
				ExternalAttr []struct {
					Miniprogram struct {
						Appid    string `json:"appid"`
						Pagepath string `json:"pagepath"`
						Title    string `json:"title"`
					} `json:"miniprogram"`
					Name string `json:"name"`
					Text struct {
						Value string `json:"value"`
					} `json:"text"`
					Type int `json:"type"`
					Web  struct {
						Title string `json:"title"`
						URL   string `json:"url"`
					} `json:"web"`
				} `json:"external_attr"`
			} `json:"external_profile"`
			ExternalUserid string `json:"external_userid"`
			Gender         int    `json:"gender"`
			Name           string `json:"name"`
			Position       string `json:"position"`
			Type           int    `json:"type"`
			Unionid        string `json:"unionid"`
		} `json:"external_contact"`
		FollowInfo struct {
			AddWay         int      `json:"add_way"`
			Createtime     int      `json:"createtime"`
			Description    string   `json:"description"`
			OperUserid     string   `json:"oper_userid"`
			Remark         string   `json:"remark"`
			RemarkCorpName string   `json:"remark_corp_name"`
			RemarkMobiles  []string `json:"remark_mobiles"`
			State          string   `json:"state"`
			TagID          []string `json:"tag_id"`
			Userid         string   `json:"userid"`
			WechatChannels struct {
				Nickname string `json:"nickname"`
			} `json:"wechat_channels"`
		} `json:"follow_info"`
	} `json:"external_contact_list"`
	NextCursor string `json:"next_cursor"`
}

type RespGetContactWayExternalcontact

type RespGetContactWayExternalcontact struct {
	ContactWay struct {
		ChatExpiresIn int `json:"chat_expires_in"`
		Conclusions   struct {
			Image struct {
				PicURL string `json:"pic_url"`
			} `json:"image"`
			Link struct {
				Desc   string `json:"desc"`
				Picurl string `json:"picurl"`
				Title  string `json:"title"`
				URL    string `json:"url"`
			} `json:"link"`
			Miniprogram struct {
				Appid      string `json:"appid"`
				Page       string `json:"page"`
				PicMediaID string `json:"pic_media_id"`
				Title      string `json:"title"`
			} `json:"miniprogram"`
			Text struct {
				Content string `json:"content"`
			} `json:"text"`
		} `json:"conclusions"`
		ConfigID   string   `json:"config_id"`
		ExpiresIn  int      `json:"expires_in"`
		IsTemp     bool     `json:"is_temp"`
		Party      []int    `json:"party"`
		QrCode     string   `json:"qr_code"`
		Remark     string   `json:"remark"`
		Scene      int      `json:"scene"`
		SkipVerify bool     `json:"skip_verify"`
		State      string   `json:"state"`
		Style      int      `json:"style"`
		Type       int      `json:"type"`
		Unionid    string   `json:"unionid"`
		User       []string `json:"user"`
	} `json:"contact_way"`
	CommonResp
}

type RespGetCorpQualification

type RespGetCorpQualification struct {
	CommonResp
	WechatChannelsBinding bool `json:"wechat_channels_binding"`
}

type RespGetCorpTagListExternalcontact

type RespGetCorpTagListExternalcontact struct {
	CommonResp
	TagGroup []struct {
		// CreateTime 标签组创建时间
		// CreateTime 标签创建时间
		// CreateTime 标签组创建时间
		// CreateTime 标签创建时间
		CreateTime int `json:"create_time"`
		// Deleted 标签组是否已经被删除,只在指定tag_id进行查询时返回
		// Deleted 标签是否已经被删除,只在指定tag_id/group_id进行查询时返回
		// Deleted 标签组是否已经被删除,只在指定tag_id进行查询时返回
		// Deleted 标签是否已经被删除,只在指定tag_id/group_id进行查询时返回
		Deleted bool `json:"deleted"`
		// GroupID 标签组id
		GroupID string `json:"group_id"`
		// GroupName 标签组名称
		GroupName string `json:"group_name"`
		// Order 标签组排序的次序值,order值大的排序靠前。有效的值范围是[0, 2^32)
		// Order 标签排序的次序值,order值大的排序靠前。有效的值范围是[0, 2^32)
		// Order 标签组排序的次序值,order值大的排序靠前。有效的值范围是[0, 2^32)
		// Order 标签排序的次序值,order值大的排序靠前。有效的值范围是[0, 2^32)
		Order int `json:"order"`
		Tag   []struct {
			CreateTime int  `json:"create_time"`
			Deleted    bool `json:"deleted"`
			// ID 标签id
			ID string `json:"id"`
			// Name 标签名称
			Name  string `json:"name"`
			Order int    `json:"order"`
		} `json:"tag"` // 标签组内的标签列表
	} `json:"tag_group"` // 标签组列表
}

type RespGetCorpTokenService

type RespGetCorpTokenService struct {
	AccessToken string `json:"access_token"`
	CommonResp
	ExpiresIn int `json:"expires_in"`
}

type RespGetCustomizedCorpTokenService

type RespGetCustomizedCorpTokenService struct {
	CommonResp
	AccessToken string `json:"access_token"`
	ExpiresIn   int    `json:"expires_in"`
}

type RespGetDepartment

type RespGetDepartment struct {
	Department struct {
		// DepartmentLeader 部门负责人的UserID,返回在应用可见范围内的部门负责人列表;第三方仅通讯录应用或者授权了“组织架构信息-应用可获取企业的部门组织架构信息-部门负责人”的第三方应用可获取
		DepartmentLeader []string `json:"department_leader"`
		// ID 部门id
		ID int `json:"id"`
		// Name 部门名称,代开发自建应用需要管理员授权才返回;第三方不可获取,需要通过<a href="#17172" rel="nofollow">通讯录展示组件</a>来展示部门名称
		Name string `json:"name"`
		// NameEn 部门英文名称,代开发自建应用需要管理员授权才返回;第三方不可获取,需要通过<a href="#17172" rel="nofollow">通讯录展示组件</a>来展示部门名称
		NameEn string `json:"name_en"`
		// Order 在父部门中的次序值。order值大的排序靠前。值范围是[0, 2^32)
		Order int `json:"order"`
		// Parentid 父部门id。根部门为1。
		Parentid int `json:"parentid"`
	} `json:"department"` // 部门详情。
	CommonResp
}

type RespGetExternalcontact

type RespGetExternalcontact struct {
	CommonResp
	ExternalContact struct {
		// Avatar 外部联系人头像,代开发自建应用需要管理员授权才可以获取,第三方不可获取,上游企业不可获取下游企业客户该字段
		Avatar string `json:"avatar"`
		// CorpFullName 外部联系人所在企业的主体名称,<font data-color="#DC143C" color="#DC143C">仅当联系人类型是企业微信用户时有此字段</font>
		CorpFullName string `json:"corp_full_name"`
		// CorpName 外部联系人所在企业的简称,<font data-color="#DC143C" color="#DC143C">仅当联系人类型是企业微信用户时有此字段</font>
		CorpName        string `json:"corp_name"`
		ExternalProfile struct {
			ExternalAttr []struct {
				Miniprogram struct {
					Appid    string `json:"appid"`
					Pagepath string `json:"pagepath"`
					Title    string `json:"title"`
				} `json:"miniprogram"`
				// Name 外部联系人的名称<sup>[注1]</sup>
				Name string `json:"name"`
				Text struct {
					Value string `json:"value"`
				} `json:"text"`
				// Type 外部联系人的类型,1表示该外部联系人是微信用户,2表示该外部联系人是企业微信用户
				// Type 该成员添加此外部联系人所打标签类型, 1-企业设置,2-用户自定义,3-规则组标签(<strong>仅系统应用返回</strong>)
				Type int `json:"type"`
				Web  struct {
					Title string `json:"title"`
					URL   string `json:"url"`
				} `json:"web"`
			} `json:"external_attr"`
		} `json:"external_profile"` // 外部联系人的自定义展示信息,可以有多个字段和多种类型,包括文本,网页和小程序,<font data-color="#DC143C" color="#DC143C">仅当联系人类型是企业微信用户时有此字段</font>,字段详情见<a href="#13450" rel="nofollow">对外属性</a>;
		// ExternalUserid 外部联系人的userid
		ExternalUserid string `json:"external_userid"`
		// Gender 外部联系人性别 0-未知 1-男性 2-女性。<strong>第三方不可获取</strong>,上游企业不可获取下游企业客户该字段,返回值为0,表示未定义
		Gender int `json:"gender"`
		// Name 外部联系人的名称<sup>[注1]</sup>
		Name string `json:"name"`
		// Position 外部联系人的职位,如果外部企业或用户选择隐藏职位,则不返回,<font data-color="#DC143C" color="#DC143C">仅当联系人类型是企业微信用户时有此字段</font>
		Position string `json:"position"`
		// Type 外部联系人的类型,1表示该外部联系人是微信用户,2表示该外部联系人是企业微信用户
		// Type 该成员添加此外部联系人所打标签类型, 1-企业设置,2-用户自定义,3-规则组标签(<strong>仅系统应用返回</strong>)
		Type int `json:"type"`
		// Unionid 外部联系人在微信开放平台的唯一身份标识(微信unionid),通过此字段企业可将外部联系人与公众号/小程序用户关联起来。<font data-color="#DC143C" color="#DC143C">仅当联系人类型是微信用户,且企业绑定了微信开发者ID有此字段</font>。<a href="#%E5%A6%82%E4%BD%95%E7%BB%91%E5%AE%9A%E5%BE%AE%E4%BF%A1%E5%BC%80%E5%8F%91%E8%80%85id" rel="nofollow">查看绑定方法</a>。<strong>第三方不可获取</strong>,上游企业不可获取下游企业客户的unionid字段
		Unionid string `json:"unionid"`
	} `json:"external_contact"`
	FollowUser []struct {
		// AddWay 该成员添加此客户的来源,具体含义详见<a href="#13878/%E6%9D%A5%E6%BA%90%E5%AE%9A%E4%B9%89" rel="nofollow">来源定义</a>
		AddWay int `json:"add_way"`
		// Createtime 该成员添加此外部联系人的时间
		Createtime int `json:"createtime"`
		// Description 该成员对此外部联系人的描述
		Description string `json:"description"`
		// OperUserid 发起添加的userid,如果成员主动添加,为成员的userid;如果是客户主动添加,则为客户的外部联系人userid;如果是内部成员共享/管理员分配,则为对应的成员/管理员userid
		OperUserid string `json:"oper_userid"`
		// Remark 该成员对此外部联系人的备注
		Remark string `json:"remark"`
		// RemarkCorpName 该成员对此微信客户备注的企业名称(仅微信客户有该字段)
		RemarkCorpName string `json:"remark_corp_name"`
		// RemarkMobiles 该成员对此客户备注的手机号码,代开发自建应用需要管理员授权才可以获取,<strong>第三方不可获取</strong>,上游企业不可获取下游企业客户该字段
		RemarkMobiles []string `json:"remark_mobiles"`
		// State 企业自定义的state参数,用于区分客户具体是通过哪个「联系我」添加,由企业通过<a href="#15645/%E9%85%8D%E7%BD%AE%E5%AE%A2%E6%88%B7%E8%81%94%E7%B3%BB%E3%80%8C%E8%81%94%E7%B3%BB%E6%88%91%E3%80%8D%E6%96%B9%E5%BC%8F" rel="nofollow">创建「联系我」方式</a>指定
		State string `json:"state"`
		Tags  []struct {
			// GroupName 该成员添加此外部联系人所打标签的分组名称(标签功能需要企业微信升级到2.7.5及以上版本)
			GroupName string `json:"group_name"`
			// TagID 该成员添加此外部联系人所打<strong>企业标签</strong>的id,<strong>用户自定义类型标签(type=2)不返回</strong>
			TagID string `json:"tag_id"`
			// TagName 该成员添加此外部联系人所打标签名称
			TagName string `json:"tag_name"`
			// Type 外部联系人的类型,1表示该外部联系人是微信用户,2表示该外部联系人是企业微信用户
			// Type 该成员添加此外部联系人所打标签类型, 1-企业设置,2-用户自定义,3-规则组标签(<strong>仅系统应用返回</strong>)
			Type int `json:"type"`
		} `json:"tags"`
		// Userid 添加了此外部联系人的企业成员userid
		Userid         string `json:"userid"`
		WechatChannels struct {
			// Nickname 视频号名称
			Nickname string `json:"nickname"`
		} `json:"wechat_channels"` // 该成员添加此客户的来源add_way为10时,对应的视频号信息
	} `json:"follow_user"`
	// NextCursor 分页的cursor,当跟进人多于500人时返回
	NextCursor string `json:"next_cursor"`
}

type RespGetGroupchat

type RespGetGroupchat struct {
	CommonResp
	GroupChat struct {
		AdminList []struct {
			Userid string `json:"userid"`
		} `json:"admin_list"`
		ChatID     string `json:"chat_id"`
		CreateTime int    `json:"create_time"`
		MemberList []struct {
			GroupNickname string `json:"group_nickname"`
			Invitor       struct {
				Userid string `json:"userid"`
			} `json:"invitor"`
			JoinScene int    `json:"join_scene"`
			JoinTime  int    `json:"join_time"`
			Name      string `json:"name"`
			Type      int    `json:"type"`
			Unionid   string `json:"unionid"`
			Userid    string `json:"userid"`
		} `json:"member_list"`
		Name   string `json:"name"`
		Notice string `json:"notice"`
		Owner  string `json:"owner"`
	} `json:"group_chat"`
}

type RespGetGroupmsgListV2Externalcontact

type RespGetGroupmsgListV2Externalcontact struct {
	CommonResp
	GroupMsgList []struct {
		Attachments []struct {
			File struct {
				// MediaID 图片的media_id,可以通过<a href="#10115" rel="nofollow">获取临时素材</a>下载资源
				// MediaID 视频的media_id,可以通过<a href="#10115" rel="nofollow">获取临时素材</a>下载资源
				// MediaID 文件的media_id,可以通过<a href="#10115" rel="nofollow">获取临时素材</a>下载资源
				// MediaID 图片的media_id,可以通过<a href="#10115" rel="nofollow">获取临时素材</a>下载资源
				// MediaID 视频的media_id,可以通过<a href="#10115" rel="nofollow">获取临时素材</a>下载资源
				// MediaID 文件的media_id,可以通过<a href="#10115" rel="nofollow">获取临时素材</a>下载资源
				// MediaID 图片的media_id,可以通过<a href="#10115" rel="nofollow">获取临时素材</a>下载资源
				// MediaID 视频的media_id,可以通过<a href="#10115" rel="nofollow">获取临时素材</a>下载资源
				// MediaID 文件的media_id,可以通过<a href="#10115" rel="nofollow">获取临时素材</a>下载资源
				MediaID string `json:"media_id"`
			} `json:"file"`
			Image struct {
				MediaID string `json:"media_id"`
				// PicURL 图片的url,与图片的media_id不能共存优先吐出media_id
				PicURL string `json:"pic_url"`
			} `json:"image"`
			Link struct {
				// Desc 图文消息的描述,最多512个<strong>字节</strong>
				Desc string `json:"desc"`
				// Picurl 图文消息封面的url
				Picurl string `json:"picurl"`
				// Title 图文消息标题
				// Title 小程序消息标题,最多64个<strong>字节</strong>
				Title string `json:"title"`
				// URL 图文消息的链接
				URL string `json:"url"`
			} `json:"link"`
			Miniprogram struct {
				// Appid 小程序appid,必须是<strong>关联到企业的小程序应用</strong>
				Appid string `json:"appid"`
				// Page 小程序page路径
				Page       string `json:"page"`
				PicMediaID string `json:"pic_media_id"`
				// Title 图文消息标题
				// Title 小程序消息标题,最多64个<strong>字节</strong>
				Title string `json:"title"`
			} `json:"miniprogram"`
			// Msgtype 值必须是image
			// Msgtype 值必须是link
			// Msgtype 值必须是miniprogram
			// Msgtype 值必须是video
			// Msgtype 值必须是file
			Msgtype string `json:"msgtype"`
			Video   struct {
				MediaID string `json:"media_id"`
			} `json:"video"`
		} `json:"attachments"`
		// CreateTime 创建时间
		CreateTime string `json:"create_time"`
		// CreateType 群发消息创建来源。0:企业 1:个人
		CreateType int `json:"create_type"`
		// Creator 群发消息创建者userid,<a href="#15836" rel="nofollow">API接口</a>创建的群发消息不返回该字段
		Creator string `json:"creator"`
		// Msgid 企业群发消息的id,可用于<a href="" rel="nofollow">获取企业群发成员执行结果</a>
		Msgid string `json:"msgid"`
		Text  struct {
			// Content 消息文本内容,最多4000个<strong>字节</strong>
			Content string `json:"content"`
		} `json:"text"`
	} `json:"group_msg_list"` // 群发记录列表
	// NextCursor 分页游标,再下次请求时填写以获取之后分页的记录,如果已经没有更多的数据则返回空
	NextCursor string `json:"next_cursor"`
}

type RespGetGroupmsgSendResultExternalcontact

type RespGetGroupmsgSendResultExternalcontact struct {
	CommonResp
	// NextCursor 分页游标,再下次请求时填写以获取之后分页的记录,如果已经没有更多的数据则返回空
	NextCursor string `json:"next_cursor"`
	SendList   []struct {
		// ChatID 外部客户群id,群发消息到客户不返回该字段
		ChatID string `json:"chat_id"`
		// ExternalUserid 外部联系人userid,群发消息到企业的客户群不返回该字段
		ExternalUserid string `json:"external_userid"`
		// SendTime 发送时间,发送状态为1时返回
		SendTime int `json:"send_time"`
		// Status 发送状态:0-未发送 1-已发送 2-因客户不是好友导致发送失败 3-因客户已经收到其他群发消息导致发送失败
		Status int `json:"status"`
		// Userid 企业服务人员的userid
		Userid string `json:"userid"`
	} `json:"send_list"` // 群成员发送结果列表
}

type RespGetGroupmsgTaskExternalcontact

type RespGetGroupmsgTaskExternalcontact struct {
	CommonResp
	// NextCursor 分页游标,再下次请求时填写以获取之后分页的记录,如果已经没有更多的数据则返回空
	NextCursor string `json:"next_cursor"`
	TaskList   []struct {
		// SendTime 发送时间,未发送时不返回
		SendTime int `json:"send_time"`
		// Status 发送状态:0-未发送 2-已发送
		Status int `json:"status"`
		// Userid 企业服务人员的userid
		Userid string `json:"userid"`
	} `json:"task_list"` // 群发成员发送任务列表
}

type RespGetNewExternalUseridExternalcontact

type RespGetNewExternalUseridExternalcontact struct {
	CommonResp
	Items []struct {
		ExternalUserid    string `json:"external_userid"`
		NewExternalUserid string `json:"new_external_userid"`
	} `json:"items"`
}

type RespGetOrderLicense

type RespGetOrderLicense struct {
	CommonResp
	Order struct {
		AccountCount struct {
			// BaseCount 基础帐号个数
			BaseCount int `json:"base_count"`
			// ExternalContactCount 互通帐号个数
			ExternalContactCount int `json:"external_contact_count"`
		} `json:"account_count"` // 订单的帐号数详情
		AccountDuration struct {
			// Months 购买的月数,每个月按照31天计算
			Months int `json:"months"`
		} `json:"account_duration"` // 帐号购买时长
		// Corpid 客户企业id,返回加密的corpid
		Corpid string `json:"corpid"`
		// CreateTime 创建时间
		CreateTime int `json:"create_time"`
		// OrderID 订单号
		OrderID string `json:"order_id"`
		// OrderStatus 订单状态,0:待支付,1:已支付,2:未支付,订单已关闭,3:未支付,订单已过期,4:申请退款中,5:退款成功,6:退款被拒绝
		OrderStatus int `json:"order_status"`
		// OrderType 订单类型,1:购买帐号,2:续期帐号 5:历史企业迁移订单
		OrderType int `json:"order_type"`
		// PayTime 支付时间。迁移订单不返回该字段
		PayTime int `json:"pay_time"`
		// Price 订单金额,单位分
		Price int `json:"price"`
	} `json:"order"` // 订单详情
}

type RespGetPermanentCodeService

type RespGetPermanentCodeService struct {
	AccessToken  string `json:"access_token"`
	AuthCorpInfo struct {
		CorpFullName      string `json:"corp_full_name"`
		CorpIndustry      string `json:"corp_industry"`
		CorpName          string `json:"corp_name"`
		CorpScale         string `json:"corp_scale"`
		CorpSquareLogoURL string `json:"corp_square_logo_url"`
		CorpRoundLogoURL  string `json:"corp_round_logo_url"`
		CorpSubIndustry   string `json:"corp_sub_industry"`
		CorpType          string `json:"corp_type"`
		CorpUserMax       int    `json:"corp_user_max"`
		CorpWxqrcode      string `json:"corp_wxqrcode"`
		Corpid            string `json:"corpid"`
		SubjectType       int    `json:"subject_type"`
		VerifiedEndTime   int    `json:"verified_end_time"`
		Location          string `json:"location"`
	} `json:"auth_corp_info"`
	AuthInfo struct {
		Agent []struct {
			Agentid         int    `json:"agentid"`
			Appid           int    `json:"appid"`
			AuthMode        int    `json:"auth_mode"`
			IsCustomizedApp bool   `json:"is_customized_app"`
			Name            string `json:"name"`
			Privilege       struct {
				AllowParty []int    `json:"allow_party"`
				AllowTag   []int    `json:"allow_tag"`
				AllowUser  []string `json:"allow_user"`
				ExtraParty []int    `json:"extra_party"`
				ExtraTag   []int    `json:"extra_tag"`
				ExtraUser  []string `json:"extra_user"`
				Level      int      `json:"level"`
			} `json:"privilege"`
			RoundLogoURL string `json:"round_logo_url"`
			SharedFrom   struct {
				Corpid string `json:"corpid"`
			} `json:"shared_from"`
			SquareLogoURL string `json:"square_logo_url"`
		} `json:"agent"`
	} `json:"auth_info"`
	AuthUserInfo struct {
		Avatar     string `json:"avatar"`
		Name       string `json:"name"`
		OpenUserid string `json:"open_userid"`
		Userid     string `json:"userid"`
	} `json:"auth_user_info"`
	DealerCorpInfo struct {
		CorpName string `json:"corp_name"`
		Corpid   string `json:"corpid"`
	} `json:"dealer_corp_info"`
	CommonResp
	ExpiresIn        int    `json:"expires_in"`
	PermanentCode    string `json:"permanent_code"`
	RegisterCodeInfo struct {
		RegisterCode string `json:"register_code"`
		State        string `json:"state"`
		TemplateID   string `json:"template_id"`
	} `json:"register_code_info"`
}

type RespGetProviderTokenService

type RespGetProviderTokenService struct {
	CommonResp

	ExpiresIn           int    `json:"expires_in"`
	ProviderAccessToken string `json:"provider_access_token"`
}

type RespGetRegisterCodeService

type RespGetRegisterCodeService struct {
	CommonResp
	ExpiresIn    int    `json:"expires_in"`
	RegisterCode string `json:"register_code"`
}

type RespGetSuiteTokenService

type RespGetSuiteTokenService struct {
	CommonResp
	ExpiresIn        int    `json:"expires_in"`
	SuiteAccessToken string `json:"suite_access_token"`
}

type RespGetUnassignedListExternalcontact

type RespGetUnassignedListExternalcontact struct {
	CommonResp
	Info []struct {
		// DimissionTime 成员离职时间
		DimissionTime int `json:"dimission_time"`
		// ExternalUserid 外部联系人userid
		ExternalUserid string `json:"external_userid"`
		// HandoverUserid 离职成员的userid
		HandoverUserid string `json:"handover_userid"`
	} `json:"info"`
	// IsLast 是否是最后一条记录
	IsLast bool `json:"is_last"`
	// NextCursor 分页查询游标,已经查完则返回空(&#34;&#34;),使用<code>page_id</code>作为查询参数时不返回
	NextCursor string `json:"next_cursor"`
}

type RespGetUser

type RespGetUser struct {
	Address    string `json:"address"`
	Alias      string `json:"alias"`
	Avatar     string `json:"avatar"`
	Department []int  `json:"department"`
	Email      string `json:"email"`
	CommonResp
	Extattr struct {
		Attrs []struct {
			Name string `json:"name"`
			Text struct {
				Value string `json:"value"`
			} `json:"text"`
			Type int `json:"type"`
			Web  struct {
				Title string `json:"title"`
				URL   string `json:"url"`
			} `json:"web"`
		} `json:"attrs"`
	} `json:"extattr"`
	ExternalPosition string `json:"external_position"`
	ExternalProfile  struct {
		ExternalAttr []struct {
			Miniprogram struct {
				Appid    string `json:"appid"`
				Pagepath string `json:"pagepath"`
				Title    string `json:"title"`
			} `json:"miniprogram"`
			Name string `json:"name"`
			Text struct {
				Value string `json:"value"`
			} `json:"text"`
			Type int `json:"type"`
			Web  struct {
				Title string `json:"title"`
				URL   string `json:"url"`
			} `json:"web"`
		} `json:"external_attr"`
		ExternalCorpName string `json:"external_corp_name"`
		WechatChannels   struct {
			Nickname string `json:"nickname"`
			Status   int    `json:"status"`
		} `json:"wechat_channels"`
	} `json:"external_profile"`
	Gender         string `json:"gender"`
	IsLeaderInDept []int  `json:"is_leader_in_dept"`
	MainDepartment int    `json:"main_department"`
	Mobile         string `json:"mobile"`
	Name           string `json:"name"`
	OpenUserid     string `json:"open_userid"`
	Order          []int  `json:"order"`
	Position       string `json:"position"`
	QrCode         string `json:"qr_code"`
	Status         int    `json:"status"`
	Telephone      string `json:"telephone"`
	ThumbAvatar    string `json:"thumb_avatar"`
	Userid         string `json:"userid"`
}

type RespGetuserdetail3RdService

type RespGetuserdetail3RdService struct {
	Avatar string `json:"avatar"`
	Corpid string `json:"corpid"`
	CommonResp
	Gender string `json:"gender"`
	Name   string `json:"name"`
	QrCode string `json:"qr_code"`
	Userid string `json:"userid"`
}

type RespGetuserinfo3RdService

type RespGetuserinfo3RdService struct {
	CommonResp
	CorpID     string `json:"CorpId"`
	UserID     string `json:"UserId"`
	DeviceID   string `json:"DeviceId"`
	UserTicket string `json:"user_ticket"`
	ExpiresIn  int    `json:"expires_in"`
	OpenUserID string `json:"open_userid"`
}

type RespGroupchatStatistic

type RespGroupchatStatistic struct {
	CommonResp
	Items []struct {
		StatTime int64 `json:"stat_time"`
		Data     struct {
			NewChatCnt            uint64 `json:"new_chat_cnt"`
			ChatTotal             uint64 `json:"chat_total"`
			ChatHasMsg            uint64 `json:"chat_has_msg"`
			NewMemberCnt          uint64 `json:"new_member_cnt"`
			MemberTotal           uint64 `json:"member_total"`
			MemberHasMsg          uint64 `json:"member_has_msg"`
			MsgTotal              uint64 `json:"msg_total"`
			MigrateTraineeChatCnt uint64 `json:"migrate_trainee_chat_cnt"`
		} `json:"data"`
	} `json:"items"`
}

type RespListActivedAccountLicense

type RespListActivedAccountLicense struct {
	AccountList []struct {
		// ActiveTime 激活时间
		ActiveTime int `json:"active_time"`
		// ExpireTime 过期时间
		ExpireTime int `json:"expire_time"`
		// Type 激活码帐号类型:1:基础帐号,2:互通帐号
		Type int `json:"type"`
		// Userid 企业的成员userid。返回加密的userid
		Userid string `json:"userid"`
	} `json:"account_list"` // 已激活成员列表,已激活过期的也会返回
	CommonResp
	// HasMore 是否结束
	HasMore int `json:"has_more"`
	// NextCursor 分页游标,再下次请求时填写以获取之后分页的记录,如果已经没有更多的数据则返回空
	NextCursor string `json:"next_cursor"`
}

type RespListContactWayExternalcontact

type RespListContactWayExternalcontact struct {
	ContactWay []struct {
		ConfigID string `json:"config_id"`
	} `json:"contact_way"`
	CommonResp
	NextCursor string `json:"next_cursor"`
}

type RespListDepartment

type RespListDepartment struct {
	Department []struct {
		// DepartmentLeader 部门负责人的UserID;第三方仅通讯录应用可获取
		DepartmentLeader []string `json:"department_leader"`
		// ID 创建的部门id
		ID int `json:"id"`
		// Name 部门名称,代开发自建应用需要管理员授权才返回;此字段从2019年12月30日起,对新创建第三方应用不再返回,2020年6月30日起,对所有历史第三方应用不再返回name,返回的name字段使用id代替,后续第三方仅通讯录应用可获取,未返回名称的情况需要通过<a href="#17172" rel="nofollow">通讯录展示组件</a>来展示部门名称
		Name string `json:"name"`
		// NameEn 英文名称,此字段从2019年12月30日起,对新创建第三方应用不再返回,2020年6月30日起,对所有历史第三方应用不再返回该字段
		NameEn string `json:"name_en"`
		// Order 在父部门中的次序值。order值大的排序靠前。值范围是[0, 2^32)
		Order int `json:"order"`
		// Parentid 父部门id。根部门为1
		Parentid int `json:"parentid"`
	} `json:"department"` // 部门列表数据。
	CommonResp
}

type RespListExternalcontact

type RespListExternalcontact struct {
	CommonResp
	ExternalUserid []string `json:"external_userid"`
}

type RespListGroupchat

type RespListGroupchat struct {
	CommonResp
	GroupChatList []struct {
		ChatID string `json:"chat_id"`
		Status int    `json:"status"`
	} `json:"group_chat_list"`
	NextCursor string `json:"next_cursor"`
}

type RespListOrderAccountLicense

type RespListOrderAccountLicense struct {
	AccountList []struct {
		// ActiveCode 帐号码,订单类型为购买帐号时,返回该字段
		ActiveCode string `json:"active_code"`
		// Type 帐号类型:1:基础帐号,2:互通帐号
		Type int `json:"type"`
		// Userid 企业续期成员userid,订单类型为续期帐号时,返回该字段。返回加密的userid
		Userid string `json:"userid"`
	} `json:"account_list"` // 帐号列表
	CommonResp
	// HasMore 是否结束
	HasMore int `json:"has_more"`
	// NextCursor 分页游标,再下次请求时填写以获取之后分页的记录
	NextCursor string `json:"next_cursor"`
}

type RespListOrderLicense

type RespListOrderLicense struct {
	CommonResp
	// HasMore 是否结束
	HasMore int `json:"has_more"`
	// NextCursor 分页游标,再下次请求时填写以获取之后分页的记录
	NextCursor string `json:"next_cursor"`
	OrderList  []struct {
		// OrderID 订单id
		OrderID string `json:"order_id"`
		// OrderType 订单类型,1:购买帐号,2:续期帐号,5:历史企业迁移订单
		OrderType int `json:"order_type"`
	} `json:"order_list"` // 订单列表
}

type RespListUser

type RespListUser struct {
	CommonResp
	Userlist []struct {
		// Address 地址。代开发自建应用需要管理员授权才返回;第三方仅通讯录应用可获取;对于非第三方创建的成员,第三方通讯录应用也不可获取;上游企业不可获取下游企业成员该字段
		Address string `json:"address"`
		// Alias 别名;第三方仅通讯录应用可获取;对于非第三方创建的成员,第三方通讯录应用也不可获取;上游企业不可获取下游企业成员该字段
		Alias string `json:"alias"`
		// Avatar 头像url。 第三方仅通讯录应用可获取;对于非第三方创建的成员,第三方通讯录应用也不可获取;上游企业不可获取下游企业成员该字段
		Avatar string `json:"avatar"`
		// BizMail 企业邮箱,代开发自建应用不返回;第三方仅通讯录应用可获取;对于非第三方创建的成员,第三方通讯录应用也不可获取;上游企业不可获取下游企业成员该字段
		BizMail string `json:"biz_mail"`
		// Department 成员所属部门id列表,仅返回该应用有查看权限的部门id。对授权了“组织架构信息”的第三方应用,返回成员所属的全部部门id列表
		Department []int `json:"department"`
		// DirectLeader 直属上级UserID,返回在应用可见范围内的直属上级列表,最多有五个直属上级;第三方通讯录应用或者授权了“组织架构信息-应用可获取可见范围内成员组织架构信息-直属上级”权限的第三方应用可获取;对于非第三方创建的成员,第三方通讯录应用不可获取;上游企业不可获取下游企业成员该字段
		DirectLeader []string `json:"direct_leader"`
		// Email 邮箱,代开发自建应用需要管理员授权才返回;第三方仅通讯录应用可获取;对于非第三方创建的成员,第三方通讯录应用也不可获取;上游企业不可获取下游企业成员该字段
		Email       string `json:"email"`
		EnglishName string `json:"english_name"`
		Extattr     struct {
			Attrs []struct {
				// Name 成员名称;第三方不可获取,调用时返回userid以代替name;代开发自建应用需要管理员授权才返回;对于非第三方创建的成员,第三方通讯录应用也不可获取;未返回名称的情况需要通过<a href="#17172" rel="nofollow">通讯录展示组件</a>来展示名字
				// Name 成员名称;第三方不可获取,调用时返回userid以代替name;代开发自建应用需要管理员授权才返回;对于非第三方创建的成员,第三方通讯录应用也不可获取;未返回名称的情况需要通过<a href="#17172" rel="nofollow">通讯录展示组件</a>来展示名字
				Name string `json:"name"`
				Text struct {
					Value string `json:"value"`
				} `json:"text"`
				Type int `json:"type"`
				Web  struct {
					Title string `json:"title"`
					URL   string `json:"url"`
				} `json:"web"`
			} `json:"attrs"`
		} `json:"extattr"` // 扩展属性,代开发自建应用需要管理员授权才返回;第三方仅通讯录应用可获取;对于非第三方创建的成员,第三方通讯录应用也不可获取;上游企业不可获取下游企业成员该字段
		// ExternalPosition 对外职务,如果设置了该值,则以此作为对外展示的职务,否则以position来展示。代开发自建应用需要管理员授权才返回;第三方仅通讯录应用可获取;对于非第三方创建的成员,第三方通讯录应用也不可获取;上游企业不可获取下游企业成员该字段
		ExternalPosition string `json:"external_position"`
		ExternalProfile  struct {
			ExternalAttr []struct {
				Miniprogram struct {
					Appid    string `json:"appid"`
					Pagepath string `json:"pagepath"`
					Title    string `json:"title"`
				} `json:"miniprogram"`
				Name string `json:"name"`
				Text struct {
					Value string `json:"value"`
				} `json:"text"`
				Type int `json:"type"`
				Web  struct {
					Title string `json:"title"`
					URL   string `json:"url"`
				} `json:"web"`
			} `json:"external_attr"`
			ExternalCorpName string `json:"external_corp_name"`
			WechatChannels   struct {
				Nickname string `json:"nickname"`
				// Status 激活状态: 1=已激活,2=已禁用,4=未激活,5=退出企业。<br/>已激活代表已激活企业微信或已关注微信插件(原企业号)。未激活代表既未激活企业微信又未关注微信插件(原企业号)。
				Status int `json:"status"`
			} `json:"wechat_channels"`
		} `json:"external_profile"` // 成员对外属性,字段详情见<a href="#13450" rel="nofollow">对外属性</a>;代开发自建应用需要管理员授权才返回;第三方仅通讯录应用可获取;对于非第三方创建的成员,第三方通讯录应用也不可获取;上游企业不可获取下游企业成员该字段
		// Gender 性别。0表示未定义,1表示男性,2表示女性。第三方仅通讯录应用可获取;对于非第三方创建的成员,第三方通讯录应用也不可获取;上游企业不可获取下游企业成员该字段。注:不可获取指返回值为0
		Gender string `json:"gender"`
		// IsLeaderInDept 表示在所在的部门内是否为部门负责人。0-否;1-是。是一个列表,数量必须与department一致。第三方通讯录应用或者授权了“组织架构信息-应用可获取企业的部门组织架构信息-部门负责人”权限的第三方应用可获取;对于非第三方创建的成员,第三方通讯录应用不可获取;上游企业不可获取下游企业成员该字段
		IsLeaderInDept []int `json:"is_leader_in_dept"`
		// MainDepartment 主部门,仅当应用对主部门有查看权限时返回。
		MainDepartment int `json:"main_department"`
		// Mobile 手机号码,代开发自建应用需要管理员授权才返回;第三方仅通讯录应用可获取;对于非第三方创建的成员,第三方通讯录应用也不可获取;上游企业不可获取下游企业成员该字段
		Mobile string `json:"mobile"`
		// Name 成员名称;第三方不可获取,调用时返回userid以代替name;代开发自建应用需要管理员授权才返回;对于非第三方创建的成员,第三方通讯录应用也不可获取;未返回名称的情况需要通过<a href="#17172" rel="nofollow">通讯录展示组件</a>来展示名字
		Name string `json:"name"`
		// OpenUserid 全局唯一。对于同一个服务商,不同应用获取到企业内同一个成员的open_userid是相同的,最多64个字节。仅第三方应用可获取
		OpenUserid string `json:"open_userid"`
		// Order 部门内的排序值,默认为0。数量必须和department一致,数值越大排序越前面。值范围是[0, 2^32)
		Order []int `json:"order"`
		// Position 职务信息;代开发自建应用需要管理员授权才返回;第三方仅通讯录应用可获取;对于非第三方创建的成员,第三方通讯录应用也不可获取;上游企业不可获取下游企业成员该字段
		Position string `json:"position"`
		// QrCode 员工个人二维码,扫描可添加为外部联系人(注意返回的是一个url,可在浏览器上打开该url以展示二维码);第三方仅通讯录应用可获取;对于非第三方创建的成员,第三方通讯录应用也不可获取;上游企业不可获取下游企业成员该字段
		QrCode string `json:"qr_code"`
		// Status 激活状态: 1=已激活,2=已禁用,4=未激活,5=退出企业。<br/>已激活代表已激活企业微信或已关注微信插件(原企业号)。未激活代表既未激活企业微信又未关注微信插件(原企业号)。
		Status int `json:"status"`
		// Telephone 座机。代开发自建应用需要管理员授权才返回;第三方仅通讯录应用可获取;对于非第三方创建的成员,第三方通讯录应用也不可获取;上游企业不可获取下游企业成员该字段
		Telephone string `json:"telephone"`
		// ThumbAvatar 头像缩略图url。第三方仅通讯录应用可获取;对于非第三方创建的成员,第三方通讯录应用也不可获取;上游企业不可获取下游企业成员该字段
		ThumbAvatar string `json:"thumb_avatar"`
		// Userid 成员UserID。对应管理端的帐号
		Userid string `json:"userid"`
	} `json:"userlist"` // 成员列表
}

type RespMarkTagExternalcontact

type RespMarkTagExternalcontact struct {
	CommonResp
}

type RespOnjobTransferGroupchat added in v1.0.13

type RespOnjobTransferGroupchat struct {
	// Errcode 没能成功继承的群,错误码
	CommonResp
	Errmsg         string `json:"errmsg"`
	FailedChatList []struct {
		// ChatID 没能成功继承的群ID
		ChatID string `json:"chat_id"`
		// Errcode 没能成功继承的群,错误码
		CommonResp
		Errmsg string `json:"errmsg"`
	} `json:"failed_chat_list"` // 没能成功继承的群
}

type RespRemarkExternalcontact

type RespRemarkExternalcontact struct {
	CommonResp
}

type RespSentMessageCard

type RespSentMessageCard struct {
	CommonResp
	InvalidUser  string `json:"invaliduser"`   // 不合法的userid
	InvalidParty string `json:"invalidparty"`  // 不合法的partyid
	InvalidTag   string `json:"invalidtag"`    // 不合法的标签id
	MsgId        string `json:"msgid"`         // 消息id,用于撤回应用消息
	ResponseCode string `json:"response_code"` // 仅消息类型为“按钮交互型”,“投票选择型”和“多项选择型”的模板卡片消息返回,应用可使用response_code调用更新模版卡片消息接口,24小时内有效,且只能使用一次
}

type RespSetAutoActiveStatusLicense added in v1.0.13

type RespSetAutoActiveStatusLicense struct {
	CommonResp
}

type RespSimplelistDepartment

type RespSimplelistDepartment struct {
	DepartmentID []struct {
		// ID 创建的部门id
		ID int `json:"id"`
		// Order 在父部门中的次序值。order值大的排序靠前。值范围是[0, 2^32)。
		Order int `json:"order"`
		// Parentid 父部门id。根部门为1。
		Parentid int `json:"parentid"`
	} `json:"department_id"` // 部门列表数据。
	CommonResp
}

type RespSimplelistUser

type RespSimplelistUser struct {
	CommonResp
	Userlist []struct {
		// Department 成员所属部门列表。列表项为部门ID,32位整型
		Department []int `json:"department"`
		// Name 成员名称,代开发自建应用需要管理员授权才返回;此字段从2019年12月30日起,对新创建第三方应用不再返回真实name,使用userid代替name,2020年6月30日起,对所有历史第三方应用不再返回真实name,使用userid代替name,后续第三方仅通讯录应用可获取,未返回名称的情况需要通过<a href="#17172" rel="nofollow">通讯录展示组件</a>来展示名字
		Name string `json:"name"`
		// OpenUserid 全局唯一。对于同一个服务商,不同应用获取到企业内同一个成员的open_userid是相同的,最多64个字节。仅第三方应用可获取
		OpenUserid string `json:"open_userid"`
		// Userid 成员UserID。对应管理端的帐号
		Userid string `json:"userid"`
	} `json:"userlist"` // 成员列表
}

type RespSubmitOrderJobLicense

type RespSubmitOrderJobLicense struct {
	CommonResp
	// OrderID 订单号
	OrderID string `json:"order_id"`
}

type RespTransferCustomerExternalcontact

type RespTransferCustomerExternalcontact struct {
	Customer []struct {
		// Errcode 对此客户进行分配的结果, 具体可参考<a href="#10649" rel="nofollow">全局错误码</a>, <strong>0表示成功发起接替,待24小时后自动接替,并不代表最终接替成功</strong>
		Errcode int `json:"errcode"`
		// ExternalUserid 客户的<code>external_userid</code>
		ExternalUserid string `json:"external_userid"`
	} `json:"customer"`
	// Errcode 对此客户进行分配的结果, 具体可参考<a href="#10649" rel="nofollow">全局错误码</a>, <strong>0表示成功发起接替,待24小时后自动接替,并不代表最终接替成功</strong>
	CommonResp
}

type RespTransferCustomerResigned

type RespTransferCustomerResigned struct {
	Customer []struct {
		// Errcode 对此客户进行分配的结果, 具体可参考<a href="#10649" rel="nofollow">全局错误码</a>, <strong>0表示开始分配流程,待24小时后自动接替,并不代表最终分配成功</strong>
		Errcode int `json:"errcode"`
		// ExternalUserid 客户的<code>external_userid</code>
		ExternalUserid string `json:"external_userid"`
	} `json:"customer"`
	// Errcode 对此客户进行分配的结果, 具体可参考<a href="#10649" rel="nofollow">全局错误码</a>, <strong>0表示开始分配流程,待24小时后自动接替,并不代表最终分配成功</strong>
	CommonResp
}

type RespTransferGroupchat

type RespTransferGroupchat struct {
	// Errcode 没能成功继承的群,错误码
	CommonResp
	Errmsg         string `json:"errmsg"`
	FailedChatList []struct {
		// ChatID 没能成功继承的群ID
		ChatID string `json:"chat_id"`
		// Errcode 没能成功继承的群,错误码
		CommonResp
		Errmsg string `json:"errmsg"`
	} `json:"failed_chat_list"` // 没能成功继承的群
}

type RespTransferResultExternalcontact

type RespTransferResultExternalcontact struct {
	Customer []struct {
		// ExternalUserid 转接客户的<code>外部联系人userid</code>
		ExternalUserid string `json:"external_userid"`
		// Status 接替状态, 1-接替完毕 2-等待接替 3-客户拒绝 4-接替成员客户达到上限 5-无接替记录
		Status int `json:"status"`
		// TakeoverTime 接替客户的时间,如果是等待接替状态,则为未来的自动接替时间
		TakeoverTime int `json:"takeover_time"`
	} `json:"customer"`
	CommonResp
	// NextCursor 下个分页的起始cursor
	NextCursor string `json:"next_cursor"`
}

type RespTransferResultResigned

type RespTransferResultResigned struct {
	Customer []struct {
		// ExternalUserid 转接客户的<code>外部联系人userid</code>
		ExternalUserid string `json:"external_userid"`
		// Status 接替状态, 1-接替完毕 2-等待接替 3-客户拒绝 4-接替成员客户达到上限
		Status int `json:"status"`
		// TakeoverTime 接替客户的时间,如果是等待接替状态,则为未来的自动接替时间
		TakeoverTime int `json:"takeover_time"`
	} `json:"customer"`
	CommonResp
	// NextCursor 下个分页的起始cursor
	NextCursor string `json:"next_cursor"`
}

type RespUnionidToExternalUserid3RdExternalcontact

type RespUnionidToExternalUserid3RdExternalcontact struct {
	CommonResp
	ExternalUseridInfo []struct {
		Corpid         string `json:"corpid"`
		ExternalUserid string `json:"external_userid"`
	} `json:"external_userid_info"`
}

RespUnionidToExternalUserid3RdExternalcontact 4.2 unionid查询external_userid响应 文档:https://developer.work.weixin.qq.com/document/path/95327#4.2 unionid查询external_userid

type RespUpdateContactWayExternalcontact

type RespUpdateContactWayExternalcontact struct {
	CommonResp
}

type RespUpdateTemplateCardMessage

type RespUpdateTemplateCardMessage struct {
	CommonResp
}

type RespUploadMedia

type RespUploadMedia struct {
	CommonResp
	Type      string `json:"type"`
	MediaId   string `json:"media_id"`
	CreatedAt string `json:"created_at"`
}

RespUploadMedia 上传临时素材响应 文档:https://developer.work.weixin.qq.com/document/path/90389#上传临时素材

type RespUserBehaviorData

type RespUserBehaviorData struct {
	CommonResp
	BehaviorData []struct {
		StatTime            int64   `json:"stat_time"`
		ChatCnt             uint64  `json:"chat_cnt"`
		MessageCnt          uint64  `json:"message_cnt"`
		ReplyPercentage     float64 `json:"reply_percentage"`
		AvgReplyTime        uint64  `json:"avg_reply_time"`
		NegativeFeedbackCnt uint64  `json:"negative_feedback_cnt"`
		NewApplyCnt         uint64  `json:"new_apply_cnt"`
		NewContactCnt       uint64  `json:"new_contact_cnt"`
	} `json:"behavior_data"`
}

type RespUseridToOpenuseridBatch

type RespUseridToOpenuseridBatch struct {
	CommonResp
	OpenUseridList []struct {
		Userid     string `json:"userid"`
		OpenUserid string `json:"open_userid"`
	} `json:"open_userid_list"`
	InvalidUseridList []string `json:"invalid_userid_list"`
}

RespUseridToOpenuseridBatch 2.4 userid的转换响应 文档:https://developer.work.weixin.qq.com/document/path/95327#2.4 userid的转换

type SentMiniNoticeBody

type SentMiniNoticeBody struct {
	Appid             string                      `json:"appid"`               // 小程序appid,必须是与当前应用关联的小程序
	Page              string                      `json:"page"`                // 点击消息卡片后的小程序页面,仅限本小程序内的页面。该字段不填则消息点击后不跳转。
	Title             string                      `json:"title"`               // 消息标题,长度限制4-12个汉字(支持id转译)
	Description       string                      `json:"description"`         // 消息描述,长度限制4-12个汉字(支持id转译)
	EmphasisFirstItem bool                        `json:"emphasis_first_item"` // 是否放大第一个content_item
	ContentItem       []SentMiniNoticeContentItem `json:"content_item"`        // 消息内容键值对,最多允许10个item
}

type SentMiniNoticeContentItem

type SentMiniNoticeContentItem struct {
	Key   string `json:"key"`   // 长度10个汉字以内
	Value string `json:"value"` // 长度30个汉字以内(支持id转译)
}

type SentTemplateCardBody

type SentTemplateCardBody struct {
	CardType              string                              `json:"card_type"`                         // 模板卡片类型,文本通知型卡片填写 "text_notice"
	Source                *TemplateCardSource                 `json:"source,omitempty"`                  // 卡片来源样式信息,不需要来源样式可不填写
	ActionMenu            *TemplateCardActionMenu             `json:"action_menu,omitempty"`             // 卡片右上角更多操作按钮
	TaskId                string                              `json:"task_id,omitempty"`                 // 任务id,同一个应用任务id不能重复,只能由数字、字母和“_-@”组成,最长128字节,填了action_menu字段的话本字段必填
	MainTitle             *TemplateCardMainTitle              `json:"main_title,omitempty"`              // 一级标题
	QuoteArea             *TemplateCardQuoteArea              `json:"quote_area,omitempty"`              // 引用文献样式
	HorizontalContentList []TemplateCardHorizontalContentItem `json:"horizontal_content_list,omitempty"` // 二级标题+文本列表,该字段可为空数组,但有数据的话需确认对应字段是否必填,列表长度不超过6
	JumpList              []TemplateCardJumpListItem          `json:"jump_list,omitempty"`               // 跳转指引样式的列表,该字段可为空数组,但有数据的话需确认对应字段是否必填,列表长度不超过3
	CardAction            *TemplateCardCardAction             `json:"card_action,omitempty"`             // 整体卡片的点击跳转事件

	EmphasisContent *TemplateCardEmphasisContent `json:"emphasis_content,omitempty"` // 关键数据样式
	SubTitleText    string                       `json:"sub_title_text,omitempty"`   // 二级普通文本,建议不超过160个字,(支持id转译)

	ImageTextArea       *TemplateCardImageTextArea        `json:"image_text_area,omitempty"`       // 左图右文样式,news_notice类型的卡片,card_image和image_text_area两者必填一个字段,不可都不填
	CardImage           *TemplateCardCardImage            `json:"card_image,omitempty"`            // 图片样式,news_notice类型的卡片,card_image和image_text_area两者必填一个字段,不可都不填
	VerticalContentList []TemplateCardVerticalContentItem `json:"vertical_content_list,omitempty"` // 卡片二级垂直内容,该字段可为空数组,但有数据的话需确认对应字段是否必填,列表长度不超过4

	ButtonSelection *TemplateCardButtonSelection `json:"button_selection,omitempty"` // 下拉式的选择器
	ButtonList      []TemplateCardButtonListItem `json:"button_list,omitempty"`      // 按钮列表,列表长度不超过6

	Checkbox     *TemplateCardCheckbox     `json:"checkbox,omitempty"`      // 选择题样式
	SubmitButton *TemplateCardSubmitButton `json:"submit_button,omitempty"` // 提交按钮样式

	SelectList []TemplateCardSelectListItem `json:"select_list,omitempty"` // 下拉式的选择器列表,multiple_interaction类型的卡片该字段不可为空,一个消息最多支持 3 个选择器
}

type SentTemplateMsg

type SentTemplateMsg struct {
	TemplateId  string                       `json:"template_id"`  // 模板ID。第三方管理端创建模板后获得。对于正式授权的应用,需要审批通过后才可使用。最长64字节
	Url         string                       `json:"url"`          // 点击模板消息后的跳转链接。最长2048字节。注意,url必须带协议头 "http://" 或 "https://" 。url和miniprogram 至少要填一个,都填时优先miniprogram。
	Miniprogram SentTemplateMsgMiniprogram   `json:"miniprogram"`  // 点击后需要跳转的小程序,miniprogram和url至少要填一个,都填时优先miniprogram。
	ContentItem []SentTemplateMsgContentItem `json:"content_item"` // 消息内容键值对,允许个数范围:1~5,实际由申请的模板样式决定
}

type SentTemplateMsgContentItem

type SentTemplateMsgContentItem struct {
	Key   string `json:"key"`   // 1~20个utf8字符。注意,必须与template_id对应模板匹配
	Value string `json:"value"` // 1~40个utf8字符
}

type SentTemplateMsgMiniprogram

type SentTemplateMsgMiniprogram struct {
	Appid    string `json:"appid"`    // 在miniprogram节点中该字段必填,小程序appid,必须是与当前应用关联的小程序
	Pagepath string `json:"pagepath"` // 在miniprogram节点中该字段必填,表示点击消息卡片后的小程序页面,仅限本小程序内的页面。
}

type TemplateCardActionItem

type TemplateCardActionItem struct {
	Text string `json:"text"` // 操作的描述文案
	Key  string `json:"key"`  // 操作key值,用户点击后,会产生回调事件将本参数作为EventKey返回,回调事件会带上该key值,最长支持1024字节,不可重复
}

type TemplateCardActionMenu

type TemplateCardActionMenu struct {
	Desc       string                   `json:"desc,omitempty"`        // 更多操作界面的描述
	ActionList []TemplateCardActionItem `json:"action_list,omitempty"` // 操作列表,列表长度取值范围为 [1, 3]
}

type TemplateCardButtonListItem

type TemplateCardButtonListItem struct {
	Type  int    `json:"type"`          // 按钮点击事件类型,0 或不填代表回调点击事件,1 代表跳转url
	Text  string `json:"text"`          // 按钮文案,建议不超过10个字
	Style int    `json:"style"`         // 按钮样式,目前可填1~4,不填或错填默认1
	Key   string `json:"key,omitempty"` // 按钮key值,用户点击后,会产生回调事件将本参数作为EventKey返回,回调事件会带上该key值,最长支持1024字节,不可重复,button_list.type是0时必填
	Url   string `json:"url,omitempty"` // 跳转事件的url,button_list.type是1时必填
}

type TemplateCardButtonSelection

type TemplateCardButtonSelection struct {
	QuestionKey string                       `json:"question_key"`          // 下拉式的选择器的key,用户提交选项后,会产生回调事件,回调事件会带上该key值表示该题,最长支持1024字节
	Title       string                       `json:"title,omitempty"`       // 下拉式的选择器左边的标题
	OptionList  []TemplateCardOptionListItem `json:"option_list"`           // 选项列表,下拉选项不超过 10 个,最少1个
	SelectedId  string                       `json:"selected_id,omitempty"` // 默认选定的id,不填或错填默认第一个
}

type TemplateCardCardAction

type TemplateCardCardAction struct {
	Type     int    `json:"type,omitempty"`     // 跳转事件类型,1 代表跳转url,2 代表打开小程序。text_notice卡片模版中该字段取值范围为[1,2]
	Url      string `json:"url,omitempty"`      // 跳转事件的url,card_action.type是1时必填
	Appid    string `json:"appid,omitempty"`    // 跳转事件的小程序的appid,必须是与当前应用关联的小程序,card_action.type是2时必填
	Pagepath string `json:"pagepath,omitempty"` // 跳转事件的小程序的pagepath,card_action.type是2时选填
}

type TemplateCardCardImage

type TemplateCardCardImage struct {
	Url         string  `json:"url"`                    // 图片的url
	AspectRatio float64 `json:"aspect_ratio,omitempty"` // 图片的宽高比,宽高比要小于2.25,大于1.3,不填该参数默认1.3
}

type TemplateCardCheckbox

type TemplateCardCheckbox struct {
	QuestionKey string                           `json:"question_key"` // 选择题key值,用户提交选项后,会产生回调事件,回调事件会带上该key值表示该题,最长支持1024字节
	OptionList  []TemplateCardCheckboxOptionItem `json:"option_list"`  // 选项list,选项个数不超过 20 个,最少1个
	Mode        int                              `json:"mode"`         // 选择题模式,单选:0,多选:1,不填默认0
}

type TemplateCardCheckboxOptionItem

type TemplateCardCheckboxOptionItem struct {
	Id        string `json:"id"`         // 选项id,用户提交选项后,会产生回调事件,回调事件会带上该id值表示该选项,最长支持128字节,不可重复
	Text      string `json:"text"`       // 选项文案描述,建议不超过17个字
	IsChecked bool   `json:"is_checked"` // 该选项是否要默认选中
}

type TemplateCardEmphasisContent

type TemplateCardEmphasisContent struct {
	Title string `json:"title,omitempty"` // 关键数据样式的数据内容,建议不超过14个字
	Desc  string `json:"desc,omitempty"`  // 关键数据样式的数据描述内容,建议不超过22个字
}

type TemplateCardHorizontalContentItem

type TemplateCardHorizontalContentItem struct {
	Type    int    `json:"type"`               // 链接类型,0或不填代表不是链接,1 代表跳转url,2 代表下载附件,3 代表点击跳转成员详情
	Keyname string `json:"keyname"`            // 二级标题,建议不超过5个字
	Value   string `json:"value,omitempty"`    // 二级文本,如果horizontal_content_list.type是2,该字段代表文件名称(要包含文件类型),建议不超过30个字,(支持id转译)
	Url     string `json:"url,omitempty"`      // 链接跳转的url,horizontal_content_list.type是1时必填
	MediaId string `json:"media_id,omitempty"` // 附件的media_id,horizontal_content_list.type是2时必填
	Userid  string `json:"userid,omitempty"`   // 成员详情的userid,horizontal_content_list.type是3时必填
}

type TemplateCardImageTextArea

type TemplateCardImageTextArea struct {
	Type      int    `json:"type"`                 // 左图右文样式区域点击事件,0或不填代表没有点击事件,1 代表跳转url,2 代表跳转小程序
	Url       string `json:"url,omitempty"`        // 点击跳转的url,image_text_area.type是1时必填
	Title     string `json:"title,omitempty"`      // 点击跳转的小程序的appid,必须是与当前应用关联的小程序,image_text_area.type是2时必填
	Desc      string `json:"desc,omitempty"`       // 左图右文样式的描述
	ImagesUrl string `json:"images_url,omitempty"` // 左图右文样式的图片url
}

type TemplateCardJumpListItem

type TemplateCardJumpListItem struct {
	Type     int    `json:"type"`               // 跳转链接类型,0或不填代表不是链接,1 代表跳转url,2 代表跳转小程序
	Title    string `json:"title"`              // 跳转链接样式的文案内容,建议不超过18个字
	Url      string `json:"url,omitempty"`      // 跳转链接的url,jump_list.type是1时必填
	Appid    string `json:"appid,omitempty"`    // 跳转链接的小程序的appid,必须是与当前应用关联的小程序,jump_list.type是2时必填
	Pagepath string `json:"pagepath,omitempty"` // 跳转链接的小程序的pagepath,jump_list.type是2时选填
}

type TemplateCardMainTitle

type TemplateCardMainTitle struct {
	Title string `json:"title,omitempty"` // 一级标题,建议不超过36个字,文本通知型卡片本字段非必填,但不可本字段和sub_title_text都不填,(支持id转译)
	Desc  string `json:"desc,omitempty"`  // 标题辅助信息,建议不超过44个字,(支持id转译)
}

type TemplateCardOptionListItem

type TemplateCardOptionListItem struct {
	Id   string `json:"id"`   // 下拉式的选择器选项的id,用户提交后,会产生回调事件,回调事件会带上该id值表示该选项,最长支持128字节,不可重复
	Text string `json:"text"` // 下拉式的选择器选项的文案,建议不超过16个字
}

type TemplateCardQuoteArea

type TemplateCardQuoteArea struct {
	Type      int    `json:"type"`                 // 引用文献样式区域点击事件,0或不填代表没有点击事件,1 代表跳转url,2 代表跳转小程序
	Url       string `json:"url,omitempty"`        // 点击跳转的url,quote_area.type是1时必填
	Appid     string `json:"appid,omitempty"`      // 点击跳转的小程序的appid,必须是与当前应用关联的小程序,quote_area.type是2时必填
	Pagepath  string `json:"pagepath,omitempty"`   // 点击跳转的小程序的pagepath,quote_area.type是2时选填
	Title     string `json:"title,omitempty"`      // 引用文献样式的标题
	QuoteText string `json:"quote_text,omitempty"` // 引用文献样式的引用文案
}

type TemplateCardSelectListItem

type TemplateCardSelectListItem struct {
	QuestionKey string                             `json:"question_key"`          // 下拉式的选择器题目的key,用户提交选项后,会产生回调事件,回调事件会带上该key值表示该题,最长支持1024字节,不可重复
	Title       string                             `json:"title,omitempty"`       // 下拉式的选择器上面的title
	SelectedId  string                             `json:"selected_id,omitempty"` // 默认选定的id,不填或错填默认第一个
	OptionList  []TemplateCardSelectListOptionItem `json:"option_list"`           // 选项列表,下拉选项不超过 10 个,最少1个
}

type TemplateCardSelectListOptionItem

type TemplateCardSelectListOptionItem struct {
	Id   string `json:"id"`   // 下拉式的选择器选项的id,用户提交选项后,会产生回调事件,回调事件会带上该id值表示该选项,最长支持128字节,不可重复
	Text string `json:"text"` // 下拉式的选择器选项的文案,建议不超过16个字
}

type TemplateCardSource

type TemplateCardSource struct {
	IconUrl   string `json:"icon_url,omitempty"` // 来源图片的url,来源图片的尺寸建议为72*72
	Desc      string `json:"desc,omitempty"`     // 来源图片的描述,建议不超过20个字,(支持id转译)
	DescColor int    `json:"desc_color"`         // 来源文字的颜色,目前支持:0(默认) 灰色,1 黑色,2 红色,3 绿色
}

type TemplateCardSubmitButton

type TemplateCardSubmitButton struct {
	Text string `json:"text"` // 按钮文案,建议不超过10个字,不填默认为提交
	Key  string `json:"key"`  // 提交按钮的key,会产生回调事件将本参数作为EventKey返回,最长支持1024字节
}

type TemplateCardVerticalContentItem

type TemplateCardVerticalContentItem struct {
	Title string `json:"title"`          // 卡片二级标题,建议不超过38个字
	Desc  string `json:"desc,omitempty"` // 二级普通文本,建议不超过160个字
}

type TokenInfo

type TokenInfo struct {
	Token       string        `json:"token"`        // access_token/jsapi_ticket
	ExpiresIn   time.Duration `json:"expires_in"`   // 过期时间
	LastRefresh time.Time     `json:"last_refresh"` // 上次刷新access_token时间
}

access_token

type UploadMediaReq

type UploadMediaReq struct {
	// 文件类型
	Type string `json:"type"`
	// 文件链接
	URL string `json:"url"`
}

type UploadMediaResult

type UploadMediaResult struct {
	// Type 媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)
	Type string `json:"type"`
	// MediaId 媒体文件上传后获取的唯一标识,3天内有效
	MediaId string `json:"media_id"`
	// CreatedAt 媒体文件上传时间戳
	CreatedAt string `json:"created_at"`
}

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL