├── .gitignore
├── LICENSE
├── Makefile
├── README.md
├── api_generate
├── api.tmpl
└── main.go
├── apis
├── OA审批-修改成员假期余额.go
├── OA审批-复制更新模板到企业.go
├── OA审批-批量获取审批单号.go
├── OA审批-提交审批申请.go
├── OA审批-查询第三方应用审批申请当前状态.go
├── OA审批-获取企业假期管理配置.go
├── OA审批-获取审批模板详情.go
├── OA审批-获取审批申请详情.go
├── OA审批-获取成员假期余额.go
├── api_auth.go
├── api_client.go
├── api_client_option.go
├── api_error.go
├── api_media.go
├── api_resp.go
├── api_token.go
├── api_tool.go
├── api_traits.go
├── 上下游-批量导入上下游联系人.go
├── 上下游-移除企业.go
├── 上下游-获取应用共享信息.go
├── 企业微信帐号ID安全性全面升级.go
├── 企业支付-获取对外收款记录.go
├── 企业支付-获取收款项目的商户单号.go
├── 发送应用消息-小程序通知消息.go
├── 发送应用消息-撤回应用消息.go
├── 发送应用消息-更新模版卡片消息.go
├── 发送应用消息-模板卡片消息.go
├── 发送应用消息-模板消息.go
├── 发送应用消息.go
├── 在职继承-分配在职成员的客户.go
├── 在职继承-分配在职成员的客户群.go
├── 在职继承-查询客户接替状态.go
├── 客户朋友圈-企业发表内容到客户的朋友圈.go
├── 客户朋友圈-停止发表企业朋友圈.go
├── 客户朋友圈-客户朋友圈规则组管理.go
├── 客户朋友圈-获取客户朋友圈全部的发表记录.go
├── 客户标签管理-管理企业标签.go
├── 客户标签管理-编辑客户企业标签.go
├── 客户管理-修改客户备注信息.go
├── 客户管理-批量获取客户详情.go
├── 客户管理-获取客户列表.go
├── 客户管理-获取客户详情.go
├── 客户群管理-客户群opengid转换.go
├── 客户群管理-获取客户群列表.go
├── 客户群管理-获取客户群详情.go
├── 客户联系-联系我管理.go
├── 应用授权-获取企业凭证.go
├── 应用授权-获取企业授权信息.go
├── 应用授权-获取企业永久授权码.go
├── 应用授权-获取应用二维码.go
├── 应用授权-获取应用权限详情.go
├── 应用授权-获取应用的管理员列表.go
├── 应用授权-获取第三方应用凭证.go
├── 应用授权-获取预授权码.go
├── 应用授权-设置授权配置.go
├── 应用管理-获取应用.go
├── 成员管理-userid与openid互换.go
├── 成员管理-二次验证.go
├── 成员管理-创建成员.go
├── 成员管理-删除成员.go
├── 成员管理-手机号获取userid.go
├── 成员管理-更新成员.go
├── 成员管理-查询成员用户是否已授权.go
├── 成员管理-获取成员ID列表.go
├── 成员管理-获取成员授权列表.go
├── 成员管理-获取选人ticket对应的用户.go
├── 成员管理-获取部门成员.go
├── 成员管理-获取部门成员详情.go
├── 成员管理-读取成员.go
├── 成员管理-邀请成员.go
├── 成员管理-邮箱获取userid.go
├── 打卡-为打卡人员排班.go
├── 打卡-获取员工打卡规则.go
├── 打卡-获取打卡人员排班信息.go
├── 打卡-获取打卡日报数据.go
├── 打卡-获取打卡月报数据.go
├── 打卡-获取打卡记录数据.go
├── 打卡-获取设备打卡数据.go
├── 接口调用许可-下单续期帐号.go
├── 接口调用许可-下单购买多企业账号.go
├── 接口调用许可-下单购买帐号.go
├── 接口调用许可-分配激活码给下游企业.go
├── 接口调用许可-取消订单.go
├── 接口调用许可-帐号继承.go
├── 接口调用许可-查询企业的许可自动激活状态.go
├── 接口调用许可-激活帐号.go
├── 接口调用许可-获取企业的帐号列表.go
├── 接口调用许可-获取多企业订单详情.go
├── 接口调用许可-获取应用的接口许可状态.go
├── 接口调用许可-获取成员的激活详情.go
├── 接口调用许可-获取激活码详情.go
├── 接口调用许可-获取订单中的帐号列表.go
├── 接口调用许可-获取订单列表.go
├── 接口调用许可-获取订单详情.go
├── 接口调用许可-设置企业的许可自动激活状态.go
├── 推广二维码-获取应用安装链接.go
├── 推广二维码-获取注册码.go
├── 收银台-创建收款订单.go
├── 收银台-取消收款订单.go
├── 收银台-延长试用期.go
├── 收银台-获取收款订单列表.go
├── 收银台-获取收款订单详情.go
├── 收银台-获取订单列表.go
├── 收银台-获取订单详情.go
├── 标签管理-创建标签.go
├── 标签管理-删除标签.go
├── 标签管理-删除标签成员.go
├── 标签管理-增加标签成员.go
├── 标签管理-更新标签名字.go
├── 标签管理-获取标签列表.go
├── 标签管理-获取标签成员.go
├── 消息推送-停止企业群发.go
├── 消息推送-入群欢迎语素材管理.go
├── 消息推送-创建企业群发.go
├── 消息推送-发送新客户欢迎语.go
├── 消息推送-提醒成员群发.go
├── 消息推送-获取企业的全部群发记录.go
├── 离职继承-分配离职成员的客户.go
├── 离职继承-分配离职成员的客户群.go
├── 离职继承-查询客户接替状态.go
├── 离职继承-获取待分配的离职成员列表.go
├── 素材管理-上传临时素材.go
├── 素材管理-异步上传临时素材.go
├── 统计管理-获取群聊数据统计.go
├── 统计管理-获取联系客户统计.go
├── 获取access_token.go
├── 获取企业的jsapi_ticket.go
├── 获取应用的jsapi_ticket.go
├── 获取服务商凭证.go
├── 获取视频号绑定状态.go
├── 获客助手-查询剩余使用量.go
├── 获客助手-获取由获客链接添加的客户信息.go
├── 获客助手-获客链接管理.go
├── 身份验证-获取登录用户信息.go
├── 身份验证-获取访问用户敏感信息.go
├── 身份验证-获取访问用户身份.go
├── 通讯录-通讯录userid排序.go
├── 通讯录-通讯录搜索.go
├── 部门管理-获取单个部门详情.go
├── 部门管理-获取子部门ID列表.go
└── 部门管理-获取部门列表.go
├── callback_generate
├── callback.tmpl
└── main.go
├── callbacks
├── callback.go
├── callback_constant.go
├── callback_interface.go
├── callback_message.go
├── event上下游共享应用事件回调.go
├── event上报地理位置.go
├── event任务卡片事件推送.go
├── event企业互联共享应用事件回调.go
├── event企业客户标签创建事件.go
├── event企业客户标签删除事件.go
├── event企业客户标签变更事件.go
├── event企业客户标签重排事件.go
├── event会话存档-产生会话回调事件.go
├── event会话存档-客户同意进行聊天内容存档事件回调.go
├── event使用量已经耗尽事件.go
├── event修改设置工作台自定义开关事件推送.go
├── event删除企业客户事件.go
├── event删除成员事件.go
├── event删除获客链接事件.go
├── event删除跟进成员事件.go
├── event删除部门事件.go
├── event回调事件.go
├── event回调异步任务结果.go
├── event外部联系人免验证添加成员事件.go
├── event审批状态通知事件.go
├── event审批申请状态变化回调通知.go
├── event客户接替失败事件.go
├── event客户群创建事件.go
├── event客户群变更事件.go
├── event客户群解散事件.go
├── event客服账号授权变更事件.go
├── event应用管理员变更通知.go
├── event应用邮箱接收邮件事件.go
├── event异步任务完成事件推送.go
├── event弹出地理位置选择器的事件推送.go
├── event弹出微信相册发图器的事件推送.go
├── event弹出拍照或者相册发图的事件推送.go
├── event弹出系统拍照发图的事件推送.go
├── event微信客户发起会话事件.go
├── event微盘容量不足事件.go
├── event成员关注事件.go
├── event成员取消关注事件.go
├── event扫码推事件且弹出消息接收中提示框的事件推送.go
├── event扫码推事件的事件推送.go
├── event接口调用许可-接口许可失效通知.go
├── event新增成员事件.go
├── event新增部门事件.go
├── event日程-修改日历事件.go
├── event日程-修改日程事件.go
├── event日程-删除日历事件.go
├── event日程-删除日程事件.go
├── event日程-添加日程事件.go
├── event更新成员事件.go
├── event更新部门事件.go
├── event标签成员变更事件.go
├── event模板卡片事件推送.go
├── event添加企业客户事件.go
├── event点击菜单拉取消息的事件推送.go
├── event点击菜单跳转链接的事件推送.go
├── event直播回调事件.go
├── event编辑企业客户事件.go
├── event获客链接不可用事件.go
├── event获客额度即将耗尽事件.go
├── event进入应用.go
├── event通用模板卡片右上角菜单事件推送.go
├── event通过获客链接申请好友事件.go
├── event长期未使用应用临时停用事件.go
├── event长期未使用应用重新启用事件.go
├── image图片消息.go
├── link链接消息.go
├── location位置消息.go
├── text文本消息.go
├── third企业客户标签创建事件.go
├── third企业客户标签删除事件.go
├── third企业客户标签变更事件.go
├── third企业客户标签重排事件.go
├── third会话存档-产生会话回调事件.go
├── third会话存档-客户同意进行聊天内容存档事件回调.go
├── third删除企业客户事件.go
├── third删除成员事件.go
├── third删除跟进成员事件.go
├── third删除部门事件.go
├── third取消授权通知.go
├── third变更授权通知.go
├── third同意授权转换external_userid事件.go
├── third外部联系人免验证添加成员事件.go
├── third客户接替失败事件.go
├── third客户群创建事件.go
├── third客户群变更事件.go
├── third客户群解散事件.go
├── third家校沟通-创建部门事件.go
├── third家校沟通-删除学生事件.go
├── third家校沟通-删除家长事件.go
├── third家校沟通-删除部门事件.go
├── third家校沟通-家长关注事件.go
├── third家校沟通-家长取消关注事件.go
├── third家校沟通-新增学生事件.go
├── third家校沟通-新增家长事件.go
├── third家校沟通-更新部门事件.go
├── third家校沟通-编辑学生事件.go
├── third家校沟通-编辑家长事件.go
├── third扫描推广二维码事件.go
├── third授权成功通知.go
├── third授权组织架构权限通知.go
├── third接口调用许可-支付成功通知.go
├── third接口调用许可-自动激活回调通知.go
├── third接口调用许可-退款结果通知.go
├── third推送suite_ticket.go
├── third收银台-下单成功通知.go
├── third收银台-应用版本变更通知.go
├── third收银台-支付成功通知.go
├── third收银台-改单通知.go
├── third收银台-退款通知.go
├── third新增成员事件.go
├── third新增部门事件.go
├── third更新成员事件.go
├── third更新部门事件.go
├── third标签成员变更事件.go
├── third注册完成回调事件.go
├── third添加企业客户事件.go
├── third编辑企业客户事件.go
├── third获客助手权限取消事件.go
├── third获客助手权限确认事件.go
├── third设备数据授权变更回调.go
├── third重置永久授权码通知.go
├── video视频消息.go
└── voice语音消息.go
├── demo
├── README.md
├── api.go
├── api_test.go
├── callback.go
├── callback_test.go
├── config.go
└── workwx.go
├── docs
├── 代开发应用服务商操作流程.docx
├── 企业微信使用教程_1634259824876.pdf
├── 企业微信员工使用手册_1634259832138.pdf
├── 企业微信基础玩法_1635478371902.pptx
├── 企业微信封号问题汇总.docx
├── 企微接口调用许可.md
├── 常见问题汇总.docx
├── 管理端操作手册_1634259834379.pdf
└── 通过企业微信经营私域流量.docx
├── go.mod
├── go.sum
├── internal
├── README.md
├── encryptor
│ ├── mod.go
│ └── pkcs7
│ │ └── mod.go
├── envelope
│ ├── ctor_options.go
│ ├── mod.go
│ ├── models.go
│ └── time_source.go
└── signature
│ └── mod.go
└── main.go
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
2 |
3 | vendor
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | # 生成企微api代码
2 | api:
3 | go run api_generate/main.go -doc=$(doc) -prefix=$(prefix)
4 |
5 | # 生成企微回调事件代码
6 | callback:
7 | go run callback_generate/main.go -doc=$(doc) -prefix=$(prefix)
--------------------------------------------------------------------------------
/api_generate/api.tmpl:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | {{if (index . 0).IsGet }}"net/url"{{end}}
6 | )
7 |
8 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
9 | // 可自行修改生成的文件,以满足开发需求
10 |
11 | {{ range .}}
12 | // Req{{ .StructName }} {{ .Name }}请求
13 | // 文档:{{ .DocURL }}#{{ .Name }}
14 | {{ .ReqCode }}
15 | {{if .IsGet }}
16 | var _ urlValuer = Req{{ .StructName }}{}
17 |
18 | func (x Req{{ .StructName }}) intoURLValues() url.Values {
19 | var vals map[string]interface{}
20 | jsonBytes, _ := json.Marshal(x)
21 | _ = json.Unmarshal(jsonBytes, &vals)
22 |
23 | var ret url.Values = make(map[string][]string)
24 | for k, v := range vals {
25 | ret.Add(k, StrVal(v))
26 | }
27 | return ret
28 | }
29 | {{else}}
30 | var _ bodyer = Req{{ .StructName }}{}
31 |
32 | func (x Req{{ .StructName }}) intoBody() ([]byte, error) {
33 | result, err := json.Marshal(x)
34 | if err != nil {
35 | return nil, err
36 | }
37 | return result, nil
38 | }
39 | {{end}}
40 |
41 | // Resp{{ .StructName }} {{ .Name }}响应
42 | // 文档:{{ .DocURL }}#{{ .Name }}
43 | {{ .RespCode }}
44 | var _ bodyer = Resp{{ .StructName }}{}
45 |
46 | func (x Resp{{ .StructName }}) intoBody() ([]byte, error) {
47 | result, err := json.Marshal(x)
48 | if err != nil {
49 | return nil, err
50 | }
51 | return result, nil
52 | }
53 |
54 | // Exec{{ .StructName }} {{ .Name }}
55 | // 文档:{{ .DocURL }}#{{ .Name }}
56 | func (c *ApiClient) Exec{{ .StructName }}(req Req{{ .StructName }}) (Resp{{ .StructName }}, error) {
57 | var resp Resp{{ .StructName }}
58 | err := c.executeWXApi{{ .MethodCaml }}("{{ .URL }}", req, &resp, true)
59 | if err != nil {
60 | return Resp{{ .StructName }}{}, err
61 | }
62 | if bizErr := resp.TryIntoErr(); bizErr != nil {
63 | return Resp{{ .StructName }}{}, bizErr
64 | }
65 | return resp, nil
66 | }
67 | {{end}}
--------------------------------------------------------------------------------
/apis/OA审批-修改成员假期余额.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqSetoneuserquotaVacation 修改成员假期余额请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/94213#修改成员假期余额
12 | type ReqSetoneuserquotaVacation struct {
13 | Userid string `json:"userid"`
14 | VacationID int `json:"vacation_id"`
15 | Leftduration int `json:"leftduration"`
16 | TimeAttr int `json:"time_attr"`
17 | Remarks string `json:"remarks"`
18 | }
19 |
20 | var _ bodyer = ReqSetoneuserquotaVacation{}
21 |
22 | func (x ReqSetoneuserquotaVacation) intoBody() ([]byte, error) {
23 | result, err := json.Marshal(x)
24 | if err != nil {
25 | return nil, err
26 | }
27 | return result, nil
28 | }
29 |
30 | // RespSetoneuserquotaVacation 修改成员假期余额响应
31 | // 文档:https://developer.work.weixin.qq.com/document/path/94213#修改成员假期余额
32 | type RespSetoneuserquotaVacation struct {
33 | CommonResp
34 | }
35 |
36 | var _ bodyer = RespSetoneuserquotaVacation{}
37 |
38 | func (x RespSetoneuserquotaVacation) intoBody() ([]byte, error) {
39 | result, err := json.Marshal(x)
40 | if err != nil {
41 | return nil, err
42 | }
43 | return result, nil
44 | }
45 |
46 | // ExecSetoneuserquotaVacation 修改成员假期余额
47 | // 文档:https://developer.work.weixin.qq.com/document/path/94213#修改成员假期余额
48 | func (c *ApiClient) ExecSetoneuserquotaVacation(req ReqSetoneuserquotaVacation) (RespSetoneuserquotaVacation, error) {
49 | var resp RespSetoneuserquotaVacation
50 | err := c.executeWXApiPost("/cgi-bin/oa/vacation/setoneuserquota", req, &resp, true)
51 | if err != nil {
52 | return RespSetoneuserquotaVacation{}, err
53 | }
54 | if bizErr := resp.TryIntoErr(); bizErr != nil {
55 | return RespSetoneuserquotaVacation{}, bizErr
56 | }
57 | return resp, nil
58 | }
59 |
--------------------------------------------------------------------------------
/apis/OA审批-复制更新模板到企业.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqCopyTemplateApproval 复制/更新模板到企业请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/92630#复制/更新模板到企业
12 | type ReqCopyTemplateApproval struct {
13 | // 服务商审批模板的唯一标识id。可在“获取审批单据详情”、“审批状态变化回调通知”中获得,也可在服务商后台-应用管理-审批模板的模板编辑页面中获得。
14 | OpenTemplateId string `json:"open_template_id"`
15 | }
16 |
17 | var _ bodyer = ReqCopyTemplateApproval{}
18 |
19 | func (x ReqCopyTemplateApproval) intoBody() ([]byte, error) {
20 | result, err := json.Marshal(x)
21 | if err != nil {
22 | return nil, err
23 | }
24 | return result, nil
25 | }
26 |
27 | // RespCopyTemplateApproval 复制/更新模板到企业响应
28 | // 文档:https://developer.work.weixin.qq.com/document/path/92630#复制/更新模板到企业
29 | type RespCopyTemplateApproval struct {
30 | CommonResp
31 | // 服务商审批模板的唯一标识id。可在“获取审批单据详情”、“审批状态变化回调通知”中获得,也可在服务商后台-应用管理-审批模板的模板编辑页面中获得。
32 | TemplateId string `json:"template_id"`
33 | }
34 |
35 | var _ bodyer = RespCopyTemplateApproval{}
36 |
37 | func (x RespCopyTemplateApproval) intoBody() ([]byte, error) {
38 | result, err := json.Marshal(x)
39 | if err != nil {
40 | return nil, err
41 | }
42 | return result, nil
43 | }
44 |
45 | // ExecCopyTemplateApproval 复制/更新模板到企业
46 | // 文档:https://developer.work.weixin.qq.com/document/path/92630#复制/更新模板到企业
47 | func (c *ApiClient) ExecCopyTemplateApproval(req ReqCopyTemplateApproval) (RespCopyTemplateApproval, error) {
48 | var resp RespCopyTemplateApproval
49 | err := c.executeWXApiPost("/cgi-bin/oa/approval/copytemplate", req, &resp, true)
50 | if err != nil {
51 | return RespCopyTemplateApproval{}, err
52 | }
53 | if bizErr := resp.TryIntoErr(); bizErr != nil {
54 | return RespCopyTemplateApproval{}, bizErr
55 | }
56 | return resp, nil
57 | }
58 |
--------------------------------------------------------------------------------
/apis/OA审批-批量获取审批单号.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | type (
8 | ReqGetApprovalInfoOa struct {
9 | Starttime string `json:"starttime"`
10 | Endtime string `json:"endtime"`
11 | NewCursor string `json:"new_cursor"`
12 | Size int `json:"size"`
13 | Filters []ReqGetApprovalInfoOaFilters `json:"filters"`
14 | }
15 |
16 | ReqGetApprovalInfoOaFilters struct {
17 | Key string `json:"key"`
18 | Value string `json:"value"`
19 | }
20 | )
21 |
22 | var _ bodyer = ReqGetApprovalInfoOa{}
23 |
24 | func (x ReqGetApprovalInfoOa) intoBody() ([]byte, error) {
25 | result, err := json.Marshal(x)
26 | if err != nil {
27 | return nil, err
28 | }
29 | return result, nil
30 | }
31 |
32 | type RespGetApprovalInfoOa struct {
33 | CommonResp
34 | SpNoList []string `json:"sp_no_list"`
35 | }
36 |
37 | var _ bodyer = RespGetApprovalInfoOa{}
38 |
39 | func (x RespGetApprovalInfoOa) intoBody() ([]byte, error) {
40 | result, err := json.Marshal(x)
41 | if err != nil {
42 | return nil, err
43 | }
44 | return result, nil
45 | }
46 |
47 | func (c *ApiClient) ExecGetApprovalInfoOa(req ReqGetApprovalInfoOa) (RespGetApprovalInfoOa, error) {
48 | var resp RespGetApprovalInfoOa
49 | err := c.executeWXApiPost("/cgi-bin/oa/getapprovalinfo", req, &resp, true)
50 | if err != nil {
51 | return RespGetApprovalInfoOa{}, err
52 | }
53 | if bizErr := resp.TryIntoErr(); bizErr != nil {
54 | return RespGetApprovalInfoOa{}, bizErr
55 | }
56 | return resp, nil
57 | }
58 |
--------------------------------------------------------------------------------
/apis/api_resp.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | type CommonResp struct {
4 | ErrCode int64 `json:"errcode"`
5 | ErrMsg string `json:"errmsg"`
6 | }
7 |
8 | // IsOK 响应体是否为一次成功请求的响应
9 | //
10 | // 实现依据: https://developer.work.weixin.qq.com/document/10013
11 | //
12 | // > 企业微信所有接口,返回包里都有errcode、errmsg。(除部分旧接口只有在失败时才会返回errcode,但没什么影响,因为结构体中errcode默认值为0,即默认成功)
13 | // > 开发者需根据errcode是否为0判断是否调用成功(errcode意义请见全局错误码)。
14 | // > 而errmsg仅作参考,后续可能会有变动,因此不可作为是否调用成功的判据。
15 | func (x *CommonResp) IsOK() bool {
16 | return x.ErrCode == 0
17 | }
18 |
19 | func (x *CommonResp) TryIntoErr() error {
20 | if x.IsOK() {
21 | return nil
22 | }
23 |
24 | return &ClientError{
25 | Code: x.ErrCode,
26 | Msg: x.ErrMsg,
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/apis/api_tool.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | "strconv"
6 | )
7 |
8 | // StrVal 获取变量的字符串值
9 | // 浮点型 3.0将会转换成字符串3, "3",长整数不会变成科学计数法
10 | // 非数值或字符类型的变量将会被转换成JSON格式字符串
11 | func StrVal(value interface{}) string {
12 | // interface 转 string
13 | var key string
14 | if value == nil {
15 | return key
16 | }
17 |
18 | switch value.(type) {
19 | case float64:
20 | ft := value.(float64)
21 | key = strconv.FormatFloat(ft, 'f', -1, 64)
22 | case float32:
23 | ft := value.(float32)
24 | key = strconv.FormatFloat(float64(ft), 'f', -1, 64)
25 | case int:
26 | it := value.(int)
27 | key = strconv.Itoa(it)
28 | case uint:
29 | it := value.(uint)
30 | key = strconv.Itoa(int(it))
31 | case int8:
32 | it := value.(int8)
33 | key = strconv.Itoa(int(it))
34 | case uint8:
35 | it := value.(uint8)
36 | key = strconv.Itoa(int(it))
37 | case int16:
38 | it := value.(int16)
39 | key = strconv.Itoa(int(it))
40 | case uint16:
41 | it := value.(uint16)
42 | key = strconv.Itoa(int(it))
43 | case int32:
44 | it := value.(int32)
45 | key = strconv.Itoa(int(it))
46 | case uint32:
47 | it := value.(uint32)
48 | key = strconv.Itoa(int(it))
49 | case int64:
50 | it := value.(int64)
51 | key = strconv.FormatInt(it, 10)
52 | case uint64:
53 | it := value.(uint64)
54 | key = strconv.FormatUint(it, 10)
55 | case string:
56 | key = value.(string)
57 | case []byte:
58 | key = string(value.([]byte))
59 | default:
60 | newValue, _ := json.Marshal(value)
61 | key = string(newValue)
62 | }
63 |
64 | return key
65 | }
66 |
--------------------------------------------------------------------------------
/apis/api_traits.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "net/url"
5 | )
6 |
7 | // urlValuer 可转化为 url.Values 类型的 trait
8 | type urlValuer interface {
9 | intoURLValues() url.Values
10 | }
11 |
12 | // Bodyer 可转化为 API 请求体的 trait
13 | type bodyer interface {
14 | intoBody() ([]byte, error)
15 | }
16 |
17 | // mediaUploader 携带 *Media 对象,可转化为 multipart 文件上传请求体的 trait
18 | type mediaUploader interface {
19 | getMedia() *Media
20 | }
21 |
--------------------------------------------------------------------------------
/apis/上下游-移除企业.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqRemoveCorpCorp 移除企业请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/95822#移除企业
12 | type ReqRemoveCorpCorp struct {
13 | // ChainID 上下游id,必填
14 | ChainID string `json:"chain_id"`
15 | // Corpid 需要移除的下游企业corpid
16 | Corpid string `json:"corpid,omitempty"`
17 | // PendingCorpid 需要移除的未加入下游企业corpid,corpid和pending_corpid至少填一个,都填corpid生效
18 | PendingCorpid string `json:"pending_corpid,omitempty"`
19 | }
20 |
21 | var _ bodyer = ReqRemoveCorpCorp{}
22 |
23 | func (x ReqRemoveCorpCorp) intoBody() ([]byte, error) {
24 | result, err := json.Marshal(x)
25 | if err != nil {
26 | return nil, err
27 | }
28 | return result, nil
29 | }
30 |
31 | // RespRemoveCorpCorp 移除企业响应
32 | // 文档:https://developer.work.weixin.qq.com/document/path/95822#移除企业
33 | type RespRemoveCorpCorp struct {
34 | CommonResp
35 | }
36 |
37 | var _ bodyer = RespRemoveCorpCorp{}
38 |
39 | func (x RespRemoveCorpCorp) intoBody() ([]byte, error) {
40 | result, err := json.Marshal(x)
41 | if err != nil {
42 | return nil, err
43 | }
44 | return result, nil
45 | }
46 |
47 | // ExecRemoveCorpCorp 移除企业
48 | // 文档:https://developer.work.weixin.qq.com/document/path/95822#移除企业
49 | func (c *ApiClient) ExecRemoveCorpCorp(req ReqRemoveCorpCorp) (RespRemoveCorpCorp, error) {
50 | var resp RespRemoveCorpCorp
51 | err := c.executeWXApiPost("/cgi-bin/corpgroup/corp/remove_corp", req, &resp, true)
52 | if err != nil {
53 | return RespRemoveCorpCorp{}, err
54 | }
55 | if bizErr := resp.TryIntoErr(); bizErr != nil {
56 | return RespRemoveCorpCorp{}, bizErr
57 | }
58 | return resp, nil
59 | }
60 |
--------------------------------------------------------------------------------
/apis/企业支付-获取收款项目的商户单号.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqGetPaymentInfoExternalpay 获取收款项目的商户单号请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/95936#获取收款项目的商户单号
12 | type ReqGetPaymentInfoExternalpay struct {
13 | // PaymentID 收款项目单号。在发起对外收款中返回。,必填
14 | PaymentID string `json:"payment_id"`
15 | }
16 |
17 | var _ bodyer = ReqGetPaymentInfoExternalpay{}
18 |
19 | func (x ReqGetPaymentInfoExternalpay) intoBody() ([]byte, error) {
20 | result, err := json.Marshal(x)
21 | if err != nil {
22 | return nil, err
23 | }
24 | return result, nil
25 | }
26 |
27 | // RespGetPaymentInfoExternalpay 获取收款项目的商户单号响应
28 | // 文档:https://developer.work.weixin.qq.com/document/path/95936#获取收款项目的商户单号
29 | type RespGetPaymentInfoExternalpay struct {
30 | BillList []struct {
31 | OutTradeNo string `json:"out_trade_no"`
32 | } `json:"bill_list"`
33 | CommonResp
34 | }
35 |
36 | var _ bodyer = RespGetPaymentInfoExternalpay{}
37 |
38 | func (x RespGetPaymentInfoExternalpay) intoBody() ([]byte, error) {
39 | result, err := json.Marshal(x)
40 | if err != nil {
41 | return nil, err
42 | }
43 | return result, nil
44 | }
45 |
46 | // ExecGetPaymentInfoExternalpay 获取收款项目的商户单号
47 | // 文档:https://developer.work.weixin.qq.com/document/path/95936#获取收款项目的商户单号
48 | func (c *ApiClient) ExecGetPaymentInfoExternalpay(req ReqGetPaymentInfoExternalpay) (RespGetPaymentInfoExternalpay, error) {
49 | var resp RespGetPaymentInfoExternalpay
50 | err := c.executeWXApiPost("/cgi-bin/externalpay/get_payment_info", req, &resp, true)
51 | if err != nil {
52 | return RespGetPaymentInfoExternalpay{}, err
53 | }
54 | if bizErr := resp.TryIntoErr(); bizErr != nil {
55 | return RespGetPaymentInfoExternalpay{}, bizErr
56 | }
57 | return resp, nil
58 | }
59 |
--------------------------------------------------------------------------------
/apis/发送应用消息-撤回应用消息.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqRecallMessage 撤回应用消息请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/94947#撤回应用消息
12 | type ReqRecallMessage struct {
13 | // Msgid 消息ID。从应用发送消息接口处获得。,必填
14 | Msgid string `json:"msgid"`
15 | }
16 |
17 | var _ bodyer = ReqRecallMessage{}
18 |
19 | func (x ReqRecallMessage) intoBody() ([]byte, error) {
20 | result, err := json.Marshal(x)
21 | if err != nil {
22 | return nil, err
23 | }
24 | return result, nil
25 | }
26 |
27 | // RespRecallMessage 撤回应用消息响应
28 | // 文档:https://developer.work.weixin.qq.com/document/path/94947#撤回应用消息
29 | type RespRecallMessage struct {
30 | CommonResp
31 | }
32 |
33 | var _ bodyer = RespRecallMessage{}
34 |
35 | func (x RespRecallMessage) intoBody() ([]byte, error) {
36 | result, err := json.Marshal(x)
37 | if err != nil {
38 | return nil, err
39 | }
40 | return result, nil
41 | }
42 |
43 | // ExecRecallMessage 撤回应用消息
44 | // 文档:https://developer.work.weixin.qq.com/document/path/94947#撤回应用消息
45 | func (c *ApiClient) ExecRecallMessage(req ReqRecallMessage) (RespRecallMessage, error) {
46 | var resp RespRecallMessage
47 | err := c.executeWXApiPost("/cgi-bin/message/recall", req, &resp, true)
48 | if err != nil {
49 | return RespRecallMessage{}, err
50 | }
51 | if bizErr := resp.TryIntoErr(); bizErr != nil {
52 | return RespRecallMessage{}, bizErr
53 | }
54 | return resp, nil
55 | }
56 |
--------------------------------------------------------------------------------
/apis/客户管理-获取客户列表.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 |
6 | "net/url"
7 | )
8 |
9 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
10 | // 修改生成的文件,以满足开发需求
11 |
12 | // ReqListExternalcontact 获取客户列表请求
13 | // 文档:https://developer.work.weixin.qq.com/document/path/92264#获取客户列表
14 | type ReqListExternalcontact struct {
15 | // Userid 企业成员的userid,必填
16 | Userid string `json:"userid"`
17 | }
18 |
19 | var _ urlValuer = ReqListExternalcontact{}
20 |
21 | func (x ReqListExternalcontact) intoURLValues() url.Values {
22 | var vals map[string]interface{}
23 | jsonBytes, _ := json.Marshal(x)
24 | _ = json.Unmarshal(jsonBytes, &vals)
25 |
26 | var ret url.Values = make(map[string][]string)
27 | for k, v := range vals {
28 | ret.Add(k, StrVal(v))
29 | }
30 | return ret
31 | }
32 |
33 | // RespListExternalcontact 获取客户列表响应
34 | // 文档:https://developer.work.weixin.qq.com/document/path/92264#获取客户列表
35 | type RespListExternalcontact struct {
36 | CommonResp
37 | ExternalUserid []string `json:"external_userid"`
38 | }
39 |
40 | var _ bodyer = RespListExternalcontact{}
41 |
42 | func (x RespListExternalcontact) intoBody() ([]byte, error) {
43 | result, err := json.Marshal(x)
44 | if err != nil {
45 | return nil, err
46 | }
47 | return result, nil
48 | }
49 |
50 | // ExecListExternalcontact 获取客户列表
51 | // 文档:https://developer.work.weixin.qq.com/document/path/92264#获取客户列表
52 | func (c *ApiClient) ExecListExternalcontact(req ReqListExternalcontact) (RespListExternalcontact, error) {
53 | var resp RespListExternalcontact
54 | err := c.executeWXApiGet("/cgi-bin/externalcontact/list", req, &resp, true)
55 | if err != nil {
56 | return RespListExternalcontact{}, err
57 | }
58 | if bizErr := resp.TryIntoErr(); bizErr != nil {
59 | return RespListExternalcontact{}, bizErr
60 | }
61 | return resp, nil
62 | }
63 |
--------------------------------------------------------------------------------
/apis/应用授权-获取应用权限详情.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 修改生成的文件,以满足开发需求
9 |
10 | // 文档:https://developer.work.weixin.qq.com/document/path/99052#获取应用权限详情
11 | type ReqGetPermissionsAgent struct{}
12 |
13 | var _ bodyer = ReqGetPermissionsAgent{}
14 |
15 | func (x ReqGetPermissionsAgent) intoBody() ([]byte, error) {
16 | result, err := json.Marshal(x)
17 | if err != nil {
18 | return nil, err
19 | }
20 | return result, nil
21 | }
22 |
23 | // 文档:https://developer.work.weixin.qq.com/document/path/99052#获取应用权限详情
24 | type RespGetPermissionsAgent struct {
25 | CommonResp
26 | AppPermissions []string `json:"app_permissions"`
27 | }
28 |
29 | var _ bodyer = RespGetPermissionsAgent{}
30 |
31 | func (x RespGetPermissionsAgent) intoBody() ([]byte, error) {
32 | result, err := json.Marshal(x)
33 | if err != nil {
34 | return nil, err
35 | }
36 | return result, nil
37 | }
38 |
39 | // 文档:https://developer.work.weixin.qq.com/document/path/99052#获取应用权限详情
40 | func (c *ApiClient) ExecGetPermissionsAgent(req ReqGetPermissionsAgent) (RespGetPermissionsAgent, error) {
41 | var resp RespGetPermissionsAgent
42 | err := c.executeWXApiPost("/cgi-bin/agent/get_permissions", req, &resp, true)
43 | if err != nil {
44 | return RespGetPermissionsAgent{}, err
45 | }
46 | if bizErr := resp.TryIntoErr(); bizErr != nil {
47 | return RespGetPermissionsAgent{}, bizErr
48 | }
49 | return resp, nil
50 | }
51 |
--------------------------------------------------------------------------------
/apis/应用授权-获取应用的管理员列表.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqGetAdminListService 获取应用的管理员列表请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/90606#获取应用的管理员列表
12 | type ReqGetAdminListService struct {
13 | // Agentid 授权方安装的应用agentid,必填
14 | Agentid int `json:"agentid"`
15 | // AuthCorpid 授权方corpid,必填
16 | AuthCorpid string `json:"auth_corpid"`
17 | }
18 |
19 | var _ bodyer = ReqGetAdminListService{}
20 |
21 | func (x ReqGetAdminListService) intoBody() ([]byte, error) {
22 | result, err := json.Marshal(x)
23 | if err != nil {
24 | return nil, err
25 | }
26 | return result, nil
27 | }
28 |
29 | // RespGetAdminListService 获取应用的管理员列表响应
30 | // 文档:https://developer.work.weixin.qq.com/document/path/90606#获取应用的管理员列表
31 | type RespGetAdminListService struct {
32 | Admin []struct {
33 | AuthType int `json:"auth_type"`
34 | OpenUserid string `json:"open_userid"`
35 | Userid string `json:"userid"`
36 | } `json:"admin"`
37 | CommonResp
38 | }
39 |
40 | var _ bodyer = RespGetAdminListService{}
41 |
42 | func (x RespGetAdminListService) intoBody() ([]byte, error) {
43 | result, err := json.Marshal(x)
44 | if err != nil {
45 | return nil, err
46 | }
47 | return result, nil
48 | }
49 |
50 | // ExecGetAdminListService 获取应用的管理员列表
51 | // 文档:https://developer.work.weixin.qq.com/document/path/90606#获取应用的管理员列表
52 | func (c *ApiClient) ExecGetAdminListService(req ReqGetAdminListService) (RespGetAdminListService, error) {
53 | var resp RespGetAdminListService
54 | err := c.executeWXApiPost("/cgi-bin/service/get_admin_list", req, &resp, true)
55 | if err != nil {
56 | return RespGetAdminListService{}, err
57 | }
58 | if bizErr := resp.TryIntoErr(); bizErr != nil {
59 | return RespGetAdminListService{}, bizErr
60 | }
61 | return resp, nil
62 | }
63 |
--------------------------------------------------------------------------------
/apis/应用授权-获取预授权码.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 |
6 | "net/url"
7 | )
8 |
9 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
10 | // 可自行修改生成的文件,以满足开发需求
11 |
12 | // ReqGetPreAuthCodeService 获取预授权码请求
13 | // 文档:https://developer.work.weixin.qq.com/document/path/90601#获取预授权码
14 | type ReqGetPreAuthCodeService struct{}
15 |
16 | var _ urlValuer = ReqGetPreAuthCodeService{}
17 |
18 | func (x ReqGetPreAuthCodeService) intoURLValues() url.Values {
19 | var vals map[string]interface{}
20 | jsonBytes, _ := json.Marshal(x)
21 | _ = json.Unmarshal(jsonBytes, &vals)
22 |
23 | var ret url.Values = make(map[string][]string)
24 | for k, v := range vals {
25 | ret.Add(k, StrVal(v))
26 | }
27 | return ret
28 | }
29 |
30 | // RespGetPreAuthCodeService 获取预授权码响应
31 | // 文档:https://developer.work.weixin.qq.com/document/path/90601#获取预授权码
32 | type RespGetPreAuthCodeService struct {
33 | CommonResp
34 | // ExpiresIn 有效期(秒)
35 | ExpiresIn int `json:"expires_in"`
36 | // PreAuthCode 预授权码,最长为512字节
37 | PreAuthCode string `json:"pre_auth_code"`
38 | }
39 |
40 | var _ bodyer = RespGetPreAuthCodeService{}
41 |
42 | func (x RespGetPreAuthCodeService) intoBody() ([]byte, error) {
43 | result, err := json.Marshal(x)
44 | if err != nil {
45 | return nil, err
46 | }
47 | return result, nil
48 | }
49 |
50 | // ExecGetPreAuthCodeService 获取预授权码
51 | // 文档:https://developer.work.weixin.qq.com/document/path/90601#获取预授权码
52 | func (c *ApiClient) ExecGetPreAuthCodeService(req ReqGetPreAuthCodeService) (RespGetPreAuthCodeService, error) {
53 | var resp RespGetPreAuthCodeService
54 | err := c.executeWXApiGet("/cgi-bin/service/get_pre_auth_code", req, &resp, true)
55 | if err != nil {
56 | return RespGetPreAuthCodeService{}, err
57 | }
58 | if bizErr := resp.TryIntoErr(); bizErr != nil {
59 | return RespGetPreAuthCodeService{}, bizErr
60 | }
61 | return resp, nil
62 | }
63 |
--------------------------------------------------------------------------------
/apis/成员管理-二次验证.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 |
6 | "net/url"
7 | )
8 |
9 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
10 | // 可自行修改生成的文件,以满足开发需求
11 |
12 | // ReqAuthsuccUser 成二次验证请求
13 | // 文档:https://developer.work.weixin.qq.com/document/path/90339#二次验证
14 | type ReqAuthsuccUser struct {
15 | // Userid 成员UserID。对应管理端的帐号,必填
16 | Userid string `json:"userid"`
17 | }
18 |
19 | var _ urlValuer = ReqAuthsuccUser{}
20 |
21 | func (x ReqAuthsuccUser) intoURLValues() url.Values {
22 | var vals map[string]interface{}
23 | jsonBytes, _ := json.Marshal(x)
24 | _ = json.Unmarshal(jsonBytes, &vals)
25 |
26 | var ret url.Values = make(map[string][]string)
27 | for k, v := range vals {
28 | ret.Add(k, StrVal(v))
29 | }
30 | return ret
31 | }
32 |
33 | // RespAuthsuccUser 成二次验证响应
34 | // 文档:https://developer.work.weixin.qq.com/document/path/90339#成二次验证
35 | type RespAuthsuccUser struct {
36 | CommonResp
37 | }
38 |
39 | var _ bodyer = RespAuthsuccUser{}
40 |
41 | func (x RespAuthsuccUser) intoBody() ([]byte, error) {
42 | result, err := json.Marshal(x)
43 | if err != nil {
44 | return nil, err
45 | }
46 | return result, nil
47 | }
48 |
49 | // ExecAuthsuccUser 成二次验证
50 | // 文档:https://developer.work.weixin.qq.com/document/path/90339#成二次验证
51 | func (c *ApiClient) ExecAuthsuccUser(req ReqAuthsuccUser) (RespAuthsuccUser, error) {
52 | var resp RespAuthsuccUser
53 | err := c.executeWXApiGet("/cgi-bin/user/authsucc", req, &resp, true)
54 | if err != nil {
55 | return RespAuthsuccUser{}, err
56 | }
57 | if bizErr := resp.TryIntoErr(); bizErr != nil {
58 | return RespAuthsuccUser{}, bizErr
59 | }
60 | return resp, nil
61 | }
62 |
--------------------------------------------------------------------------------
/apis/成员管理-删除成员.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | "net/url"
6 | )
7 |
8 | type ReqDeleteUser struct {
9 | Userid string `json:"userid"`
10 | }
11 |
12 | var _ urlValuer = ReqDeleteUser{}
13 |
14 | func (x ReqDeleteUser) intoURLValues() url.Values {
15 | var vals map[string]interface{}
16 | jsonBytes, _ := json.Marshal(x)
17 | _ = json.Unmarshal(jsonBytes, &vals)
18 |
19 | var ret url.Values = make(map[string][]string)
20 | for k, v := range vals {
21 | ret.Add(k, StrVal(v))
22 | }
23 | return ret
24 | }
25 |
26 | type RespDeleteUser struct {
27 | CommonResp
28 | }
29 |
30 | var _ bodyer = RespDeleteUser{}
31 |
32 | func (x RespDeleteUser) intoBody() ([]byte, error) {
33 | result, err := json.Marshal(x)
34 | if err != nil {
35 | return nil, err
36 | }
37 | return result, nil
38 | }
39 |
40 | func (c *ApiClient) ExecDeleteUser(req ReqDeleteUser) (RespDeleteUser, error) {
41 | var resp RespDeleteUser
42 | err := c.executeWXApiGet("/cgi-bin/user/delete", req, &resp, true)
43 | if err != nil {
44 | return RespDeleteUser{}, err
45 | }
46 | if bizErr := resp.TryIntoErr(); bizErr != nil {
47 | return RespDeleteUser{}, bizErr
48 | }
49 | return resp, nil
50 | }
51 |
--------------------------------------------------------------------------------
/apis/成员管理-手机号获取userid.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqGetuseridUser 手机号获取userid请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/91693#手机号获取userid
12 | type ReqGetuseridUser struct {
13 | // Mobile 用户在企业微信通讯录中的手机号码。长度为5~32个字节,必填
14 | Mobile string `json:"mobile"`
15 | }
16 |
17 | var _ bodyer = ReqGetuseridUser{}
18 |
19 | func (x ReqGetuseridUser) intoBody() ([]byte, error) {
20 | result, err := json.Marshal(x)
21 | if err != nil {
22 | return nil, err
23 | }
24 | return result, nil
25 | }
26 |
27 | // RespGetuseridUser 手机号获取userid响应
28 | // 文档:https://developer.work.weixin.qq.com/document/path/91693#手机号获取userid
29 | type RespGetuseridUser struct {
30 | CommonResp
31 | // Userid 成员UserID。对应管理端的帐号,企业内必须唯一。不区分大小写,长度为1~64个字节。注意:第三方应用获取的值是密文的userid
32 | Userid string `json:"userid"`
33 | }
34 |
35 | var _ bodyer = RespGetuseridUser{}
36 |
37 | func (x RespGetuseridUser) intoBody() ([]byte, error) {
38 | result, err := json.Marshal(x)
39 | if err != nil {
40 | return nil, err
41 | }
42 | return result, nil
43 | }
44 |
45 | // ExecGetuseridUser 手机号获取userid
46 | // 文档:https://developer.work.weixin.qq.com/document/path/91693#手机号获取userid
47 | func (c *ApiClient) ExecGetuseridUser(req ReqGetuseridUser) (RespGetuseridUser, error) {
48 | var resp RespGetuseridUser
49 | err := c.executeWXApiPost("/cgi-bin/user/getuserid", req, &resp, true)
50 | if err != nil {
51 | return RespGetuseridUser{}, err
52 | }
53 | if bizErr := resp.TryIntoErr(); bizErr != nil {
54 | return RespGetuseridUser{}, bizErr
55 | }
56 | return resp, nil
57 | }
58 |
--------------------------------------------------------------------------------
/apis/成员管理-查询成员用户是否已授权.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqCheckMemberAuthUser 查询成员用户是否已授权请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/94514#查询成员用户是否已授权
12 | type ReqCheckMemberAuthUser struct {
13 | // OpenUserid
14 | OpenUserid string `json:"open_userid,omitempty"`
15 | }
16 |
17 | var _ bodyer = ReqCheckMemberAuthUser{}
18 |
19 | func (x ReqCheckMemberAuthUser) intoBody() ([]byte, error) {
20 | result, err := json.Marshal(x)
21 | if err != nil {
22 | return nil, err
23 | }
24 | return result, nil
25 | }
26 |
27 | // RespCheckMemberAuthUser 查询成员用户是否已授权响应
28 | // 文档:https://developer.work.weixin.qq.com/document/path/94514#查询成员用户是否已授权
29 | type RespCheckMemberAuthUser struct {
30 | CommonResp
31 | // IsMemberAuth 成员授权模式下,该成员已授权
32 | IsMemberAuth bool `json:"is_member_auth"`
33 | }
34 |
35 | var _ bodyer = RespCheckMemberAuthUser{}
36 |
37 | func (x RespCheckMemberAuthUser) intoBody() ([]byte, error) {
38 | result, err := json.Marshal(x)
39 | if err != nil {
40 | return nil, err
41 | }
42 | return result, nil
43 | }
44 |
45 | // ExecCheckMemberAuthUser 查询成员用户是否已授权
46 | // 文档:https://developer.work.weixin.qq.com/document/path/94514#查询成员用户是否已授权
47 | func (c *ApiClient) ExecCheckMemberAuthUser(req ReqCheckMemberAuthUser) (RespCheckMemberAuthUser, error) {
48 | var resp RespCheckMemberAuthUser
49 | err := c.executeWXApiPost("/cgi-bin/user/check_member_auth", req, &resp, true)
50 | if err != nil {
51 | return RespCheckMemberAuthUser{}, err
52 | }
53 | if bizErr := resp.TryIntoErr(); bizErr != nil {
54 | return RespCheckMemberAuthUser{}, bizErr
55 | }
56 | return resp, nil
57 | }
58 |
--------------------------------------------------------------------------------
/apis/成员管理-获取成员ID列表.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqListIdUser 获取成员ID列表请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/96021#获取成员ID列表
12 | type ReqListIdUser struct {
13 | // Cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用不填
14 | Cursor string `json:"cursor,omitempty"`
15 | // Limit 分页,预期请求的数据量,取值范围 1 ~ 10000
16 | Limit int `json:"limit,omitempty"`
17 | }
18 |
19 | var _ bodyer = ReqListIdUser{}
20 |
21 | func (x ReqListIdUser) intoBody() ([]byte, error) {
22 | result, err := json.Marshal(x)
23 | if err != nil {
24 | return nil, err
25 | }
26 | return result, nil
27 | }
28 |
29 | // RespListIdUser 获取成员ID列表响应
30 | // 文档:https://developer.work.weixin.qq.com/document/path/96021#获取成员ID列表
31 | type RespListIdUser struct {
32 | CommonResp
33 | NextCursor string `json:"next_cursor"`
34 | DeptUser []struct {
35 | OpenUserid string `json:"open_userid"`
36 | Department int `json:"department"`
37 | } `json:"dept_user"`
38 | }
39 |
40 | var _ bodyer = RespListIdUser{}
41 |
42 | func (x RespListIdUser) intoBody() ([]byte, error) {
43 | result, err := json.Marshal(x)
44 | if err != nil {
45 | return nil, err
46 | }
47 | return result, nil
48 | }
49 |
50 | // ExecListIdUser 获取成员ID列表
51 | // 文档:https://developer.work.weixin.qq.com/document/path/96021#获取成员ID列表
52 | func (c *ApiClient) ExecListIdUser(req ReqListIdUser) (RespListIdUser, error) {
53 | var resp RespListIdUser
54 | err := c.executeWXApiPost("/cgi-bin/user/list_id", req, &resp, true)
55 | if err != nil {
56 | return RespListIdUser{}, err
57 | }
58 | if bizErr := resp.TryIntoErr(); bizErr != nil {
59 | return RespListIdUser{}, bizErr
60 | }
61 | return resp, nil
62 | }
63 |
--------------------------------------------------------------------------------
/apis/成员管理-邀请成员.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqInviteBatch 成邀请成员请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/91127#成邀请成员
12 | type ReqInviteBatch struct {
13 | User []string `json:"user"`
14 | Party []int `json:"party"`
15 | Tag []int `json:"tag"`
16 | }
17 |
18 | var _ bodyer = ReqInviteBatch{}
19 |
20 | func (x ReqInviteBatch) intoBody() ([]byte, error) {
21 | result, err := json.Marshal(x)
22 | if err != nil {
23 | return nil, err
24 | }
25 | return result, nil
26 | }
27 |
28 | // RespInviteBatch 成邀请成员响应
29 | // 文档:https://developer.work.weixin.qq.com/document/path/91127#成邀请成员
30 | type RespInviteBatch struct {
31 | CommonResp
32 | // 非法成员列表
33 | InvalidUser []string `json:"invaliduser"`
34 | // 非法部门列表
35 | InvalidParty []int `json:"invalidparty"`
36 | // 非法标签列表
37 | InvalidTag []int `json:"invalidtag"`
38 | }
39 |
40 | var _ bodyer = RespInviteBatch{}
41 |
42 | func (x RespInviteBatch) intoBody() ([]byte, error) {
43 | result, err := json.Marshal(x)
44 | if err != nil {
45 | return nil, err
46 | }
47 | return result, nil
48 | }
49 |
50 | // ExecInviteBatch 成邀请成员
51 | // 文档:https://developer.work.weixin.qq.com/document/path/91127#成邀请成员
52 | func (c *ApiClient) ExecInviteBatch(req ReqInviteBatch) (RespInviteBatch, error) {
53 | var resp RespInviteBatch
54 | err := c.executeWXApiPost("/cgi-bin/batch/invite", req, &resp, true)
55 | if err != nil {
56 | return RespInviteBatch{}, err
57 | }
58 | if bizErr := resp.TryIntoErr(); bizErr != nil {
59 | return RespInviteBatch{}, bizErr
60 | }
61 | return resp, nil
62 | }
63 |
--------------------------------------------------------------------------------
/apis/成员管理-邮箱获取userid.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqGetUseridByEmailUser 邮箱获取userid请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/95892#邮箱获取userid
12 | type ReqGetUseridByEmailUser struct {
13 | // Email 邮箱,必填
14 | Email string `json:"email"`
15 | // EmailType 邮箱类型:1-企业邮箱(默认);2-个人邮箱
16 | EmailType int `json:"email_type,omitempty"`
17 | }
18 |
19 | var _ bodyer = ReqGetUseridByEmailUser{}
20 |
21 | func (x ReqGetUseridByEmailUser) intoBody() ([]byte, error) {
22 | result, err := json.Marshal(x)
23 | if err != nil {
24 | return nil, err
25 | }
26 | return result, nil
27 | }
28 |
29 | // RespGetUseridByEmailUser 邮箱获取userid响应
30 | // 文档:https://developer.work.weixin.qq.com/document/path/95892#邮箱获取userid
31 | type RespGetUseridByEmailUser struct {
32 | CommonResp
33 | // Userid 成员UserID。注意:已升级openid的代开发或第三方,获取的是密文userid
34 | Userid string `json:"userid"`
35 | }
36 |
37 | var _ bodyer = RespGetUseridByEmailUser{}
38 |
39 | func (x RespGetUseridByEmailUser) intoBody() ([]byte, error) {
40 | result, err := json.Marshal(x)
41 | if err != nil {
42 | return nil, err
43 | }
44 | return result, nil
45 | }
46 |
47 | // ExecGetUseridByEmailUser 邮箱获取userid
48 | // 文档:https://developer.work.weixin.qq.com/document/path/95892#邮箱获取userid
49 | func (c *ApiClient) ExecGetUseridByEmailUser(req ReqGetUseridByEmailUser) (RespGetUseridByEmailUser, error) {
50 | var resp RespGetUseridByEmailUser
51 | err := c.executeWXApiPost("/cgi-bin/user/get_userid_by_email", req, &resp, true)
52 | if err != nil {
53 | return RespGetUseridByEmailUser{}, err
54 | }
55 | if bizErr := resp.TryIntoErr(); bizErr != nil {
56 | return RespGetUseridByEmailUser{}, bizErr
57 | }
58 | return resp, nil
59 | }
60 |
--------------------------------------------------------------------------------
/apis/打卡-为打卡人员排班.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | type (
8 | ReqSetCheckInSchedulist struct {
9 | Groupid int `json:"groupid"`
10 | Items []ReqSetCheckInSchedulistItems `json:"items"`
11 | Yearmonth int `json:"yearmonth"`
12 | }
13 |
14 | ReqSetCheckInSchedulistItems struct {
15 | Userid string `json:"userid"`
16 | Day int `json:"day"`
17 | ScheduleId int `json:"schedule_id"`
18 | }
19 | )
20 |
21 | var _ bodyer = ReqSetCheckInSchedulist{}
22 |
23 | func (x ReqSetCheckInSchedulist) intoBody() ([]byte, error) {
24 | result, err := json.Marshal(x)
25 | if err != nil {
26 | return nil, err
27 | }
28 | return result, nil
29 | }
30 |
31 | type RespSetCheckInSchedulist struct {
32 | CommonResp
33 | }
34 |
35 | var _ bodyer = RespSetCheckInSchedulist{}
36 |
37 | func (x RespSetCheckInSchedulist) intoBody() ([]byte, error) {
38 | result, err := json.Marshal(x)
39 | if err != nil {
40 | return nil, err
41 | }
42 | return result, nil
43 | }
44 |
45 | func (c *ApiClient) ExecSetCheckInSchedulist(req ReqSetCheckInSchedulist) (RespSetCheckInSchedulist, error) {
46 | var resp RespSetCheckInSchedulist
47 | err := c.executeWXApiPost("/cgi-bin/checkin/setcheckinschedulist", req, &resp, true)
48 | if err != nil {
49 | return RespSetCheckInSchedulist{}, err
50 | }
51 | if bizErr := resp.TryIntoErr(); bizErr != nil {
52 | return RespSetCheckInSchedulist{}, bizErr
53 | }
54 | return resp, nil
55 | }
56 |
--------------------------------------------------------------------------------
/apis/打卡-获取设备打卡数据.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | type ReqGetHardwareCheckInData struct {
8 | FilterType int `json:"filter_type"`
9 | Starttime int `json:"starttime"`
10 | Endtime int `json:"endtime"`
11 | Useridlist []string `json:"useridlist"`
12 | }
13 |
14 | var _ bodyer = ReqGetHardwareCheckInData{}
15 |
16 | func (x ReqGetHardwareCheckInData) intoBody() ([]byte, error) {
17 | result, err := json.Marshal(x)
18 | if err != nil {
19 | return nil, err
20 | }
21 | return result, nil
22 | }
23 |
24 | type RespGetHardwareCheckInData struct {
25 | CommonResp
26 | Checkindata []struct {
27 | Userid string `json:"userid"`
28 | CheckinTime int `json:"checkin_time"`
29 | DeviceSn string `json:"device_sn"`
30 | DeviceName string `json:"device_name"`
31 | } `json:"checkindata"`
32 | }
33 |
34 | var _ bodyer = RespGetHardwareCheckInData{}
35 |
36 | func (x RespGetHardwareCheckInData) intoBody() ([]byte, error) {
37 | result, err := json.Marshal(x)
38 | if err != nil {
39 | return nil, err
40 | }
41 | return result, nil
42 | }
43 |
44 | func (c *ApiClient) ExecGetHardwareCheckInData(req ReqGetHardwareCheckInData) (RespGetHardwareCheckInData, error) {
45 | var resp RespGetHardwareCheckInData
46 | err := c.executeWXApiPost("/cgi-bin/checkin/get_hardware_checkin_data", req, &resp, true)
47 | if err != nil {
48 | return RespGetHardwareCheckInData{}, err
49 | }
50 | if bizErr := resp.TryIntoErr(); bizErr != nil {
51 | return RespGetHardwareCheckInData{}, bizErr
52 | }
53 | return resp, nil
54 | }
55 |
--------------------------------------------------------------------------------
/apis/接口调用许可-取消订单.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqCancelOrderLicense 取消订单请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/96106#取消订单
12 | type ReqCancelOrderLicense struct {
13 | Corpid string `json:"corpid"`
14 | OrderID string `json:"order_id"`
15 | }
16 |
17 | var _ bodyer = ReqCancelOrderLicense{}
18 |
19 | func (x ReqCancelOrderLicense) intoBody() ([]byte, error) {
20 | result, err := json.Marshal(x)
21 | if err != nil {
22 | return nil, err
23 | }
24 | return result, nil
25 | }
26 |
27 | // RespCancelOrderLicense 取消订单响应
28 | // 文档:https://developer.work.weixin.qq.com/document/path/96106#取消订单
29 | type RespCancelOrderLicense struct {
30 | CommonResp
31 | }
32 |
33 | var _ bodyer = RespCancelOrderLicense{}
34 |
35 | func (x RespCancelOrderLicense) intoBody() ([]byte, error) {
36 | result, err := json.Marshal(x)
37 | if err != nil {
38 | return nil, err
39 | }
40 | return result, nil
41 | }
42 |
43 | // ExecCancelOrderLicense 取消订单
44 | // 文档:https://developer.work.weixin.qq.com/document/path/96106#取消订单
45 | func (c *ApiClient) ExecCancelOrderLicense(req ReqCancelOrderLicense) (RespCancelOrderLicense, error) {
46 | var resp RespCancelOrderLicense
47 | err := c.executeWXApiPost("/cgi-bin/license/cancel_order", req, &resp, true)
48 | if err != nil {
49 | return RespCancelOrderLicense{}, err
50 | }
51 | if bizErr := resp.TryIntoErr(); bizErr != nil {
52 | return RespCancelOrderLicense{}, bizErr
53 | }
54 | return resp, nil
55 | }
56 |
--------------------------------------------------------------------------------
/apis/接口调用许可-查询企业的许可自动激活状态.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqGetAutoActiveStatusLicense 查询企业的许可自动激活状态请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/95874#查询企业的许可自动激活状态
12 | type ReqGetAutoActiveStatusLicense struct {
13 | // Corpid 查询的企业corpid。要求服务商为企业购买过接口许可才有查询结果。,必填
14 | Corpid string `json:"corpid"`
15 | }
16 |
17 | var _ bodyer = ReqGetAutoActiveStatusLicense{}
18 |
19 | func (x ReqGetAutoActiveStatusLicense) intoBody() ([]byte, error) {
20 | result, err := json.Marshal(x)
21 | if err != nil {
22 | return nil, err
23 | }
24 | return result, nil
25 | }
26 |
27 | // RespGetAutoActiveStatusLicense 查询企业的许可自动激活状态响应
28 | // 文档:https://developer.work.weixin.qq.com/document/path/95874#查询企业的许可自动激活状态
29 | type RespGetAutoActiveStatusLicense struct {
30 | // AutoActiveStatus 许可自动激活状态。0:关闭,1:打开
31 | AutoActiveStatus int `json:"auto_active_status"`
32 | CommonResp
33 | }
34 |
35 | var _ bodyer = RespGetAutoActiveStatusLicense{}
36 |
37 | func (x RespGetAutoActiveStatusLicense) intoBody() ([]byte, error) {
38 | result, err := json.Marshal(x)
39 | if err != nil {
40 | return nil, err
41 | }
42 | return result, nil
43 | }
44 |
45 | // ExecGetAutoActiveStatusLicense 查询企业的许可自动激活状态
46 | // 文档:https://developer.work.weixin.qq.com/document/path/95874#查询企业的许可自动激活状态
47 | func (c *ApiClient) ExecGetAutoActiveStatusLicense(req ReqGetAutoActiveStatusLicense) (RespGetAutoActiveStatusLicense, error) {
48 | var resp RespGetAutoActiveStatusLicense
49 | err := c.executeWXApiPost("/cgi-bin/license/get_auto_active_status", req, &resp, true)
50 | if err != nil {
51 | return RespGetAutoActiveStatusLicense{}, err
52 | }
53 | if bizErr := resp.TryIntoErr(); bizErr != nil {
54 | return RespGetAutoActiveStatusLicense{}, bizErr
55 | }
56 | return resp, nil
57 | }
58 |
--------------------------------------------------------------------------------
/apis/推广二维码-获取应用安装链接.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | // 推广二维码方式安装应用:获取应用安装链接
4 | // 文档:https://developer.work.weixin.qq.com/document/path/90578
5 | func (c *ApiClient) ExecGetRegisterUrl(registerCode string) string {
6 | return "https://open.work.weixin.qq.com/3rdservice/wework/register?register_code=" + registerCode
7 | }
8 |
--------------------------------------------------------------------------------
/apis/收银台-取消收款订单.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqCloseOrderPaytool 取消收款订单请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/98046#取消收款订单
12 | type ReqCloseOrderPaytool struct {
13 | // NonceStr 随机字符串,长度要求在32字节以内,用于保证签名不可预测及防重放攻击。
需保证15分钟内不能重复,推荐随机字符串生成算法
14 | NonceStr string `json:"nonce_str,omitempty"`
15 | // OrderID 收款订单号
不多于64字节
16 | OrderID string `json:"order_id,omitempty"`
17 | // Sig 数字签名
18 | Sig string `json:"sig,omitempty"`
19 | // Ts unix时间戳(中国时区),精确到秒。
注意业务系统的机器时间与腾讯的时间相差不能超过15分钟
20 | Ts int `json:"ts,omitempty"`
21 | }
22 |
23 | var _ bodyer = ReqCloseOrderPaytool{}
24 |
25 | func (x ReqCloseOrderPaytool) intoBody() ([]byte, error) {
26 | result, err := json.Marshal(x)
27 | if err != nil {
28 | return nil, err
29 | }
30 | return result, nil
31 | }
32 |
33 | // RespCloseOrderPaytool 取消收款订单响应
34 | // 文档:https://developer.work.weixin.qq.com/document/path/98046#取消收款订单
35 | type RespCloseOrderPaytool struct {
36 | CommonResp
37 | }
38 |
39 | var _ bodyer = RespCloseOrderPaytool{}
40 |
41 | func (x RespCloseOrderPaytool) intoBody() ([]byte, error) {
42 | result, err := json.Marshal(x)
43 | if err != nil {
44 | return nil, err
45 | }
46 | return result, nil
47 | }
48 |
49 | // ExecCloseOrderPaytool 取消收款订单
50 | // 文档:https://developer.work.weixin.qq.com/document/path/98046#取消收款订单
51 | func (c *ApiClient) ExecCloseOrderPaytool(req ReqCloseOrderPaytool) (RespCloseOrderPaytool, error) {
52 | var resp RespCloseOrderPaytool
53 | err := c.executeWXApiPost("/cgi-bin/paytool/close_order", req, &resp, true)
54 | if err != nil {
55 | return RespCloseOrderPaytool{}, err
56 | }
57 | if bizErr := resp.TryIntoErr(); bizErr != nil {
58 | return RespCloseOrderPaytool{}, bizErr
59 | }
60 | return resp, nil
61 | }
62 |
--------------------------------------------------------------------------------
/apis/收银台-延长试用期.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqProlongTryService 延长试用期请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/91913#延长试用期
12 | type ReqProlongTryService struct {
13 | // Appid 仅旧套件需要填此参数
14 | Appid int `json:"appid,omitempty"`
15 | // BuyerCorpid 购买方corpid,必填
16 | BuyerCorpid string `json:"buyer_corpid"`
17 | // ProlongDays 延长天数,必填
18 | ProlongDays int `json:"prolong_days"`
19 | }
20 |
21 | var _ bodyer = ReqProlongTryService{}
22 |
23 | func (x ReqProlongTryService) intoBody() ([]byte, error) {
24 | result, err := json.Marshal(x)
25 | if err != nil {
26 | return nil, err
27 | }
28 | return result, nil
29 | }
30 |
31 | // RespProlongTryService 延长试用期响应
32 | // 文档:https://developer.work.weixin.qq.com/document/path/91913#延长试用期
33 | type RespProlongTryService struct {
34 | CommonResp
35 | // TryEndTime 延长后的试用到期时间(UNIX时间戳)
36 | TryEndTime int `json:"try_end_time"`
37 | }
38 |
39 | var _ bodyer = RespProlongTryService{}
40 |
41 | func (x RespProlongTryService) intoBody() ([]byte, error) {
42 | result, err := json.Marshal(x)
43 | if err != nil {
44 | return nil, err
45 | }
46 | return result, nil
47 | }
48 |
49 | // ExecProlongTryService 延长试用期
50 | // 文档:https://developer.work.weixin.qq.com/document/path/91913#延长试用期
51 | func (c *ApiClient) ExecProlongTryService(req ReqProlongTryService) (RespProlongTryService, error) {
52 | var resp RespProlongTryService
53 | err := c.executeWXApiPost("/cgi-bin/service/prolong_try", req, &resp, true)
54 | if err != nil {
55 | return RespProlongTryService{}, err
56 | }
57 | if bizErr := resp.TryIntoErr(); bizErr != nil {
58 | return RespProlongTryService{}, bizErr
59 | }
60 | return resp, nil
61 | }
62 |
--------------------------------------------------------------------------------
/apis/标签管理-创建标签.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqCreateTag 创建标签请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/90346#创建标签
12 | type ReqCreateTag struct {
13 | // Tagid 标签id,非负整型,指定此参数时新增的标签会生成对应的标签id,不指定时则以目前最大的id自增。
14 | Tagid int `json:"tagid,omitempty"`
15 | // Tagname 标签名称,长度限制为32个字以内(汉字或英文字母),标签名不可与其他标签重名。,必填
16 | Tagname string `json:"tagname"`
17 | }
18 |
19 | var _ bodyer = ReqCreateTag{}
20 |
21 | func (x ReqCreateTag) intoBody() ([]byte, error) {
22 | result, err := json.Marshal(x)
23 | if err != nil {
24 | return nil, err
25 | }
26 | return result, nil
27 | }
28 |
29 | // RespCreateTag 创建标签响应
30 | // 文档:https://developer.work.weixin.qq.com/document/path/90346#创建标签
31 | type RespCreateTag struct {
32 | CommonResp
33 | // Tagid 标签id
34 | Tagid int `json:"tagid"`
35 | }
36 |
37 | var _ bodyer = RespCreateTag{}
38 |
39 | func (x RespCreateTag) intoBody() ([]byte, error) {
40 | result, err := json.Marshal(x)
41 | if err != nil {
42 | return nil, err
43 | }
44 | return result, nil
45 | }
46 |
47 | // ExecCreateTag 创建标签
48 | // 文档:https://developer.work.weixin.qq.com/document/path/90346#创建标签
49 | func (c *ApiClient) ExecCreateTag(req ReqCreateTag) (RespCreateTag, error) {
50 | var resp RespCreateTag
51 | err := c.executeWXApiPost("/cgi-bin/tag/create", req, &resp, true)
52 | if err != nil {
53 | return RespCreateTag{}, err
54 | }
55 | if bizErr := resp.TryIntoErr(); bizErr != nil {
56 | return RespCreateTag{}, bizErr
57 | }
58 | return resp, nil
59 | }
60 |
--------------------------------------------------------------------------------
/apis/标签管理-删除标签.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 |
6 | "net/url"
7 | )
8 |
9 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
10 | // 可自行修改生成的文件,以满足开发需求
11 |
12 | // ReqDeleteTag 删除标签请求
13 | // 文档:https://developer.work.weixin.qq.com/document/path/90348#删除标签
14 | type ReqDeleteTag struct {
15 | // Tagid 标签ID,必填
16 | Tagid int `json:"tagid"`
17 | }
18 |
19 | var _ urlValuer = ReqDeleteTag{}
20 |
21 | func (x ReqDeleteTag) intoURLValues() url.Values {
22 | var vals map[string]interface{}
23 | jsonBytes, _ := json.Marshal(x)
24 | _ = json.Unmarshal(jsonBytes, &vals)
25 |
26 | var ret url.Values = make(map[string][]string)
27 | for k, v := range vals {
28 | ret.Add(k, StrVal(v))
29 | }
30 | return ret
31 | }
32 |
33 | // RespDeleteTag 删除标签响应
34 | // 文档:https://developer.work.weixin.qq.com/document/path/90348#删除标签
35 | type RespDeleteTag struct {
36 | CommonResp
37 | }
38 |
39 | var _ bodyer = RespDeleteTag{}
40 |
41 | func (x RespDeleteTag) intoBody() ([]byte, error) {
42 | result, err := json.Marshal(x)
43 | if err != nil {
44 | return nil, err
45 | }
46 | return result, nil
47 | }
48 |
49 | // ExecDeleteTag 删除标签
50 | // 文档:https://developer.work.weixin.qq.com/document/path/90348#删除标签
51 | func (c *ApiClient) ExecDeleteTag(req ReqDeleteTag) (RespDeleteTag, error) {
52 | var resp RespDeleteTag
53 | err := c.executeWXApiGet("/cgi-bin/tag/delete", req, &resp, true)
54 | if err != nil {
55 | return RespDeleteTag{}, err
56 | }
57 | if bizErr := resp.TryIntoErr(); bizErr != nil {
58 | return RespDeleteTag{}, bizErr
59 | }
60 | return resp, nil
61 | }
62 |
--------------------------------------------------------------------------------
/apis/标签管理-删除标签成员.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqDeltagusersTag 删除标签成员请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/90351#删除标签成员
12 | type ReqDeltagusersTag struct {
13 | // Partylist 企业部门ID列表,注意:userlist、partylist不能同时为空,单次请求长度不超过100
14 | Partylist []int `json:"partylist,omitempty"`
15 | // Tagid 标签ID,必填
16 | Tagid int `json:"tagid"`
17 | // Userlist 企业成员ID列表,注意:userlist、partylist不能同时为空,单次请求长度不超过1000
18 | Userlist []string `json:"userlist,omitempty"`
19 | }
20 |
21 | var _ bodyer = ReqDeltagusersTag{}
22 |
23 | func (x ReqDeltagusersTag) intoBody() ([]byte, error) {
24 | result, err := json.Marshal(x)
25 | if err != nil {
26 | return nil, err
27 | }
28 | return result, nil
29 | }
30 |
31 | // RespDeltagusersTag 删除标签成员响应
32 | // 文档:https://developer.work.weixin.qq.com/document/path/90351#删除标签成员
33 | type RespDeltagusersTag struct {
34 | CommonResp
35 | }
36 |
37 | var _ bodyer = RespDeltagusersTag{}
38 |
39 | func (x RespDeltagusersTag) intoBody() ([]byte, error) {
40 | result, err := json.Marshal(x)
41 | if err != nil {
42 | return nil, err
43 | }
44 | return result, nil
45 | }
46 |
47 | // ExecDeltagusersTag 删除标签成员
48 | // 文档:https://developer.work.weixin.qq.com/document/path/90351#删除标签成员
49 | func (c *ApiClient) ExecDeltagusersTag(req ReqDeltagusersTag) (RespDeltagusersTag, error) {
50 | var resp RespDeltagusersTag
51 | err := c.executeWXApiPost("/cgi-bin/tag/deltagusers", req, &resp, true)
52 | if err != nil {
53 | return RespDeltagusersTag{}, err
54 | }
55 | if bizErr := resp.TryIntoErr(); bizErr != nil {
56 | return RespDeltagusersTag{}, bizErr
57 | }
58 | return resp, nil
59 | }
60 |
--------------------------------------------------------------------------------
/apis/标签管理-增加标签成员.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqAddtagusersTag 增加标签成员请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/90350#增加标签成员
12 | type ReqAddtagusersTag struct {
13 | // Partylist 企业部门ID列表,注意:userlist、partylist不能同时为空,单次请求个数不超过100
14 | Partylist []int `json:"partylist,omitempty"`
15 | // Tagid 标签ID,必填
16 | Tagid int `json:"tagid"`
17 | // Userlist 企业成员ID列表,注意:userlist、partylist不能同时为空,单次请求个数不超过1000
18 | Userlist []string `json:"userlist,omitempty"`
19 | }
20 |
21 | var _ bodyer = ReqAddtagusersTag{}
22 |
23 | func (x ReqAddtagusersTag) intoBody() ([]byte, error) {
24 | result, err := json.Marshal(x)
25 | if err != nil {
26 | return nil, err
27 | }
28 | return result, nil
29 | }
30 |
31 | // RespAddtagusersTag 增加标签成员响应
32 | // 文档:https://developer.work.weixin.qq.com/document/path/90350#增加标签成员
33 | type RespAddtagusersTag struct {
34 | CommonResp
35 | }
36 |
37 | var _ bodyer = RespAddtagusersTag{}
38 |
39 | func (x RespAddtagusersTag) intoBody() ([]byte, error) {
40 | result, err := json.Marshal(x)
41 | if err != nil {
42 | return nil, err
43 | }
44 | return result, nil
45 | }
46 |
47 | // ExecAddtagusersTag 增加标签成员
48 | // 文档:https://developer.work.weixin.qq.com/document/path/90350#增加标签成员
49 | func (c *ApiClient) ExecAddtagusersTag(req ReqAddtagusersTag) (RespAddtagusersTag, error) {
50 | var resp RespAddtagusersTag
51 | err := c.executeWXApiPost("/cgi-bin/tag/addtagusers", req, &resp, true)
52 | if err != nil {
53 | return RespAddtagusersTag{}, err
54 | }
55 | if bizErr := resp.TryIntoErr(); bizErr != nil {
56 | return RespAddtagusersTag{}, bizErr
57 | }
58 | return resp, nil
59 | }
60 |
--------------------------------------------------------------------------------
/apis/标签管理-更新标签名字.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqUpdateTag 更新标签名字请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/90347#更新标签名字
12 | type ReqUpdateTag struct {
13 | // Tagid 标签ID,必填
14 | Tagid int `json:"tagid"`
15 | // Tagname 标签名称,长度限制为32个字(汉字或英文字母),标签不可与其他标签重名。,必填
16 | Tagname string `json:"tagname"`
17 | }
18 |
19 | var _ bodyer = ReqUpdateTag{}
20 |
21 | func (x ReqUpdateTag) intoBody() ([]byte, error) {
22 | result, err := json.Marshal(x)
23 | if err != nil {
24 | return nil, err
25 | }
26 | return result, nil
27 | }
28 |
29 | // RespUpdateTag 更新标签名字响应
30 | // 文档:https://developer.work.weixin.qq.com/document/path/90347#更新标签名字
31 | type RespUpdateTag struct {
32 | CommonResp
33 | }
34 |
35 | var _ bodyer = RespUpdateTag{}
36 |
37 | func (x RespUpdateTag) intoBody() ([]byte, error) {
38 | result, err := json.Marshal(x)
39 | if err != nil {
40 | return nil, err
41 | }
42 | return result, nil
43 | }
44 |
45 | // ExecUpdateTag 更新标签名字
46 | // 文档:https://developer.work.weixin.qq.com/document/path/90347#更新标签名字
47 | func (c *ApiClient) ExecUpdateTag(req ReqUpdateTag) (RespUpdateTag, error) {
48 | var resp RespUpdateTag
49 | err := c.executeWXApiPost("/cgi-bin/tag/update", req, &resp, true)
50 | if err != nil {
51 | return RespUpdateTag{}, err
52 | }
53 | if bizErr := resp.TryIntoErr(); bizErr != nil {
54 | return RespUpdateTag{}, bizErr
55 | }
56 | return resp, nil
57 | }
58 |
--------------------------------------------------------------------------------
/apis/标签管理-获取标签列表.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 |
6 | "net/url"
7 | )
8 |
9 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
10 | // 可自行修改生成的文件,以满足开发需求
11 |
12 | // ReqListTag 获取标签列表请求
13 | // 文档:https://developer.work.weixin.qq.com/document/path/90352#获取标签列表
14 | type ReqListTag struct{}
15 |
16 | var _ urlValuer = ReqListTag{}
17 |
18 | func (x ReqListTag) intoURLValues() url.Values {
19 | var vals map[string]interface{}
20 | jsonBytes, _ := json.Marshal(x)
21 | _ = json.Unmarshal(jsonBytes, &vals)
22 |
23 | var ret url.Values = make(map[string][]string)
24 | for k, v := range vals {
25 | ret.Add(k, StrVal(v))
26 | }
27 | return ret
28 | }
29 |
30 | // RespListTag 获取标签列表响应
31 | // 文档:https://developer.work.weixin.qq.com/document/path/90352#获取标签列表
32 | type RespListTag struct {
33 | CommonResp
34 | Taglist []struct {
35 | // Tagid 标签id
36 | Tagid int `json:"tagid"`
37 | // Tagname 标签名
38 | Tagname string `json:"tagname"`
39 | } `json:"taglist"` // 标签列表
40 | }
41 |
42 | var _ bodyer = RespListTag{}
43 |
44 | func (x RespListTag) intoBody() ([]byte, error) {
45 | result, err := json.Marshal(x)
46 | if err != nil {
47 | return nil, err
48 | }
49 | return result, nil
50 | }
51 |
52 | // ExecListTag 获取标签列表
53 | // 文档:https://developer.work.weixin.qq.com/document/path/90352#获取标签列表
54 | func (c *ApiClient) ExecListTag(req ReqListTag) (RespListTag, error) {
55 | var resp RespListTag
56 | err := c.executeWXApiGet("/cgi-bin/tag/list", req, &resp, true)
57 | if err != nil {
58 | return RespListTag{}, err
59 | }
60 | if bizErr := resp.TryIntoErr(); bizErr != nil {
61 | return RespListTag{}, bizErr
62 | }
63 | return resp, nil
64 | }
65 |
--------------------------------------------------------------------------------
/apis/消息推送-提醒成员群发.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqRemindGroupmsgSendExternalcontact 提醒成员群发请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/97610#提醒成员群发
12 | type ReqRemindGroupmsgSendExternalcontact struct {
13 | // Msgid 群发消息的id,通过获取群发记录列表接口返回,必填
14 | Msgid string `json:"msgid"`
15 | }
16 |
17 | var _ bodyer = ReqRemindGroupmsgSendExternalcontact{}
18 |
19 | func (x ReqRemindGroupmsgSendExternalcontact) intoBody() ([]byte, error) {
20 | result, err := json.Marshal(x)
21 | if err != nil {
22 | return nil, err
23 | }
24 | return result, nil
25 | }
26 |
27 | // RespRemindGroupmsgSendExternalcontact 提醒成员群发响应
28 | // 文档:https://developer.work.weixin.qq.com/document/path/97610#提醒成员群发
29 | type RespRemindGroupmsgSendExternalcontact struct {
30 | CommonResp
31 | }
32 |
33 | var _ bodyer = RespRemindGroupmsgSendExternalcontact{}
34 |
35 | func (x RespRemindGroupmsgSendExternalcontact) intoBody() ([]byte, error) {
36 | result, err := json.Marshal(x)
37 | if err != nil {
38 | return nil, err
39 | }
40 | return result, nil
41 | }
42 |
43 | // ExecRemindGroupmsgSendExternalcontact 提醒成员群发
44 | // 文档:https://developer.work.weixin.qq.com/document/path/97610#提醒成员群发
45 | func (c *ApiClient) ExecRemindGroupmsgSendExternalcontact(req ReqRemindGroupmsgSendExternalcontact) (RespRemindGroupmsgSendExternalcontact, error) {
46 | var resp RespRemindGroupmsgSendExternalcontact
47 | err := c.executeWXApiPost("/cgi-bin/externalcontact/remind_groupmsg_send", req, &resp, true)
48 | if err != nil {
49 | return RespRemindGroupmsgSendExternalcontact{}, err
50 | }
51 | if bizErr := resp.TryIntoErr(); bizErr != nil {
52 | return RespRemindGroupmsgSendExternalcontact{}, bizErr
53 | }
54 | return resp, nil
55 | }
56 |
--------------------------------------------------------------------------------
/apis/获取企业的jsapi_ticket.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import "net/url"
4 |
5 | // 文档:https://developer.work.weixin.qq.com/document/path/90539#获取企业的jsapi_ticket
6 |
7 | type JsAPITicketReq struct{}
8 |
9 | var _ urlValuer = JsAPITicketReq{}
10 |
11 | func (x JsAPITicketReq) intoURLValues() url.Values {
12 | return url.Values{}
13 | }
14 |
15 | type JsAPITicketResp struct {
16 | CommonResp
17 |
18 | Ticket string `json:"ticket"`
19 | ExpiresInSecs int64 `json:"expires_in"`
20 | }
21 |
22 | // ExecGetJSAPITicket 获取企业的jsapi_ticket
23 | func (c *ApiClient) ExecGetJSAPITicket(req JsAPITicketReq) (JsAPITicketResp, error) {
24 | var resp JsAPITicketResp
25 | err := c.executeWXApiGet("/cgi-bin/get_jsapi_ticket", req, &resp, true)
26 | if err != nil {
27 | return JsAPITicketResp{}, err
28 | }
29 | if bizErr := resp.TryIntoErr(); bizErr != nil {
30 | return JsAPITicketResp{}, bizErr
31 | }
32 | return resp, nil
33 | }
34 |
--------------------------------------------------------------------------------
/apis/获取应用的jsapi_ticket.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import "net/url"
4 |
5 | // 文档:https://developer.work.weixin.qq.com/document/path/90539#获取应用的jsapi_ticket
6 |
7 | type JsAPITicketAgentConfigReq struct{}
8 |
9 | var _ urlValuer = JsAPITicketAgentConfigReq{}
10 |
11 | func (x JsAPITicketAgentConfigReq) intoURLValues() url.Values {
12 | return url.Values{
13 | "type": {"agent_config"},
14 | }
15 | }
16 |
17 | // ExecGetJSAPITicketAgentConfig 获取应用的jsapi_ticket
18 | func (c *ApiClient) ExecGetJSAPITicketAgentConfig(req JsAPITicketAgentConfigReq) (JsAPITicketResp, error) {
19 | var resp JsAPITicketResp
20 | err := c.executeWXApiGet("/cgi-bin/ticket/get", req, &resp, true)
21 | if err != nil {
22 | return JsAPITicketResp{}, err
23 | }
24 | if bizErr := resp.TryIntoErr(); bizErr != nil {
25 | return JsAPITicketResp{}, bizErr
26 | }
27 | return resp, nil
28 | }
29 |
--------------------------------------------------------------------------------
/apis/获取服务商凭证.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 自动生成的文件, 生成方式: make api doc=微信文档地址url
8 | // 可自行修改生成的文件,以满足开发需求
9 |
10 | // ReqGetProviderTokenService 获取服务商凭证请求
11 | // 文档:https://developer.work.weixin.qq.com/document/path/91200#获取服务商凭证
12 | type ReqGetProviderTokenService struct {
13 | // Corpid 服务商的corpid,必填
14 | Corpid string `json:"corpid"`
15 | // ProviderSecret 服务商的secret,在服务商管理后台可见,必填
16 | ProviderSecret string `json:"provider_secret"`
17 | }
18 |
19 | var _ bodyer = ReqGetProviderTokenService{}
20 |
21 | func (x ReqGetProviderTokenService) intoBody() ([]byte, error) {
22 | result, err := json.Marshal(x)
23 | if err != nil {
24 | return nil, err
25 | }
26 | return result, nil
27 | }
28 |
29 | // RespGetProviderTokenService 获取服务商凭证响应
30 | // 文档:https://developer.work.weixin.qq.com/document/path/91200#获取服务商凭证
31 | type RespGetProviderTokenService struct {
32 | CommonResp
33 |
34 | ExpiresIn int `json:"expires_in"`
35 | ProviderAccessToken string `json:"provider_access_token"`
36 | }
37 |
38 | var _ bodyer = RespGetProviderTokenService{}
39 |
40 | func (x RespGetProviderTokenService) intoBody() ([]byte, error) {
41 | result, err := json.Marshal(x)
42 | if err != nil {
43 | return nil, err
44 | }
45 | return result, nil
46 | }
47 |
48 | // ExecGetProviderTokenService 获取服务商凭证
49 | // 文档:https://developer.work.weixin.qq.com/document/path/91200#获取服务商凭证
50 | func (c *ApiClient) ExecGetProviderTokenService(req ReqGetProviderTokenService) (RespGetProviderTokenService, error) {
51 | var resp RespGetProviderTokenService
52 | err := c.executeWXApiPost("/cgi-bin/service/get_provider_token", req, &resp, false)
53 | if err != nil {
54 | return RespGetProviderTokenService{}, err
55 | }
56 | if bizErr := resp.TryIntoErr(); bizErr != nil {
57 | return RespGetProviderTokenService{}, bizErr
58 | }
59 | return resp, nil
60 | }
61 |
--------------------------------------------------------------------------------
/apis/获取视频号绑定状态.go:
--------------------------------------------------------------------------------
1 | package apis
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // 文档:https://developer.work.weixin.qq.com/document/path/95153
8 |
9 | type ReqGetCorpQualification struct{}
10 |
11 | var _ bodyer = ReqGetCorpQualification{}
12 |
13 | func (x ReqGetCorpQualification) intoBody() ([]byte, error) {
14 | result, err := json.Marshal(x)
15 | if err != nil {
16 | return nil, err
17 | }
18 | return result, nil
19 | }
20 |
21 | type RespGetCorpQualification struct {
22 | CommonResp
23 | WechatChannelsBinding bool `json:"wechat_channels_binding"` // 当企业具有绑定成功的视频号时,返回true,否则返回false。
24 | }
25 |
26 | var _ bodyer = RespGetCorpQualification{}
27 |
28 | func (x RespGetCorpQualification) intoBody() ([]byte, error) {
29 | result, err := json.Marshal(x)
30 | if err != nil {
31 | return nil, err
32 | }
33 | return result, nil
34 | }
35 |
36 | func (c *ApiClient) GetCorpQualification(req ReqGetCorpQualification) (RespGetCorpQualification, error) {
37 | var resp RespGetCorpQualification
38 | err := c.executeWXApiPost("/cgi-bin/kf/get_corp_qualification", req, &resp, true)
39 | if err != nil {
40 | return RespGetCorpQualification{}, err
41 | }
42 | if bizErr := resp.TryIntoErr(); bizErr != nil {
43 | return RespGetCorpQualification{}, bizErr
44 | }
45 | return resp, nil
46 | }
47 |
--------------------------------------------------------------------------------
/callback_generate/callback.tmpl:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: {{ .DocUrl }}
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback({{ .StructName }}{})
11 | }
12 |
13 | {{ .StructStr }}
14 |
15 | func ({{ .StructName }}) GetMessageType() string {
16 | return "{{ .MsgType }}"
17 | }
18 |
19 | func ({{ .StructName }}) GetEventType() string {
20 | return "{{ .EventType }}"
21 | }
22 |
23 | func ({{ .StructName }}) GetChangeType() string {
24 | return "{{ .ChangeType }}"
25 | }
26 |
27 | func (m {{ .StructName }}) GetTypeKey() string {
28 | return m.GetMessageType() + ":" + m.GetEventType() + ":" +m.GetChangeType()
29 | }
30 |
31 | func ({{ .StructName }}) ParseFromXml(data []byte) (CallBackExtraInfoInterface,error) {
32 | var temp {{ .StructName }}
33 | err := xml.Unmarshal(data, &temp)
34 | return temp, err
35 | }
36 |
--------------------------------------------------------------------------------
/callbacks/callback_interface.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | var callBackParseExtraInfoMap = make(map[string]CallBackExtraInfoInterface)
4 |
5 | type CallBackExtraInfoInterface interface {
6 | GetMessageType() string
7 | GetEventType() string
8 | GetChangeType() string
9 | GetTypeKey() string
10 | ParseFromXml(data []byte) (CallBackExtraInfoInterface, error)
11 | }
12 |
13 | func supportCallback(item CallBackExtraInfoInterface) {
14 | callBackParseExtraInfoMap[item.GetTypeKey()] = item
15 | }
16 |
--------------------------------------------------------------------------------
/callbacks/event上下游共享应用事件回调.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90376#上下游共享应用事件回调
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventShareChainChange{})
11 | }
12 |
13 | type EventShareChainChange struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | AgentID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"AgentID"`
34 | }
35 |
36 | func (EventShareChainChange) GetMessageType() string {
37 | return "event"
38 | }
39 |
40 | func (EventShareChainChange) GetEventType() string {
41 | return "share_chain_change"
42 | }
43 |
44 | func (EventShareChainChange) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m EventShareChainChange) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (EventShareChainChange) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp EventShareChainChange
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/event上报地理位置.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90376#上报地理位置
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventLOCATION{})
11 | }
12 |
13 | type EventLOCATION struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | Latitude struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Latitude"`
34 | Longitude struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"Longitude"`
37 | Precision struct {
38 | Text string `xml:",chardata"`
39 | } `xml:"Precision"`
40 | AgentID struct {
41 | Text string `xml:",chardata"`
42 | } `xml:"AgentID"`
43 | AppType struct {
44 | Text string `xml:",chardata"`
45 | } `xml:"AppType"`
46 | }
47 |
48 | func (EventLOCATION) GetMessageType() string {
49 | return "event"
50 | }
51 |
52 | func (EventLOCATION) GetEventType() string {
53 | return "LOCATION"
54 | }
55 |
56 | func (EventLOCATION) GetChangeType() string {
57 | return ""
58 | }
59 |
60 | func (m EventLOCATION) GetTypeKey() string {
61 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
62 | }
63 |
64 | func (EventLOCATION) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
65 | var temp EventLOCATION
66 | err := xml.Unmarshal(data, &temp)
67 | return temp, err
68 | }
69 |
--------------------------------------------------------------------------------
/callbacks/event任务卡片事件推送.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90376#任务卡片事件推送
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventTaskcardClick{})
11 | }
12 |
13 | type EventTaskcardClick struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | EventKey struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"EventKey"`
34 | TaskId struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"TaskId"`
37 | AgentId struct {
38 | Text string `xml:",chardata"`
39 | } `xml:"AgentId"`
40 | }
41 |
42 | func (EventTaskcardClick) GetMessageType() string {
43 | return "event"
44 | }
45 |
46 | func (EventTaskcardClick) GetEventType() string {
47 | return "taskcard_click"
48 | }
49 |
50 | func (EventTaskcardClick) GetChangeType() string {
51 | return ""
52 | }
53 |
54 | func (m EventTaskcardClick) GetTypeKey() string {
55 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
56 | }
57 |
58 | func (EventTaskcardClick) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
59 | var temp EventTaskcardClick
60 | err := xml.Unmarshal(data, &temp)
61 | return temp, err
62 | }
63 |
--------------------------------------------------------------------------------
/callbacks/event企业互联共享应用事件回调.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90376#企业互联共享应用事件回调
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventShareAgentChange{})
11 | }
12 |
13 | type EventShareAgentChange struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | AgentID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"AgentID"`
34 | }
35 |
36 | func (EventShareAgentChange) GetMessageType() string {
37 | return "event"
38 | }
39 |
40 | func (EventShareAgentChange) GetEventType() string {
41 | return "share_agent_change"
42 | }
43 |
44 | func (EventShareAgentChange) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m EventShareAgentChange) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (EventShareAgentChange) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp EventShareAgentChange
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/event企业客户标签创建事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/92130#企业客户标签创建事件
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(EventChangeExternalTagCreate{})
12 | }
13 |
14 | type EventChangeExternalTagCreate struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | ToUserName struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"ToUserName"`
20 | FromUserName struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"FromUserName"`
23 | CreateTime struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"CreateTime"`
26 | MsgType struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"MsgType"`
29 | Event struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"Event"`
32 | ID struct {
33 | Text string `xml:",chardata"`
34 | } `xml:"Id"`
35 | TagType struct {
36 | Text string `xml:",chardata"`
37 | } `xml:"TagType"`
38 | ChangeType struct {
39 | Text string `xml:",chardata"`
40 | } `xml:"ChangeType"`
41 | }
42 |
43 | func (EventChangeExternalTagCreate) GetMessageType() string {
44 | return "event"
45 | }
46 |
47 | func (EventChangeExternalTagCreate) GetEventType() string {
48 | return "change_external_tag"
49 | }
50 |
51 | func (EventChangeExternalTagCreate) GetChangeType() string {
52 | return "create"
53 | }
54 |
55 | func (m EventChangeExternalTagCreate) GetTypeKey() string {
56 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
57 | }
58 |
59 | func (EventChangeExternalTagCreate) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
60 | var temp EventChangeExternalTagCreate
61 | err := xml.Unmarshal(data, &temp)
62 | return temp, err
63 | }
64 |
--------------------------------------------------------------------------------
/callbacks/event企业客户标签删除事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/92130#企业客户标签删除事件
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(EventChangeExternalTagDelete{})
12 | }
13 |
14 | type EventChangeExternalTagDelete struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | ToUserName struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"ToUserName"`
20 | FromUserName struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"FromUserName"`
23 | CreateTime struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"CreateTime"`
26 | MsgType struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"MsgType"`
29 | Event struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"Event"`
32 | ID struct {
33 | Text string `xml:",chardata"`
34 | } `xml:"Id"`
35 | TagType struct {
36 | Text string `xml:",chardata"`
37 | } `xml:"TagType"`
38 | ChangeType struct {
39 | Text string `xml:",chardata"`
40 | } `xml:"ChangeType"`
41 | }
42 |
43 | func (EventChangeExternalTagDelete) GetMessageType() string {
44 | return "event"
45 | }
46 |
47 | func (EventChangeExternalTagDelete) GetEventType() string {
48 | return "change_external_tag"
49 | }
50 |
51 | func (EventChangeExternalTagDelete) GetChangeType() string {
52 | return "delete"
53 | }
54 |
55 | func (m EventChangeExternalTagDelete) GetTypeKey() string {
56 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
57 | }
58 |
59 | func (EventChangeExternalTagDelete) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
60 | var temp EventChangeExternalTagDelete
61 | err := xml.Unmarshal(data, &temp)
62 | return temp, err
63 | }
64 |
--------------------------------------------------------------------------------
/callbacks/event企业客户标签变更事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/92130#企业客户标签变更事件
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(EventChangeExternalTagUpdate{})
12 | }
13 |
14 | type EventChangeExternalTagUpdate struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | ToUserName struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"ToUserName"`
20 | FromUserName struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"FromUserName"`
23 | CreateTime struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"CreateTime"`
26 | MsgType struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"MsgType"`
29 | Event struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"Event"`
32 | ID struct {
33 | Text string `xml:",chardata"`
34 | } `xml:"Id"`
35 | TagType struct {
36 | Text string `xml:",chardata"`
37 | } `xml:"TagType"`
38 | ChangeType struct {
39 | Text string `xml:",chardata"`
40 | } `xml:"ChangeType"`
41 | }
42 |
43 | func (EventChangeExternalTagUpdate) GetMessageType() string {
44 | return "event"
45 | }
46 |
47 | func (EventChangeExternalTagUpdate) GetEventType() string {
48 | return "change_external_tag"
49 | }
50 |
51 | func (EventChangeExternalTagUpdate) GetChangeType() string {
52 | return "update"
53 | }
54 |
55 | func (m EventChangeExternalTagUpdate) GetTypeKey() string {
56 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
57 | }
58 |
59 | func (EventChangeExternalTagUpdate) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
60 | var temp EventChangeExternalTagUpdate
61 | err := xml.Unmarshal(data, &temp)
62 | return temp, err
63 | }
64 |
--------------------------------------------------------------------------------
/callbacks/event企业客户标签重排事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/92130#企业客户标签重排事件
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(EventChangeExternalTagShuffle{})
12 | }
13 |
14 | type EventChangeExternalTagShuffle struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | ToUserName struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"ToUserName"`
20 | FromUserName struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"FromUserName"`
23 | CreateTime struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"CreateTime"`
26 | MsgType struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"MsgType"`
29 | Event struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"Event"`
32 | ID struct {
33 | Text string `xml:",chardata"`
34 | } `xml:"Id"`
35 | StrategyId struct {
36 | Text string `xml:",chardata"`
37 | } `xml:"StrategyId"`
38 | ChangeType struct {
39 | Text string `xml:",chardata"`
40 | } `xml:"ChangeType"`
41 | }
42 |
43 | func (EventChangeExternalTagShuffle) GetMessageType() string {
44 | return "event"
45 | }
46 |
47 | func (EventChangeExternalTagShuffle) GetEventType() string {
48 | return "change_external_tag"
49 | }
50 |
51 | func (EventChangeExternalTagShuffle) GetChangeType() string {
52 | return "shuffle"
53 | }
54 |
55 | func (m EventChangeExternalTagShuffle) GetTypeKey() string {
56 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
57 | }
58 |
59 | func (EventChangeExternalTagShuffle) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
60 | var temp EventChangeExternalTagShuffle
61 | err := xml.Unmarshal(data, &temp)
62 | return temp, err
63 | }
64 |
--------------------------------------------------------------------------------
/callbacks/event会话存档-产生会话回调事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/95039#产生会话回调事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventMsgauditNotify{})
11 | }
12 |
13 | type EventMsgauditNotify struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | AgentID struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"AgentID"`
31 | Event struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Event"`
34 | }
35 |
36 | func (EventMsgauditNotify) GetMessageType() string {
37 | return "event"
38 | }
39 |
40 | func (EventMsgauditNotify) GetEventType() string {
41 | return "msgaudit_notify"
42 | }
43 |
44 | func (EventMsgauditNotify) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m EventMsgauditNotify) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (EventMsgauditNotify) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp EventMsgauditNotify
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/event使用量已经耗尽事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/97299#使用量已经耗尽事件
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback(EventCustomerAcquisitionBalanceExhausted{})
11 | }
12 |
13 | type EventCustomerAcquisitionBalanceExhausted struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | ChangeType struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"ChangeType"`
34 | }
35 |
36 | func (EventCustomerAcquisitionBalanceExhausted) GetMessageType() string {
37 | return "event"
38 | }
39 |
40 | func (EventCustomerAcquisitionBalanceExhausted) GetEventType() string {
41 | return "customer_acquisition"
42 | }
43 |
44 | func (EventCustomerAcquisitionBalanceExhausted) GetChangeType() string {
45 | return "balance_exhausted"
46 | }
47 |
48 | func (m EventCustomerAcquisitionBalanceExhausted) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (EventCustomerAcquisitionBalanceExhausted) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp EventCustomerAcquisitionBalanceExhausted
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/event修改设置工作台自定义开关事件推送.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/94620#修改设置工作台自定义开关事件推送
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventSwitchWorkbenchMode{})
11 | }
12 |
13 | type EventSwitchWorkbenchMode struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | Mode struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Mode"`
34 | AgentID struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"AgentID"`
37 | }
38 |
39 | func (EventSwitchWorkbenchMode) GetMessageType() string {
40 | return "event"
41 | }
42 |
43 | func (EventSwitchWorkbenchMode) GetEventType() string {
44 | return "switch_workbench_mode"
45 | }
46 |
47 | func (EventSwitchWorkbenchMode) GetChangeType() string {
48 | return ""
49 | }
50 |
51 | func (m EventSwitchWorkbenchMode) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (EventSwitchWorkbenchMode) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp EventSwitchWorkbenchMode
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/event删除成员事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90970#删除成员事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventChangeContactDeleteUser{})
11 | }
12 |
13 | type EventChangeContactDeleteUser struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | ChangeType struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"ChangeType"`
34 | UserID struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"UserID"`
37 | }
38 |
39 | func (EventChangeContactDeleteUser) GetMessageType() string {
40 | return "event"
41 | }
42 |
43 | func (EventChangeContactDeleteUser) GetEventType() string {
44 | return "change_contact"
45 | }
46 |
47 | func (EventChangeContactDeleteUser) GetChangeType() string {
48 | return "delete_user"
49 | }
50 |
51 | func (m EventChangeContactDeleteUser) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (EventChangeContactDeleteUser) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp EventChangeContactDeleteUser
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/event删除获客链接事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/97299#删除获客链接事件
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback(EventCustomerAcquisitionDeleteLink{})
11 | }
12 |
13 | type EventCustomerAcquisitionDeleteLink struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | ChangeType struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"ChangeType"`
34 | LinkId struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"LinkId"`
37 | }
38 |
39 | func (EventCustomerAcquisitionDeleteLink) GetMessageType() string {
40 | return "event"
41 | }
42 |
43 | func (EventCustomerAcquisitionDeleteLink) GetEventType() string {
44 | return "customer_acquisition"
45 | }
46 |
47 | func (EventCustomerAcquisitionDeleteLink) GetChangeType() string {
48 | return "delete_link"
49 | }
50 |
51 | func (m EventCustomerAcquisitionDeleteLink) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (EventCustomerAcquisitionDeleteLink) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp EventCustomerAcquisitionDeleteLink
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/event删除部门事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90376#删除部门事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventChangeContactDeleteParty{})
11 | }
12 |
13 | type EventChangeContactDeleteParty struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | ChangeType struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"ChangeType"`
34 | ID struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"Id"`
37 | }
38 |
39 | func (EventChangeContactDeleteParty) GetMessageType() string {
40 | return "event"
41 | }
42 |
43 | func (EventChangeContactDeleteParty) GetEventType() string {
44 | return "change_contact"
45 | }
46 |
47 | func (EventChangeContactDeleteParty) GetChangeType() string {
48 | return "delete_party"
49 | }
50 |
51 | func (m EventChangeContactDeleteParty) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (EventChangeContactDeleteParty) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp EventChangeContactDeleteParty
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/event回调事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/94699#回调事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventKfMsgOrEvent{})
11 | }
12 |
13 | type EventKfMsgOrEvent struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | CreateTime struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"CreateTime"`
22 | MsgType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"MsgType"`
25 | Event struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"Event"`
28 | Token struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Token"`
31 | OpenKfId struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"OpenKfId"`
34 | }
35 |
36 | func (EventKfMsgOrEvent) GetMessageType() string {
37 | return "event"
38 | }
39 |
40 | func (EventKfMsgOrEvent) GetEventType() string {
41 | return "kf_msg_or_event"
42 | }
43 |
44 | func (EventKfMsgOrEvent) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m EventKfMsgOrEvent) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (EventKfMsgOrEvent) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp EventKfMsgOrEvent
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/event回调异步任务结果.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/96219#回调异步任务结果
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventUploadMediaJobFinish{})
11 | }
12 |
13 | type EventUploadMediaJobFinish struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | JobId struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"JobId"`
34 | }
35 |
36 | func (EventUploadMediaJobFinish) GetMessageType() string {
37 | return "event"
38 | }
39 |
40 | func (EventUploadMediaJobFinish) GetEventType() string {
41 | return "upload_media_job_finish"
42 | }
43 |
44 | func (EventUploadMediaJobFinish) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m EventUploadMediaJobFinish) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (EventUploadMediaJobFinish) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp EventUploadMediaJobFinish
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/event客户群创建事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/92130#客户群创建事件
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(EventChangeExternalChatCreate{})
12 | }
13 |
14 | type EventChangeExternalChatCreate struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | ToUserName struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"ToUserName"`
20 | FromUserName struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"FromUserName"`
23 | CreateTime struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"CreateTime"`
26 | MsgType struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"MsgType"`
29 | Event struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"Event"`
32 | ChatId struct {
33 | Text string `xml:",chardata"`
34 | } `xml:"ChatId"`
35 | ChangeType struct {
36 | Text string `xml:",chardata"`
37 | } `xml:"ChangeType"`
38 | }
39 |
40 | func (EventChangeExternalChatCreate) GetMessageType() string {
41 | return "event"
42 | }
43 |
44 | func (EventChangeExternalChatCreate) GetEventType() string {
45 | return "change_external_chat"
46 | }
47 |
48 | func (EventChangeExternalChatCreate) GetChangeType() string {
49 | return "create"
50 | }
51 |
52 | func (m EventChangeExternalChatCreate) GetTypeKey() string {
53 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
54 | }
55 |
56 | func (EventChangeExternalChatCreate) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
57 | var temp EventChangeExternalChatCreate
58 | err := xml.Unmarshal(data, &temp)
59 | return temp, err
60 | }
61 |
--------------------------------------------------------------------------------
/callbacks/event客户群解散事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/92130#客户群解散事件
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(EventChangeExternalChatDismiss{})
12 | }
13 |
14 | type EventChangeExternalChatDismiss struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | ToUserName struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"ToUserName"`
20 | FromUserName struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"FromUserName"`
23 | CreateTime struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"CreateTime"`
26 | MsgType struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"MsgType"`
29 | Event struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"Event"`
32 | ChatId struct {
33 | Text string `xml:",chardata"`
34 | } `xml:"ChatId"`
35 | ChangeType struct {
36 | Text string `xml:",chardata"`
37 | } `xml:"ChangeType"`
38 | }
39 |
40 | func (EventChangeExternalChatDismiss) GetMessageType() string {
41 | return "event"
42 | }
43 |
44 | func (EventChangeExternalChatDismiss) GetEventType() string {
45 | return "change_external_chat"
46 | }
47 |
48 | func (EventChangeExternalChatDismiss) GetChangeType() string {
49 | return "dismiss"
50 | }
51 |
52 | func (m EventChangeExternalChatDismiss) GetTypeKey() string {
53 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
54 | }
55 |
56 | func (EventChangeExternalChatDismiss) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
57 | var temp EventChangeExternalChatDismiss
58 | err := xml.Unmarshal(data, &temp)
59 | return temp, err
60 | }
61 |
--------------------------------------------------------------------------------
/callbacks/event客服账号授权变更事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/97712#客服账号授权变更事件
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback(EventKfAccountAuthChange{})
11 | }
12 |
13 | type EventKfAccountAuthChange struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | AuthAddOpenKfId struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"AuthAddOpenKfId"`
34 | AuthDelOpenKfId struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"AuthDelOpenKfId"`
37 | }
38 |
39 | func (EventKfAccountAuthChange) GetMessageType() string {
40 | return "event"
41 | }
42 |
43 | func (EventKfAccountAuthChange) GetEventType() string {
44 | return "kf_account_auth_change"
45 | }
46 |
47 | func (EventKfAccountAuthChange) GetChangeType() string {
48 | return ""
49 | }
50 |
51 | func (m EventKfAccountAuthChange) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (EventKfAccountAuthChange) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp EventKfAccountAuthChange
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/event应用管理员变更通知.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/95038#应用管理员变更通知
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventChangeAppAdmin{})
11 | }
12 |
13 | type EventChangeAppAdmin struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | AgentID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"AgentID"`
34 | }
35 |
36 | func (EventChangeAppAdmin) GetMessageType() string {
37 | return "event"
38 | }
39 |
40 | func (EventChangeAppAdmin) GetEventType() string {
41 | return "change_app_admin"
42 | }
43 |
44 | func (EventChangeAppAdmin) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m EventChangeAppAdmin) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (EventChangeAppAdmin) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp EventChangeAppAdmin
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/event应用邮箱接收邮件事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/97495#应用邮箱接收邮件事件
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback(EventAppEmailChangeReceiveEmail{})
11 | }
12 |
13 | type EventAppEmailChangeReceiveEmail struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | ChangeType struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"ChangeType"`
34 | Amount struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"Amount"`
37 | }
38 |
39 | func (EventAppEmailChangeReceiveEmail) GetMessageType() string {
40 | return "event"
41 | }
42 |
43 | func (EventAppEmailChangeReceiveEmail) GetEventType() string {
44 | return "app_email_change"
45 | }
46 |
47 | func (EventAppEmailChangeReceiveEmail) GetChangeType() string {
48 | return "receive_email"
49 | }
50 |
51 | func (m EventAppEmailChangeReceiveEmail) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (EventAppEmailChangeReceiveEmail) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp EventAppEmailChangeReceiveEmail
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/event微盘容量不足事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/95846#微盘容量不足事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventWedriveInsufficientCapacity{})
11 | }
12 |
13 | type EventWedriveInsufficientCapacity struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | }
32 |
33 | func (EventWedriveInsufficientCapacity) GetMessageType() string {
34 | return "event"
35 | }
36 |
37 | func (EventWedriveInsufficientCapacity) GetEventType() string {
38 | return "wedrive_insufficient_capacity"
39 | }
40 |
41 | func (EventWedriveInsufficientCapacity) GetChangeType() string {
42 | return ""
43 | }
44 |
45 | func (m EventWedriveInsufficientCapacity) GetTypeKey() string {
46 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
47 | }
48 |
49 | func (EventWedriveInsufficientCapacity) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
50 | var temp EventWedriveInsufficientCapacity
51 | err := xml.Unmarshal(data, &temp)
52 | return temp, err
53 | }
54 |
--------------------------------------------------------------------------------
/callbacks/event成员关注事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 文档: https://developer.work.weixin.qq.com/document/path/90376#成员关注及取消关注事件
6 |
7 | func init() {
8 | // 添加可解析的回调事件
9 | supportCallback(EventSubscribe{})
10 | }
11 |
12 | type EventSubscribe struct {
13 | XMLName xml.Name `xml:"xml"`
14 | Text string `xml:",chardata"`
15 | ToUserName struct {
16 | Text string `xml:",chardata"`
17 | } `xml:"ToUserName"`
18 | FromUserName struct {
19 | Text string `xml:",chardata"`
20 | } `xml:"FromUserName"`
21 | CreateTime struct {
22 | Text string `xml:",chardata"`
23 | } `xml:"CreateTime"`
24 | MsgType struct {
25 | Text string `xml:",chardata"`
26 | } `xml:"MsgType"`
27 | Event struct {
28 | Text string `xml:",chardata"`
29 | } `xml:"Event"`
30 | AgentID struct {
31 | Text string `xml:",chardata"`
32 | } `xml:"AgentID"`
33 | }
34 |
35 | func (EventSubscribe) GetMessageType() string {
36 | return "event"
37 | }
38 |
39 | func (EventSubscribe) GetEventType() string {
40 | return "subscribe"
41 | }
42 |
43 | func (EventSubscribe) GetChangeType() string {
44 | return ""
45 | }
46 |
47 | func (m EventSubscribe) GetTypeKey() string {
48 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
49 | }
50 |
51 | func (EventSubscribe) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
52 | var temp EventSubscribe
53 | err := xml.Unmarshal(data, &temp)
54 | return temp, err
55 | }
56 |
--------------------------------------------------------------------------------
/callbacks/event成员取消关注事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 文档: https://developer.work.weixin.qq.com/document/path/90376#成员关注及取消关注事件
6 |
7 | func init() {
8 | // 添加可解析的回调事件
9 | supportCallback(EventUnsubscribe{})
10 | }
11 |
12 | type EventUnsubscribe struct {
13 | XMLName xml.Name `xml:"xml"`
14 | Text string `xml:",chardata"`
15 | ToUserName struct {
16 | Text string `xml:",chardata"`
17 | } `xml:"ToUserName"`
18 | FromUserName struct {
19 | Text string `xml:",chardata"`
20 | } `xml:"FromUserName"`
21 | CreateTime struct {
22 | Text string `xml:",chardata"`
23 | } `xml:"CreateTime"`
24 | MsgType struct {
25 | Text string `xml:",chardata"`
26 | } `xml:"MsgType"`
27 | Event struct {
28 | Text string `xml:",chardata"`
29 | } `xml:"Event"`
30 | AgentID struct {
31 | Text string `xml:",chardata"`
32 | } `xml:"AgentID"`
33 | }
34 |
35 | func (EventUnsubscribe) GetMessageType() string {
36 | return "event"
37 | }
38 |
39 | func (EventUnsubscribe) GetEventType() string {
40 | return "unsubscribe"
41 | }
42 |
43 | func (EventUnsubscribe) GetChangeType() string {
44 | return ""
45 | }
46 |
47 | func (m EventUnsubscribe) GetTypeKey() string {
48 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
49 | }
50 |
51 | func (EventUnsubscribe) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
52 | var temp EventUnsubscribe
53 | err := xml.Unmarshal(data, &temp)
54 | return temp, err
55 | }
56 |
--------------------------------------------------------------------------------
/callbacks/event接口调用许可-接口许可失效通知.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/95716#接口许可失效通知
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventUnlicensedNotify{})
11 | }
12 |
13 | type EventUnlicensedNotify struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | AgentID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"AgentID"`
34 | }
35 |
36 | func (EventUnlicensedNotify) GetMessageType() string {
37 | return "event"
38 | }
39 |
40 | func (EventUnlicensedNotify) GetEventType() string {
41 | return "unlicensed_notify"
42 | }
43 |
44 | func (EventUnlicensedNotify) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m EventUnlicensedNotify) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (EventUnlicensedNotify) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp EventUnlicensedNotify
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/event日程-修改日历事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/93704#修改日历事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventModifyCalendar{})
11 | }
12 |
13 | type EventModifyCalendar struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | CalId struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"CalId"`
34 | }
35 |
36 | func (EventModifyCalendar) GetMessageType() string {
37 | return "event"
38 | }
39 |
40 | func (EventModifyCalendar) GetEventType() string {
41 | return "modify_calendar"
42 | }
43 |
44 | func (EventModifyCalendar) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m EventModifyCalendar) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (EventModifyCalendar) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp EventModifyCalendar
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/event日程-修改日程事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/93704#修改日程事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventModifySchedule{})
11 | }
12 |
13 | type EventModifySchedule struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | CalId struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"CalId"`
34 | ScheduleId struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"ScheduleId"`
37 | }
38 |
39 | func (EventModifySchedule) GetMessageType() string {
40 | return "event"
41 | }
42 |
43 | func (EventModifySchedule) GetEventType() string {
44 | return "modify_schedule"
45 | }
46 |
47 | func (EventModifySchedule) GetChangeType() string {
48 | return ""
49 | }
50 |
51 | func (m EventModifySchedule) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (EventModifySchedule) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp EventModifySchedule
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/event日程-删除日历事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/93704#删除日历事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventDeleteCalendar{})
11 | }
12 |
13 | type EventDeleteCalendar struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | CalId struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"CalId"`
34 | }
35 |
36 | func (EventDeleteCalendar) GetMessageType() string {
37 | return "event"
38 | }
39 |
40 | func (EventDeleteCalendar) GetEventType() string {
41 | return "delete_calendar"
42 | }
43 |
44 | func (EventDeleteCalendar) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m EventDeleteCalendar) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (EventDeleteCalendar) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp EventDeleteCalendar
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/event日程-删除日程事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/93704#删除日程事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventDeleteSchedule{})
11 | }
12 |
13 | type EventDeleteSchedule struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | CalId struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"CalId"`
34 | ScheduleId struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"ScheduleId"`
37 | }
38 |
39 | func (EventDeleteSchedule) GetMessageType() string {
40 | return "event"
41 | }
42 |
43 | func (EventDeleteSchedule) GetEventType() string {
44 | return "delete_schedule"
45 | }
46 |
47 | func (EventDeleteSchedule) GetChangeType() string {
48 | return ""
49 | }
50 |
51 | func (m EventDeleteSchedule) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (EventDeleteSchedule) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp EventDeleteSchedule
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/event日程-添加日程事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/93704#添加日程事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventAddSchedule{})
11 | }
12 |
13 | type EventAddSchedule struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | CalId struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"CalId"`
34 | ScheduleId struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"ScheduleId"`
37 | }
38 |
39 | func (EventAddSchedule) GetMessageType() string {
40 | return "event"
41 | }
42 |
43 | func (EventAddSchedule) GetEventType() string {
44 | return "add_schedule"
45 | }
46 |
47 | func (EventAddSchedule) GetChangeType() string {
48 | return ""
49 | }
50 |
51 | func (m EventAddSchedule) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (EventAddSchedule) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp EventAddSchedule
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/event更新部门事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90376#更新部门事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventChangeContactUpdateParty{})
11 | }
12 |
13 | type EventChangeContactUpdateParty struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | ChangeType struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"ChangeType"`
34 | ID struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"Id"`
37 | Name struct {
38 | Text string `xml:",chardata"`
39 | } `xml:"Name"`
40 | ParentId struct {
41 | Text string `xml:",chardata"`
42 | } `xml:"ParentId"`
43 | }
44 |
45 | func (EventChangeContactUpdateParty) GetMessageType() string {
46 | return "event"
47 | }
48 |
49 | func (EventChangeContactUpdateParty) GetEventType() string {
50 | return "change_contact"
51 | }
52 |
53 | func (EventChangeContactUpdateParty) GetChangeType() string {
54 | return "update_party"
55 | }
56 |
57 | func (m EventChangeContactUpdateParty) GetTypeKey() string {
58 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
59 | }
60 |
61 | func (EventChangeContactUpdateParty) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
62 | var temp EventChangeContactUpdateParty
63 | err := xml.Unmarshal(data, &temp)
64 | return temp, err
65 | }
66 |
--------------------------------------------------------------------------------
/callbacks/event点击菜单拉取消息的事件推送.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90376#点击菜单拉取消息的事件推送
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventClick{})
11 | }
12 |
13 | type EventClick struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | EventKey struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"EventKey"`
34 | AgentID struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"AgentID"`
37 | }
38 |
39 | func (EventClick) GetMessageType() string {
40 | return "event"
41 | }
42 |
43 | func (EventClick) GetEventType() string {
44 | return "click"
45 | }
46 |
47 | func (EventClick) GetChangeType() string {
48 | return ""
49 | }
50 |
51 | func (m EventClick) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (EventClick) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp EventClick
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/event点击菜单跳转链接的事件推送.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90376#点击菜单跳转链接的事件推送
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventView{})
11 | }
12 |
13 | type EventView struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | EventKey struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"EventKey"`
34 | AgentID struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"AgentID"`
37 | }
38 |
39 | func (EventView) GetMessageType() string {
40 | return "event"
41 | }
42 |
43 | func (EventView) GetEventType() string {
44 | return "view"
45 | }
46 |
47 | func (EventView) GetChangeType() string {
48 | return ""
49 | }
50 |
51 | func (m EventView) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (EventView) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp EventView
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/event直播回调事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/94308#直播回调事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventLivingStatusChange{})
11 | }
12 |
13 | type EventLivingStatusChange struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | LivingId struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"LivingId"`
34 | Status struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"Status"`
37 | AgentID struct {
38 | Text string `xml:",chardata"`
39 | } `xml:"AgentID"`
40 | }
41 |
42 | func (EventLivingStatusChange) GetMessageType() string {
43 | return "event"
44 | }
45 |
46 | func (EventLivingStatusChange) GetEventType() string {
47 | return "living_status_change"
48 | }
49 |
50 | func (EventLivingStatusChange) GetChangeType() string {
51 | return ""
52 | }
53 |
54 | func (m EventLivingStatusChange) GetTypeKey() string {
55 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
56 | }
57 |
58 | func (EventLivingStatusChange) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
59 | var temp EventLivingStatusChange
60 | err := xml.Unmarshal(data, &temp)
61 | return temp, err
62 | }
63 |
--------------------------------------------------------------------------------
/callbacks/event获客链接不可用事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/97299#获客链接不可用事件
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback(EventCustomerAcquisitionLinkUnavailable{})
11 | }
12 |
13 | type EventCustomerAcquisitionLinkUnavailable struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | ChangeType struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"ChangeType"`
34 | LinkId struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"LinkId"`
37 | }
38 |
39 | func (EventCustomerAcquisitionLinkUnavailable) GetMessageType() string {
40 | return "event"
41 | }
42 |
43 | func (EventCustomerAcquisitionLinkUnavailable) GetEventType() string {
44 | return "customer_acquisition"
45 | }
46 |
47 | func (EventCustomerAcquisitionLinkUnavailable) GetChangeType() string {
48 | return "link_unavailable"
49 | }
50 |
51 | func (m EventCustomerAcquisitionLinkUnavailable) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (EventCustomerAcquisitionLinkUnavailable) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp EventCustomerAcquisitionLinkUnavailable
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/event获客额度即将耗尽事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/97299#获客额度即将耗尽事件
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback(EventCustomerAcquisitionBalanceLow{})
11 | }
12 |
13 | type EventCustomerAcquisitionBalanceLow struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | ChangeType struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"ChangeType"`
34 | }
35 |
36 | func (EventCustomerAcquisitionBalanceLow) GetMessageType() string {
37 | return "event"
38 | }
39 |
40 | func (EventCustomerAcquisitionBalanceLow) GetEventType() string {
41 | return "customer_acquisition"
42 | }
43 |
44 | func (EventCustomerAcquisitionBalanceLow) GetChangeType() string {
45 | return "balance_low"
46 | }
47 |
48 | func (m EventCustomerAcquisitionBalanceLow) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (EventCustomerAcquisitionBalanceLow) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp EventCustomerAcquisitionBalanceLow
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/event进入应用.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90376#进入应用
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventEnterAgent{})
11 | }
12 |
13 | type EventEnterAgent struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | EventKey struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"EventKey"`
34 | AgentID struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"AgentID"`
37 | }
38 |
39 | func (EventEnterAgent) GetMessageType() string {
40 | return "event"
41 | }
42 |
43 | func (EventEnterAgent) GetEventType() string {
44 | return "enter_agent"
45 | }
46 |
47 | func (EventEnterAgent) GetChangeType() string {
48 | return ""
49 | }
50 |
51 | func (m EventEnterAgent) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (EventEnterAgent) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp EventEnterAgent
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/event通过获客链接申请好友事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/97299#通过获客链接申请好友事件
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback(EventCustomerAcquisitionFriendRequest{})
11 | }
12 |
13 | type EventCustomerAcquisitionFriendRequest struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | ChangeType struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"ChangeType"`
34 | LinkId struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"LinkId"`
37 | State struct {
38 | Text string `xml:",chardata"`
39 | } `xml:"State"`
40 | }
41 |
42 | func (EventCustomerAcquisitionFriendRequest) GetMessageType() string {
43 | return "event"
44 | }
45 |
46 | func (EventCustomerAcquisitionFriendRequest) GetEventType() string {
47 | return "customer_acquisition"
48 | }
49 |
50 | func (EventCustomerAcquisitionFriendRequest) GetChangeType() string {
51 | return "friend_request"
52 | }
53 |
54 | func (m EventCustomerAcquisitionFriendRequest) GetTypeKey() string {
55 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
56 | }
57 |
58 | func (EventCustomerAcquisitionFriendRequest) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
59 | var temp EventCustomerAcquisitionFriendRequest
60 | err := xml.Unmarshal(data, &temp)
61 | return temp, err
62 | }
63 |
--------------------------------------------------------------------------------
/callbacks/event长期未使用应用临时停用事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90376#长期未使用应用临时停用事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventCloseInactiveAgent{})
11 | }
12 |
13 | type EventCloseInactiveAgent struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | AgentID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"AgentID"`
34 | }
35 |
36 | func (EventCloseInactiveAgent) GetMessageType() string {
37 | return "event"
38 | }
39 |
40 | func (EventCloseInactiveAgent) GetEventType() string {
41 | return "close_inactive_agent"
42 | }
43 |
44 | func (EventCloseInactiveAgent) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m EventCloseInactiveAgent) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (EventCloseInactiveAgent) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp EventCloseInactiveAgent
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/event长期未使用应用重新启用事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90376#长期未使用应用重新启用事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(EventReopenInactiveAgent{})
11 | }
12 |
13 | type EventReopenInactiveAgent struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Event struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Event"`
31 | AgentID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"AgentID"`
34 | }
35 |
36 | func (EventReopenInactiveAgent) GetMessageType() string {
37 | return "event"
38 | }
39 |
40 | func (EventReopenInactiveAgent) GetEventType() string {
41 | return "reopen_inactive_agent"
42 | }
43 |
44 | func (EventReopenInactiveAgent) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m EventReopenInactiveAgent) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (EventReopenInactiveAgent) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp EventReopenInactiveAgent
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/image图片消息.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90375#图片消息
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(Image{})
11 | }
12 |
13 | type Image struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | PicUrl struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"PicUrl"`
31 | MediaId struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"MediaId"`
34 | MsgId struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"MsgId"`
37 | AgentID struct {
38 | Text string `xml:",chardata"`
39 | } `xml:"AgentID"`
40 | }
41 |
42 | func (Image) GetMessageType() string {
43 | return "image"
44 | }
45 |
46 | func (Image) GetEventType() string {
47 | return ""
48 | }
49 |
50 | func (Image) GetChangeType() string {
51 | return ""
52 | }
53 |
54 | func (m Image) GetTypeKey() string {
55 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
56 | }
57 |
58 | func (Image) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
59 | var temp Image
60 | err := xml.Unmarshal(data, &temp)
61 | return temp, err
62 | }
63 |
--------------------------------------------------------------------------------
/callbacks/link链接消息.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90375#链接消息
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(Link{})
11 | }
12 |
13 | type Link struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Title struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Title"`
31 | Description struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Description"`
34 | URL struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"Url"`
37 | PicUrl struct {
38 | Text string `xml:",chardata"`
39 | } `xml:"PicUrl"`
40 | MsgId struct {
41 | Text string `xml:",chardata"`
42 | } `xml:"MsgId"`
43 | AgentID struct {
44 | Text string `xml:",chardata"`
45 | } `xml:"AgentID"`
46 | }
47 |
48 | func (Link) GetMessageType() string {
49 | return "link"
50 | }
51 |
52 | func (Link) GetEventType() string {
53 | return ""
54 | }
55 |
56 | func (Link) GetChangeType() string {
57 | return ""
58 | }
59 |
60 | func (m Link) GetTypeKey() string {
61 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
62 | }
63 |
64 | func (Link) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
65 | var temp Link
66 | err := xml.Unmarshal(data, &temp)
67 | return temp, err
68 | }
69 |
--------------------------------------------------------------------------------
/callbacks/location位置消息.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90375#位置消息
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(Location{})
11 | }
12 |
13 | type Location struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | LocationX struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Location_X"`
31 | LocationY struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Location_Y"`
34 | Scale struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"Scale"`
37 | Label struct {
38 | Text string `xml:",chardata"`
39 | } `xml:"Label"`
40 | MsgId struct {
41 | Text string `xml:",chardata"`
42 | } `xml:"MsgId"`
43 | AgentID struct {
44 | Text string `xml:",chardata"`
45 | } `xml:"AgentID"`
46 | AppType struct {
47 | Text string `xml:",chardata"`
48 | } `xml:"AppType"`
49 | }
50 |
51 | func (Location) GetMessageType() string {
52 | return "location"
53 | }
54 |
55 | func (Location) GetEventType() string {
56 | return ""
57 | }
58 |
59 | func (Location) GetChangeType() string {
60 | return ""
61 | }
62 |
63 | func (m Location) GetTypeKey() string {
64 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
65 | }
66 |
67 | func (Location) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
68 | var temp Location
69 | err := xml.Unmarshal(data, &temp)
70 | return temp, err
71 | }
72 |
--------------------------------------------------------------------------------
/callbacks/text文本消息.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90375#文本消息
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(Text{})
11 | }
12 |
13 | type Text struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | Content struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"Content"`
31 | MsgId struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"MsgId"`
34 | AgentID struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"AgentID"`
37 | }
38 |
39 | func (Text) GetMessageType() string {
40 | return "text"
41 | }
42 |
43 | func (Text) GetEventType() string {
44 | return ""
45 | }
46 |
47 | func (Text) GetChangeType() string {
48 | return ""
49 | }
50 |
51 | func (m Text) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (Text) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp Text
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/third企业客户标签创建事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/92277#企业客户标签创建事件
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(ThirdChangeExternalTagCreate{})
12 | }
13 |
14 | type ThirdChangeExternalTagCreate struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | SuiteId struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"SuiteId"`
20 | AuthCorpId struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"AuthCorpId"`
23 | InfoType struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"InfoType"`
26 | TimeStamp struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"TimeStamp"`
29 | ID struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"Id"`
32 | TagType struct {
33 | Text string `xml:",chardata"`
34 | } `xml:"TagType"`
35 | ChangeType struct {
36 | Text string `xml:",chardata"`
37 | } `xml:"ChangeType"`
38 | }
39 |
40 | func (ThirdChangeExternalTagCreate) GetMessageType() string {
41 | return "third"
42 | }
43 |
44 | func (ThirdChangeExternalTagCreate) GetEventType() string {
45 | return "change_external_tag"
46 | }
47 |
48 | func (ThirdChangeExternalTagCreate) GetChangeType() string {
49 | return "create"
50 | }
51 |
52 | func (m ThirdChangeExternalTagCreate) GetTypeKey() string {
53 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
54 | }
55 |
56 | func (ThirdChangeExternalTagCreate) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
57 | var temp ThirdChangeExternalTagCreate
58 | err := xml.Unmarshal(data, &temp)
59 | return temp, err
60 | }
61 |
--------------------------------------------------------------------------------
/callbacks/third企业客户标签删除事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/92277#企业客户标签删除事件
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(ThirdChangeExternalTagDelete{})
12 | }
13 |
14 | type ThirdChangeExternalTagDelete struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | SuiteId struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"SuiteId"`
20 | AuthCorpId struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"AuthCorpId"`
23 | InfoType struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"InfoType"`
26 | TimeStamp struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"TimeStamp"`
29 | ID struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"Id"`
32 | TagType struct {
33 | Text string `xml:",chardata"`
34 | } `xml:"TagType"`
35 | ChangeType struct {
36 | Text string `xml:",chardata"`
37 | } `xml:"ChangeType"`
38 | }
39 |
40 | func (ThirdChangeExternalTagDelete) GetMessageType() string {
41 | return "third"
42 | }
43 |
44 | func (ThirdChangeExternalTagDelete) GetEventType() string {
45 | return "change_external_tag"
46 | }
47 |
48 | func (ThirdChangeExternalTagDelete) GetChangeType() string {
49 | return "delete"
50 | }
51 |
52 | func (m ThirdChangeExternalTagDelete) GetTypeKey() string {
53 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
54 | }
55 |
56 | func (ThirdChangeExternalTagDelete) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
57 | var temp ThirdChangeExternalTagDelete
58 | err := xml.Unmarshal(data, &temp)
59 | return temp, err
60 | }
61 |
--------------------------------------------------------------------------------
/callbacks/third企业客户标签变更事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/92277#企业客户标签变更事件
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(ThirdChangeExternalTagUpdate{})
12 | }
13 |
14 | type ThirdChangeExternalTagUpdate struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | SuiteId struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"SuiteId"`
20 | AuthCorpId struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"AuthCorpId"`
23 | InfoType struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"InfoType"`
26 | TimeStamp struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"TimeStamp"`
29 | ID struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"Id"`
32 | TagType struct {
33 | Text string `xml:",chardata"`
34 | } `xml:"TagType"`
35 | ChangeType struct {
36 | Text string `xml:",chardata"`
37 | } `xml:"ChangeType"`
38 | }
39 |
40 | func (ThirdChangeExternalTagUpdate) GetMessageType() string {
41 | return "third"
42 | }
43 |
44 | func (ThirdChangeExternalTagUpdate) GetEventType() string {
45 | return "change_external_tag"
46 | }
47 |
48 | func (ThirdChangeExternalTagUpdate) GetChangeType() string {
49 | return "update"
50 | }
51 |
52 | func (m ThirdChangeExternalTagUpdate) GetTypeKey() string {
53 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
54 | }
55 |
56 | func (ThirdChangeExternalTagUpdate) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
57 | var temp ThirdChangeExternalTagUpdate
58 | err := xml.Unmarshal(data, &temp)
59 | return temp, err
60 | }
61 |
--------------------------------------------------------------------------------
/callbacks/third企业客户标签重排事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/92277#企业客户标签重排事件
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(ThirdChangeExternalTagShuffle{})
12 | }
13 |
14 | type ThirdChangeExternalTagShuffle struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | SuiteId struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"SuiteId"`
20 | AuthCorpId struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"AuthCorpId"`
23 | InfoType struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"InfoType"`
26 | TimeStamp struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"TimeStamp"`
29 | ID struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"Id"`
32 | ChangeType struct {
33 | Text string `xml:",chardata"`
34 | } `xml:"ChangeType"`
35 | }
36 |
37 | func (ThirdChangeExternalTagShuffle) GetMessageType() string {
38 | return "third"
39 | }
40 |
41 | func (ThirdChangeExternalTagShuffle) GetEventType() string {
42 | return "change_external_tag"
43 | }
44 |
45 | func (ThirdChangeExternalTagShuffle) GetChangeType() string {
46 | return "shuffle"
47 | }
48 |
49 | func (m ThirdChangeExternalTagShuffle) GetTypeKey() string {
50 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
51 | }
52 |
53 | func (ThirdChangeExternalTagShuffle) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
54 | var temp ThirdChangeExternalTagShuffle
55 | err := xml.Unmarshal(data, &temp)
56 | return temp, err
57 | }
58 |
--------------------------------------------------------------------------------
/callbacks/third会话存档-产生会话回调事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/95039#产生会话回调事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdMsgauditNotify{})
11 | }
12 |
13 | type ThirdMsgauditNotify struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | AgentID struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"AgentID"`
31 | Event struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Event"`
34 | }
35 |
36 | func (ThirdMsgauditNotify) GetMessageType() string {
37 | return "third"
38 | }
39 |
40 | func (ThirdMsgauditNotify) GetEventType() string {
41 | return "msgaudit_notify"
42 | }
43 |
44 | func (ThirdMsgauditNotify) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m ThirdMsgauditNotify) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (ThirdMsgauditNotify) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp ThirdMsgauditNotify
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/third删除成员事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/92654#删除成员事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdChangeContactDeleteUser{})
11 | }
12 |
13 | type ThirdChangeContactDeleteUser struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | ChangeType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"ChangeType"`
31 | UserID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"UserID"`
34 | OpenUserID struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"OpenUserID"`
37 | }
38 |
39 | func (ThirdChangeContactDeleteUser) GetMessageType() string {
40 | return "third"
41 | }
42 |
43 | func (ThirdChangeContactDeleteUser) GetEventType() string {
44 | return "change_contact"
45 | }
46 |
47 | func (ThirdChangeContactDeleteUser) GetChangeType() string {
48 | return "delete_user"
49 | }
50 |
51 | func (m ThirdChangeContactDeleteUser) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (ThirdChangeContactDeleteUser) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp ThirdChangeContactDeleteUser
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/third删除跟进成员事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/92277#删除跟进成员事件
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(ThirdChangeExternalContactDelFollowUser{})
12 | }
13 |
14 | type ThirdChangeExternalContactDelFollowUser struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | SuiteId struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"SuiteId"`
20 | AuthCorpId struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"AuthCorpId"`
23 | InfoType struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"InfoType"`
26 | TimeStamp struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"TimeStamp"`
29 | ChangeType struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"ChangeType"`
32 | UserID struct {
33 | Text string `xml:",chardata"`
34 | } `xml:"UserID"`
35 | ExternalUserID struct {
36 | Text string `xml:",chardata"`
37 | } `xml:"ExternalUserID"`
38 | }
39 |
40 | func (ThirdChangeExternalContactDelFollowUser) GetMessageType() string {
41 | return "third"
42 | }
43 |
44 | func (ThirdChangeExternalContactDelFollowUser) GetEventType() string {
45 | return "change_external_contact"
46 | }
47 |
48 | func (ThirdChangeExternalContactDelFollowUser) GetChangeType() string {
49 | return "del_follow_user"
50 | }
51 |
52 | func (m ThirdChangeExternalContactDelFollowUser) GetTypeKey() string {
53 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
54 | }
55 |
56 | func (ThirdChangeExternalContactDelFollowUser) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
57 | var temp ThirdChangeExternalContactDelFollowUser
58 | err := xml.Unmarshal(data, &temp)
59 | return temp, err
60 | }
61 |
--------------------------------------------------------------------------------
/callbacks/third删除部门事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/92655#删除部门事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdChangeContactDeleteParty{})
11 | }
12 |
13 | type ThirdChangeContactDeleteParty struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | ChangeType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"ChangeType"`
31 | ID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Id"`
34 | }
35 |
36 | func (ThirdChangeContactDeleteParty) GetMessageType() string {
37 | return "third"
38 | }
39 |
40 | func (ThirdChangeContactDeleteParty) GetEventType() string {
41 | return "change_contact"
42 | }
43 |
44 | func (ThirdChangeContactDeleteParty) GetChangeType() string {
45 | return "delete_party"
46 | }
47 |
48 | func (m ThirdChangeContactDeleteParty) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (ThirdChangeContactDeleteParty) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp ThirdChangeContactDeleteParty
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/third取消授权通知.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/90642#取消授权通知
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(ThirdCancelAuth{})
12 | }
13 |
14 | type ThirdCancelAuth struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | SuiteId struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"SuiteId"`
20 | InfoType struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"InfoType"`
23 | TimeStamp struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"TimeStamp"`
26 | AuthCorpId struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"AuthCorpId"`
29 | }
30 |
31 | func (ThirdCancelAuth) GetMessageType() string {
32 | return "third"
33 | }
34 |
35 | func (ThirdCancelAuth) GetEventType() string {
36 | return "cancel_auth"
37 | }
38 |
39 | func (ThirdCancelAuth) GetChangeType() string {
40 | return ""
41 | }
42 |
43 | func (m ThirdCancelAuth) GetTypeKey() string {
44 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
45 | }
46 |
47 | func (ThirdCancelAuth) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
48 | var temp ThirdCancelAuth
49 | err := xml.Unmarshal(data, &temp)
50 | return temp, err
51 | }
52 |
--------------------------------------------------------------------------------
/callbacks/third变更授权通知.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/90642#变更授权通知
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(ThirdChangeAuth{})
12 | }
13 |
14 | type ThirdChangeAuth struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | SuiteId struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"SuiteId"`
20 | InfoType struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"InfoType"`
23 | TimeStamp struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"TimeStamp"`
26 | AuthCorpId struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"AuthCorpId"`
29 | }
30 |
31 | func (ThirdChangeAuth) GetMessageType() string {
32 | return "third"
33 | }
34 |
35 | func (ThirdChangeAuth) GetEventType() string {
36 | return "change_auth"
37 | }
38 |
39 | func (ThirdChangeAuth) GetChangeType() string {
40 | return ""
41 | }
42 |
43 | func (m ThirdChangeAuth) GetTypeKey() string {
44 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
45 | }
46 |
47 | func (ThirdChangeAuth) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
48 | var temp ThirdChangeAuth
49 | err := xml.Unmarshal(data, &temp)
50 | return temp, err
51 | }
52 |
--------------------------------------------------------------------------------
/callbacks/third同意授权转换external_userid事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 文档地址
6 | // https://open.work.weixin.qq.com/api/doc/35747#%E5%90%8C%E6%84%8F%E6%8E%88%E6%9D%83%E8%BD%AC%E6%8D%A2external_userid%E4%BA%8B%E4%BB%B6
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdAgreeExternalUseridMigration{})
11 | }
12 |
13 | type ThirdAgreeExternalUseridMigration struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | AuthCorpId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"AuthCorpId"`
19 | InfoType struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"InfoType"`
22 | ServiceCorpId struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"ServiceCorpId"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | }
29 |
30 | func (ThirdAgreeExternalUseridMigration) GetMessageType() string {
31 | return "third"
32 | }
33 |
34 | func (ThirdAgreeExternalUseridMigration) GetEventType() string {
35 | return "agree_external_userid_migration"
36 | }
37 |
38 | func (ThirdAgreeExternalUseridMigration) GetChangeType() string {
39 | return ""
40 | }
41 |
42 | func (m ThirdAgreeExternalUseridMigration) GetTypeKey() string {
43 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
44 | }
45 |
46 | func (ThirdAgreeExternalUseridMigration) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
47 | var temp ThirdAgreeExternalUseridMigration
48 | err := xml.Unmarshal(data, &temp)
49 | return temp, err
50 | }
51 |
--------------------------------------------------------------------------------
/callbacks/third客户接替失败事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/92277#客户接替失败事件
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(ThirdChangeExternalContactTransferFail{})
12 | }
13 |
14 | type ThirdChangeExternalContactTransferFail struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | SuiteId struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"SuiteId"`
20 | AuthCorpId struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"AuthCorpId"`
23 | InfoType struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"InfoType"`
26 | TimeStamp struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"TimeStamp"`
29 | ChangeType struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"ChangeType"`
32 | FailReason struct {
33 | Text string `xml:",chardata"`
34 | } `xml:"FailReason"`
35 | UserID struct {
36 | Text string `xml:",chardata"`
37 | } `xml:"UserID"`
38 | ExternalUserID struct {
39 | Text string `xml:",chardata"`
40 | } `xml:"ExternalUserID"`
41 | }
42 |
43 | func (ThirdChangeExternalContactTransferFail) GetMessageType() string {
44 | return "third"
45 | }
46 |
47 | func (ThirdChangeExternalContactTransferFail) GetEventType() string {
48 | return "change_external_contact"
49 | }
50 |
51 | func (ThirdChangeExternalContactTransferFail) GetChangeType() string {
52 | return "transfer_fail"
53 | }
54 |
55 | func (m ThirdChangeExternalContactTransferFail) GetTypeKey() string {
56 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
57 | }
58 |
59 | func (ThirdChangeExternalContactTransferFail) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
60 | var temp ThirdChangeExternalContactTransferFail
61 | err := xml.Unmarshal(data, &temp)
62 | return temp, err
63 | }
64 |
--------------------------------------------------------------------------------
/callbacks/third客户群创建事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/92277#客户群创建事件
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(ThirdChangeExternalChatCreate{})
12 | }
13 |
14 | type ThirdChangeExternalChatCreate struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | SuiteId struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"SuiteId"`
20 | AuthCorpId struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"AuthCorpId"`
23 | InfoType struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"InfoType"`
26 | TimeStamp struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"TimeStamp"`
29 | ChatId struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"ChatId"`
32 | ChangeType struct {
33 | Text string `xml:",chardata"`
34 | } `xml:"ChangeType"`
35 | }
36 |
37 | func (ThirdChangeExternalChatCreate) GetMessageType() string {
38 | return "third"
39 | }
40 |
41 | func (ThirdChangeExternalChatCreate) GetEventType() string {
42 | return "change_external_chat"
43 | }
44 |
45 | func (ThirdChangeExternalChatCreate) GetChangeType() string {
46 | return "create"
47 | }
48 |
49 | func (m ThirdChangeExternalChatCreate) GetTypeKey() string {
50 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
51 | }
52 |
53 | func (ThirdChangeExternalChatCreate) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
54 | var temp ThirdChangeExternalChatCreate
55 | err := xml.Unmarshal(data, &temp)
56 | return temp, err
57 | }
58 |
--------------------------------------------------------------------------------
/callbacks/third客户群解散事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/92277#客户群解散事件
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(ThirdChangeExternalChatDismiss{})
12 | }
13 |
14 | type ThirdChangeExternalChatDismiss struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | SuiteId struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"SuiteId"`
20 | AuthCorpId struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"AuthCorpId"`
23 | InfoType struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"InfoType"`
26 | TimeStamp struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"TimeStamp"`
29 | ChatId struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"ChatId"`
32 | ChangeType struct {
33 | Text string `xml:",chardata"`
34 | } `xml:"ChangeType"`
35 | }
36 |
37 | func (ThirdChangeExternalChatDismiss) GetMessageType() string {
38 | return "third"
39 | }
40 |
41 | func (ThirdChangeExternalChatDismiss) GetEventType() string {
42 | return "change_external_chat"
43 | }
44 |
45 | func (ThirdChangeExternalChatDismiss) GetChangeType() string {
46 | return "dismiss"
47 | }
48 |
49 | func (m ThirdChangeExternalChatDismiss) GetTypeKey() string {
50 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
51 | }
52 |
53 | func (ThirdChangeExternalChatDismiss) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
54 | var temp ThirdChangeExternalChatDismiss
55 | err := xml.Unmarshal(data, &temp)
56 | return temp, err
57 | }
58 |
--------------------------------------------------------------------------------
/callbacks/third家校沟通-创建部门事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/92050#创建部门事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdChangeSchoolContactCreateDepartment{})
11 | }
12 |
13 | type ThirdChangeSchoolContactCreateDepartment struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | ChangeType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"ChangeType"`
31 | ID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Id"`
34 | }
35 |
36 | func (ThirdChangeSchoolContactCreateDepartment) GetMessageType() string {
37 | return "third"
38 | }
39 |
40 | func (ThirdChangeSchoolContactCreateDepartment) GetEventType() string {
41 | return "change_school_contact"
42 | }
43 |
44 | func (ThirdChangeSchoolContactCreateDepartment) GetChangeType() string {
45 | return "create_department"
46 | }
47 |
48 | func (m ThirdChangeSchoolContactCreateDepartment) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (ThirdChangeSchoolContactCreateDepartment) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp ThirdChangeSchoolContactCreateDepartment
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/third家校沟通-删除学生事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/92051#删除学生事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdChangeSchoolContactDeleteStudent{})
11 | }
12 |
13 | type ThirdChangeSchoolContactDeleteStudent struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | ChangeType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"ChangeType"`
31 | ID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Id"`
34 | }
35 |
36 | func (ThirdChangeSchoolContactDeleteStudent) GetMessageType() string {
37 | return "third"
38 | }
39 |
40 | func (ThirdChangeSchoolContactDeleteStudent) GetEventType() string {
41 | return "change_school_contact"
42 | }
43 |
44 | func (ThirdChangeSchoolContactDeleteStudent) GetChangeType() string {
45 | return "delete_student"
46 | }
47 |
48 | func (m ThirdChangeSchoolContactDeleteStudent) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (ThirdChangeSchoolContactDeleteStudent) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp ThirdChangeSchoolContactDeleteStudent
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/third家校沟通-删除家长事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/92051#删除家长事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdChangeSchoolContactDeleteParent{})
11 | }
12 |
13 | type ThirdChangeSchoolContactDeleteParent struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | ChangeType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"ChangeType"`
31 | ID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Id"`
34 | }
35 |
36 | func (ThirdChangeSchoolContactDeleteParent) GetMessageType() string {
37 | return "third"
38 | }
39 |
40 | func (ThirdChangeSchoolContactDeleteParent) GetEventType() string {
41 | return "change_school_contact"
42 | }
43 |
44 | func (ThirdChangeSchoolContactDeleteParent) GetChangeType() string {
45 | return "delete_parent"
46 | }
47 |
48 | func (m ThirdChangeSchoolContactDeleteParent) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (ThirdChangeSchoolContactDeleteParent) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp ThirdChangeSchoolContactDeleteParent
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/third家校沟通-删除部门事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/92050#删除部门事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdChangeSchoolContactDeleteDepartment{})
11 | }
12 |
13 | type ThirdChangeSchoolContactDeleteDepartment struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | ChangeType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"ChangeType"`
31 | ID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Id"`
34 | }
35 |
36 | func (ThirdChangeSchoolContactDeleteDepartment) GetMessageType() string {
37 | return "third"
38 | }
39 |
40 | func (ThirdChangeSchoolContactDeleteDepartment) GetEventType() string {
41 | return "change_school_contact"
42 | }
43 |
44 | func (ThirdChangeSchoolContactDeleteDepartment) GetChangeType() string {
45 | return "delete_department"
46 | }
47 |
48 | func (m ThirdChangeSchoolContactDeleteDepartment) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (ThirdChangeSchoolContactDeleteDepartment) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp ThirdChangeSchoolContactDeleteDepartment
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/third家校沟通-家长关注事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/92051#家长关注事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdChangeSchoolContactSubscribe{})
11 | }
12 |
13 | type ThirdChangeSchoolContactSubscribe struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | ChangeType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"ChangeType"`
31 | ID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Id"`
34 | }
35 |
36 | func (ThirdChangeSchoolContactSubscribe) GetMessageType() string {
37 | return "third"
38 | }
39 |
40 | func (ThirdChangeSchoolContactSubscribe) GetEventType() string {
41 | return "change_school_contact"
42 | }
43 |
44 | func (ThirdChangeSchoolContactSubscribe) GetChangeType() string {
45 | return "subscribe"
46 | }
47 |
48 | func (m ThirdChangeSchoolContactSubscribe) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (ThirdChangeSchoolContactSubscribe) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp ThirdChangeSchoolContactSubscribe
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/third家校沟通-家长取消关注事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/92051#家长取消关注事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdChangeSchoolContactUnsubscribe{})
11 | }
12 |
13 | type ThirdChangeSchoolContactUnsubscribe struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | ChangeType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"ChangeType"`
31 | ID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Id"`
34 | }
35 |
36 | func (ThirdChangeSchoolContactUnsubscribe) GetMessageType() string {
37 | return "third"
38 | }
39 |
40 | func (ThirdChangeSchoolContactUnsubscribe) GetEventType() string {
41 | return "change_school_contact"
42 | }
43 |
44 | func (ThirdChangeSchoolContactUnsubscribe) GetChangeType() string {
45 | return "unsubscribe"
46 | }
47 |
48 | func (m ThirdChangeSchoolContactUnsubscribe) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (ThirdChangeSchoolContactUnsubscribe) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp ThirdChangeSchoolContactUnsubscribe
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/third家校沟通-新增学生事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/92051#新增学生事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdChangeSchoolContactCreateStudent{})
11 | }
12 |
13 | type ThirdChangeSchoolContactCreateStudent struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | ChangeType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"ChangeType"`
31 | ID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Id"`
34 | }
35 |
36 | func (ThirdChangeSchoolContactCreateStudent) GetMessageType() string {
37 | return "third"
38 | }
39 |
40 | func (ThirdChangeSchoolContactCreateStudent) GetEventType() string {
41 | return "change_school_contact"
42 | }
43 |
44 | func (ThirdChangeSchoolContactCreateStudent) GetChangeType() string {
45 | return "create_student"
46 | }
47 |
48 | func (m ThirdChangeSchoolContactCreateStudent) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (ThirdChangeSchoolContactCreateStudent) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp ThirdChangeSchoolContactCreateStudent
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/third家校沟通-新增家长事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/92051#新增家长事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdChangeSchoolContactCreateParent{})
11 | }
12 |
13 | type ThirdChangeSchoolContactCreateParent struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | ChangeType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"ChangeType"`
31 | ID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Id"`
34 | }
35 |
36 | func (ThirdChangeSchoolContactCreateParent) GetMessageType() string {
37 | return "third"
38 | }
39 |
40 | func (ThirdChangeSchoolContactCreateParent) GetEventType() string {
41 | return "change_school_contact"
42 | }
43 |
44 | func (ThirdChangeSchoolContactCreateParent) GetChangeType() string {
45 | return "create_parent"
46 | }
47 |
48 | func (m ThirdChangeSchoolContactCreateParent) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (ThirdChangeSchoolContactCreateParent) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp ThirdChangeSchoolContactCreateParent
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/third家校沟通-更新部门事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/92050#更新部门事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdChangeSchoolContactUpdateDepartment{})
11 | }
12 |
13 | type ThirdChangeSchoolContactUpdateDepartment struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | ChangeType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"ChangeType"`
31 | ID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Id"`
34 | }
35 |
36 | func (ThirdChangeSchoolContactUpdateDepartment) GetMessageType() string {
37 | return "third"
38 | }
39 |
40 | func (ThirdChangeSchoolContactUpdateDepartment) GetEventType() string {
41 | return "change_school_contact"
42 | }
43 |
44 | func (ThirdChangeSchoolContactUpdateDepartment) GetChangeType() string {
45 | return "update_department"
46 | }
47 |
48 | func (m ThirdChangeSchoolContactUpdateDepartment) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (ThirdChangeSchoolContactUpdateDepartment) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp ThirdChangeSchoolContactUpdateDepartment
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/third家校沟通-编辑学生事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/92051#编辑学生事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdChangeSchoolContactUpdateStudent{})
11 | }
12 |
13 | type ThirdChangeSchoolContactUpdateStudent struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | ChangeType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"ChangeType"`
31 | ID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Id"`
34 | NewId struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"NewId"`
37 | }
38 |
39 | func (ThirdChangeSchoolContactUpdateStudent) GetMessageType() string {
40 | return "third"
41 | }
42 |
43 | func (ThirdChangeSchoolContactUpdateStudent) GetEventType() string {
44 | return "change_school_contact"
45 | }
46 |
47 | func (ThirdChangeSchoolContactUpdateStudent) GetChangeType() string {
48 | return "update_student"
49 | }
50 |
51 | func (m ThirdChangeSchoolContactUpdateStudent) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (ThirdChangeSchoolContactUpdateStudent) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp ThirdChangeSchoolContactUpdateStudent
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/third家校沟通-编辑家长事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/92051#编辑家长事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdChangeSchoolContactUpdateParent{})
11 | }
12 |
13 | type ThirdChangeSchoolContactUpdateParent struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | ChangeType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"ChangeType"`
31 | ID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Id"`
34 | NewId struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"NewId"`
37 | }
38 |
39 | func (ThirdChangeSchoolContactUpdateParent) GetMessageType() string {
40 | return "third"
41 | }
42 |
43 | func (ThirdChangeSchoolContactUpdateParent) GetEventType() string {
44 | return "change_school_contact"
45 | }
46 |
47 | func (ThirdChangeSchoolContactUpdateParent) GetChangeType() string {
48 | return "update_parent"
49 | }
50 |
51 | func (m ThirdChangeSchoolContactUpdateParent) GetTypeKey() string {
52 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
53 | }
54 |
55 | func (ThirdChangeSchoolContactUpdateParent) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
56 | var temp ThirdChangeSchoolContactUpdateParent
57 | err := xml.Unmarshal(data, &temp)
58 | return temp, err
59 | }
60 |
--------------------------------------------------------------------------------
/callbacks/third授权成功通知.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/90642#授权成功通知
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(ThirdCreateAuth{})
12 | }
13 |
14 | type ThirdCreateAuth struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | SuiteId struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"SuiteId"`
20 | AuthCode struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"AuthCode"`
23 | InfoType struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"InfoType"`
26 | TimeStamp struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"TimeStamp"`
29 | State struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"State"`
32 | }
33 |
34 | func (ThirdCreateAuth) GetMessageType() string {
35 | return "third"
36 | }
37 |
38 | func (ThirdCreateAuth) GetEventType() string {
39 | return "create_auth"
40 | }
41 |
42 | func (ThirdCreateAuth) GetChangeType() string {
43 | return ""
44 | }
45 |
46 | func (m ThirdCreateAuth) GetTypeKey() string {
47 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
48 | }
49 |
50 | func (ThirdCreateAuth) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
51 | var temp ThirdCreateAuth
52 | err := xml.Unmarshal(data, &temp)
53 | return temp, err
54 | }
55 |
--------------------------------------------------------------------------------
/callbacks/third授权组织架构权限通知.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/97378#授权组织架构权限通知
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback(ThirdCorpArchAuth{})
11 | }
12 |
13 | type ThirdCorpArchAuth struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | }
29 |
30 | func (ThirdCorpArchAuth) GetMessageType() string {
31 | return "third"
32 | }
33 |
34 | func (ThirdCorpArchAuth) GetEventType() string {
35 | return "corp_arch_auth"
36 | }
37 |
38 | func (ThirdCorpArchAuth) GetChangeType() string {
39 | return ""
40 | }
41 |
42 | func (m ThirdCorpArchAuth) GetTypeKey() string {
43 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
44 | }
45 |
46 | func (ThirdCorpArchAuth) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
47 | var temp ThirdCorpArchAuth
48 | err := xml.Unmarshal(data, &temp)
49 | return temp, err
50 | }
51 |
--------------------------------------------------------------------------------
/callbacks/third接口调用许可-支付成功通知.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/95804#支付成功通知
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdLicensePaySuccess{})
11 | }
12 |
13 | type ThirdLicensePaySuccess struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ServiceCorpId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ServiceCorpId"`
19 | InfoType struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"InfoType"`
22 | AuthCorpId struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"AuthCorpId"`
25 | OrderId struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"OrderId"`
28 | BuyerUserId struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"BuyerUserId"`
31 | TimeStamp struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"TimeStamp"`
34 | }
35 |
36 | func (ThirdLicensePaySuccess) GetMessageType() string {
37 | return "third"
38 | }
39 |
40 | func (ThirdLicensePaySuccess) GetEventType() string {
41 | return "license_pay_success"
42 | }
43 |
44 | func (ThirdLicensePaySuccess) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m ThirdLicensePaySuccess) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (ThirdLicensePaySuccess) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp ThirdLicensePaySuccess
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/third接口调用许可-退款结果通知.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/95805#退款结果通知
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdLicenseRefund{})
11 | }
12 |
13 | type ThirdLicenseRefund struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ServiceCorpId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ServiceCorpId"`
19 | InfoType struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"InfoType"`
22 | AuthCorpId struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"AuthCorpId"`
25 | OrderId struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"OrderId"`
28 | OrderStatus struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"OrderStatus"`
31 | TimeStamp struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"TimeStamp"`
34 | }
35 |
36 | func (ThirdLicenseRefund) GetMessageType() string {
37 | return "third"
38 | }
39 |
40 | func (ThirdLicenseRefund) GetEventType() string {
41 | return "license_refund"
42 | }
43 |
44 | func (ThirdLicenseRefund) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m ThirdLicenseRefund) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (ThirdLicenseRefund) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp ThirdLicenseRefund
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/third推送suite_ticket.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/90628#推送suite_ticket
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(ThirdSuiteTicket{})
12 | }
13 |
14 | type ThirdSuiteTicket struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | SuiteId struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"SuiteId"`
20 | InfoType struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"InfoType"`
23 | TimeStamp struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"TimeStamp"`
26 | SuiteTicket struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"SuiteTicket"`
29 | }
30 |
31 | func (ThirdSuiteTicket) GetMessageType() string {
32 | return "third"
33 | }
34 |
35 | func (ThirdSuiteTicket) GetEventType() string {
36 | return "suite_ticket"
37 | }
38 |
39 | func (ThirdSuiteTicket) GetChangeType() string {
40 | return ""
41 | }
42 |
43 | func (m ThirdSuiteTicket) GetTypeKey() string {
44 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
45 | }
46 |
47 | func (ThirdSuiteTicket) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
48 | var temp ThirdSuiteTicket
49 | err := xml.Unmarshal(data, &temp)
50 | return temp, err
51 | }
52 |
--------------------------------------------------------------------------------
/callbacks/third收银台-下单成功通知.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/91929#下单成功通知
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback(ThirdOpenOrder{})
11 | }
12 |
13 | type ThirdOpenOrder struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | PaidCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"PaidCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | OrderId struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"OrderId"`
31 | OperatorId struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"OperatorId"`
34 | }
35 |
36 | func (ThirdOpenOrder) GetMessageType() string {
37 | return "third"
38 | }
39 |
40 | func (ThirdOpenOrder) GetEventType() string {
41 | return "open_order"
42 | }
43 |
44 | func (ThirdOpenOrder) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m ThirdOpenOrder) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (ThirdOpenOrder) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp ThirdOpenOrder
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/third收银台-应用版本变更通知.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/91933#应用版本变更通知
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback(ThirdChangeEditon{})
11 | }
12 |
13 | type ThirdChangeEditon struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | PaidCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"PaidCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | }
29 |
30 | func (ThirdChangeEditon) GetMessageType() string {
31 | return "third"
32 | }
33 |
34 | func (ThirdChangeEditon) GetEventType() string {
35 | return "change_editon"
36 | }
37 |
38 | func (ThirdChangeEditon) GetChangeType() string {
39 | return ""
40 | }
41 |
42 | func (m ThirdChangeEditon) GetTypeKey() string {
43 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
44 | }
45 |
46 | func (ThirdChangeEditon) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
47 | var temp ThirdChangeEditon
48 | err := xml.Unmarshal(data, &temp)
49 | return temp, err
50 | }
51 |
--------------------------------------------------------------------------------
/callbacks/third收银台-支付成功通知.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/91931#支付成功通知
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback(ThirdPayForAppSuccess{})
11 | }
12 |
13 | type ThirdPayForAppSuccess struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | PaidCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"PaidCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | OrderId struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"OrderId"`
31 | }
32 |
33 | func (ThirdPayForAppSuccess) GetMessageType() string {
34 | return "third"
35 | }
36 |
37 | func (ThirdPayForAppSuccess) GetEventType() string {
38 | return "pay_for_app_success"
39 | }
40 |
41 | func (ThirdPayForAppSuccess) GetChangeType() string {
42 | return ""
43 | }
44 |
45 | func (m ThirdPayForAppSuccess) GetTypeKey() string {
46 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
47 | }
48 |
49 | func (ThirdPayForAppSuccess) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
50 | var temp ThirdPayForAppSuccess
51 | err := xml.Unmarshal(data, &temp)
52 | return temp, err
53 | }
54 |
--------------------------------------------------------------------------------
/callbacks/third收银台-改单通知.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/91930#改单通知
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback(ThirdChangeOrder{})
11 | }
12 |
13 | type ThirdChangeOrder struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | PaidCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"PaidCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | OldOrderId struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"OldOrderId"`
31 | NewOrderId struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"NewOrderId"`
34 | }
35 |
36 | func (ThirdChangeOrder) GetMessageType() string {
37 | return "third"
38 | }
39 |
40 | func (ThirdChangeOrder) GetEventType() string {
41 | return "change_order"
42 | }
43 |
44 | func (ThirdChangeOrder) GetChangeType() string {
45 | return ""
46 | }
47 |
48 | func (m ThirdChangeOrder) GetTypeKey() string {
49 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
50 | }
51 |
52 | func (ThirdChangeOrder) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
53 | var temp ThirdChangeOrder
54 | err := xml.Unmarshal(data, &temp)
55 | return temp, err
56 | }
57 |
--------------------------------------------------------------------------------
/callbacks/third收银台-退款通知.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/91932#退款通知
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback(ThirdRefund{})
11 | }
12 |
13 | type ThirdRefund struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | PaidCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"PaidCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | OrderId struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"OrderId"`
31 | }
32 |
33 | func (ThirdRefund) GetMessageType() string {
34 | return "third"
35 | }
36 |
37 | func (ThirdRefund) GetEventType() string {
38 | return "refund"
39 | }
40 |
41 | func (ThirdRefund) GetChangeType() string {
42 | return ""
43 | }
44 |
45 | func (m ThirdRefund) GetTypeKey() string {
46 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
47 | }
48 |
49 | func (ThirdRefund) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
50 | var temp ThirdRefund
51 | err := xml.Unmarshal(data, &temp)
52 | return temp, err
53 | }
54 |
--------------------------------------------------------------------------------
/callbacks/third新增部门事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/92655#新增部门事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdChangeContactCreateParty{})
11 | }
12 |
13 | type ThirdChangeContactCreateParty struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | ChangeType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"ChangeType"`
31 | ID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Id"`
34 | Name struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"Name"`
37 | ParentId struct {
38 | Text string `xml:",chardata"`
39 | } `xml:"ParentId"`
40 | Order struct {
41 | Text string `xml:",chardata"`
42 | } `xml:"Order"`
43 | }
44 |
45 | func (ThirdChangeContactCreateParty) GetMessageType() string {
46 | return "third"
47 | }
48 |
49 | func (ThirdChangeContactCreateParty) GetEventType() string {
50 | return "change_contact"
51 | }
52 |
53 | func (ThirdChangeContactCreateParty) GetChangeType() string {
54 | return "create_party"
55 | }
56 |
57 | func (m ThirdChangeContactCreateParty) GetTypeKey() string {
58 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
59 | }
60 |
61 | func (ThirdChangeContactCreateParty) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
62 | var temp ThirdChangeContactCreateParty
63 | err := xml.Unmarshal(data, &temp)
64 | return temp, err
65 | }
66 |
--------------------------------------------------------------------------------
/callbacks/third更新部门事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/92655#更新部门事件
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdChangeContactUpdateParty{})
11 | }
12 |
13 | type ThirdChangeContactUpdateParty struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | ChangeType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"ChangeType"`
31 | ID struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Id"`
34 | Name struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"Name"`
37 | ParentId struct {
38 | Text string `xml:",chardata"`
39 | } `xml:"ParentId"`
40 | }
41 |
42 | func (ThirdChangeContactUpdateParty) GetMessageType() string {
43 | return "third"
44 | }
45 |
46 | func (ThirdChangeContactUpdateParty) GetEventType() string {
47 | return "change_contact"
48 | }
49 |
50 | func (ThirdChangeContactUpdateParty) GetChangeType() string {
51 | return "update_party"
52 | }
53 |
54 | func (m ThirdChangeContactUpdateParty) GetTypeKey() string {
55 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
56 | }
57 |
58 | func (ThirdChangeContactUpdateParty) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
59 | var temp ThirdChangeContactUpdateParty
60 | err := xml.Unmarshal(data, &temp)
61 | return temp, err
62 | }
63 |
--------------------------------------------------------------------------------
/callbacks/third编辑企业客户事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改
6 | // 文档地址
7 | // https://developer.work.weixin.qq.com/document/path/92277#编辑企业客户事件
8 |
9 | func init() {
10 | // 添加可解析的回调事件
11 | supportCallback(ThirdChangeExternalContactEditExternalContact{})
12 | }
13 |
14 | type ThirdChangeExternalContactEditExternalContact struct {
15 | XMLName xml.Name `xml:"xml"`
16 | Text string `xml:",chardata"`
17 | SuiteId struct {
18 | Text string `xml:",chardata"`
19 | } `xml:"SuiteId"`
20 | AuthCorpId struct {
21 | Text string `xml:",chardata"`
22 | } `xml:"AuthCorpId"`
23 | InfoType struct {
24 | Text string `xml:",chardata"`
25 | } `xml:"InfoType"`
26 | TimeStamp struct {
27 | Text string `xml:",chardata"`
28 | } `xml:"TimeStamp"`
29 | ChangeType struct {
30 | Text string `xml:",chardata"`
31 | } `xml:"ChangeType"`
32 | UserID struct {
33 | Text string `xml:",chardata"`
34 | } `xml:"UserID"`
35 | ExternalUserID struct {
36 | Text string `xml:",chardata"`
37 | } `xml:"ExternalUserID"`
38 | }
39 |
40 | func (ThirdChangeExternalContactEditExternalContact) GetMessageType() string {
41 | return "third"
42 | }
43 |
44 | func (ThirdChangeExternalContactEditExternalContact) GetEventType() string {
45 | return "change_external_contact"
46 | }
47 |
48 | func (ThirdChangeExternalContactEditExternalContact) GetChangeType() string {
49 | return "edit_external_contact"
50 | }
51 |
52 | func (m ThirdChangeExternalContactEditExternalContact) GetTypeKey() string {
53 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
54 | }
55 |
56 | func (ThirdChangeExternalContactEditExternalContact) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
57 | var temp ThirdChangeExternalContactEditExternalContact
58 | err := xml.Unmarshal(data, &temp)
59 | return temp, err
60 | }
61 |
--------------------------------------------------------------------------------
/callbacks/third获客助手权限取消事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/98959#获客助手权限取消事件
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback(ThirdCancelSpecialAuth{})
11 | }
12 |
13 | type ThirdCancelSpecialAuth struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | AuthType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"AuthType"`
31 | }
32 |
33 | func (ThirdCancelSpecialAuth) GetMessageType() string {
34 | return "third"
35 | }
36 |
37 | func (ThirdCancelSpecialAuth) GetEventType() string {
38 | return "cancel_special_auth"
39 | }
40 |
41 | func (ThirdCancelSpecialAuth) GetChangeType() string {
42 | return ""
43 | }
44 |
45 | func (m ThirdCancelSpecialAuth) GetTypeKey() string {
46 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
47 | }
48 |
49 | func (ThirdCancelSpecialAuth) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
50 | var temp ThirdCancelSpecialAuth
51 | err := xml.Unmarshal(data, &temp)
52 | return temp, err
53 | }
54 |
--------------------------------------------------------------------------------
/callbacks/third获客助手权限确认事件.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/98959#获客助手权限确认事件
7 |
8 | func init() {
9 | //添加可解析的回调事件
10 | supportCallback(ThirdApproveSpecialAuth{})
11 | }
12 |
13 | type ThirdApproveSpecialAuth struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | AuthType struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"AuthType"`
31 | }
32 |
33 | func (ThirdApproveSpecialAuth) GetMessageType() string {
34 | return "third"
35 | }
36 |
37 | func (ThirdApproveSpecialAuth) GetEventType() string {
38 | return "approve_special_auth"
39 | }
40 |
41 | func (ThirdApproveSpecialAuth) GetChangeType() string {
42 | return ""
43 | }
44 |
45 | func (m ThirdApproveSpecialAuth) GetTypeKey() string {
46 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
47 | }
48 |
49 | func (ThirdApproveSpecialAuth) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
50 | var temp ThirdApproveSpecialAuth
51 | err := xml.Unmarshal(data, &temp)
52 | return temp, err
53 | }
54 |
--------------------------------------------------------------------------------
/callbacks/third设备数据授权变更回调.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/96103#设备数据授权变更回调
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdDeviceDataAuthChange{})
11 | }
12 |
13 | type ThirdDeviceDataAuthChange struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCorpId struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCorpId"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | AgentID struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"AgentID"`
31 | }
32 |
33 | func (ThirdDeviceDataAuthChange) GetMessageType() string {
34 | return "third"
35 | }
36 |
37 | func (ThirdDeviceDataAuthChange) GetEventType() string {
38 | return "device_data_auth_change"
39 | }
40 |
41 | func (ThirdDeviceDataAuthChange) GetChangeType() string {
42 | return ""
43 | }
44 |
45 | func (m ThirdDeviceDataAuthChange) GetTypeKey() string {
46 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
47 | }
48 |
49 | func (ThirdDeviceDataAuthChange) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
50 | var temp ThirdDeviceDataAuthChange
51 | err := xml.Unmarshal(data, &temp)
52 | return temp, err
53 | }
54 |
--------------------------------------------------------------------------------
/callbacks/third重置永久授权码通知.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/94758#重置永久授权码通知
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(ThirdResetPermanentCode{})
11 | }
12 |
13 | type ThirdResetPermanentCode struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | SuiteId struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"SuiteId"`
19 | AuthCode struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"AuthCode"`
22 | InfoType struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"InfoType"`
25 | TimeStamp struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"TimeStamp"`
28 | }
29 |
30 | func (ThirdResetPermanentCode) GetMessageType() string {
31 | return "third"
32 | }
33 |
34 | func (ThirdResetPermanentCode) GetEventType() string {
35 | return "reset_permanent_code"
36 | }
37 |
38 | func (ThirdResetPermanentCode) GetChangeType() string {
39 | return ""
40 | }
41 |
42 | func (m ThirdResetPermanentCode) GetTypeKey() string {
43 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
44 | }
45 |
46 | func (ThirdResetPermanentCode) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
47 | var temp ThirdResetPermanentCode
48 | err := xml.Unmarshal(data, &temp)
49 | return temp, err
50 | }
51 |
--------------------------------------------------------------------------------
/callbacks/video视频消息.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90375#视频消息
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(Video{})
11 | }
12 |
13 | type Video struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | MediaId struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"MediaId"`
31 | ThumbMediaId struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"ThumbMediaId"`
34 | MsgId struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"MsgId"`
37 | AgentID struct {
38 | Text string `xml:",chardata"`
39 | } `xml:"AgentID"`
40 | }
41 |
42 | func (Video) GetMessageType() string {
43 | return "video"
44 | }
45 |
46 | func (Video) GetEventType() string {
47 | return ""
48 | }
49 |
50 | func (Video) GetChangeType() string {
51 | return ""
52 | }
53 |
54 | func (m Video) GetTypeKey() string {
55 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
56 | }
57 |
58 | func (Video) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
59 | var temp Video
60 | err := xml.Unmarshal(data, &temp)
61 | return temp, err
62 | }
63 |
--------------------------------------------------------------------------------
/callbacks/voice语音消息.go:
--------------------------------------------------------------------------------
1 | package callbacks
2 |
3 | import "encoding/xml"
4 |
5 | // 自动生成的回调结构,按需修改, 生成方式: make callback doc=微信文档地址url
6 | // 文档: https://developer.work.weixin.qq.com/document/path/90375#语音消息
7 |
8 | func init() {
9 | // 添加可解析的回调事件
10 | supportCallback(Voice{})
11 | }
12 |
13 | type Voice struct {
14 | XMLName xml.Name `xml:"xml"`
15 | Text string `xml:",chardata"`
16 | ToUserName struct {
17 | Text string `xml:",chardata"`
18 | } `xml:"ToUserName"`
19 | FromUserName struct {
20 | Text string `xml:",chardata"`
21 | } `xml:"FromUserName"`
22 | CreateTime struct {
23 | Text string `xml:",chardata"`
24 | } `xml:"CreateTime"`
25 | MsgType struct {
26 | Text string `xml:",chardata"`
27 | } `xml:"MsgType"`
28 | MediaId struct {
29 | Text string `xml:",chardata"`
30 | } `xml:"MediaId"`
31 | Format struct {
32 | Text string `xml:",chardata"`
33 | } `xml:"Format"`
34 | MsgId struct {
35 | Text string `xml:",chardata"`
36 | } `xml:"MsgId"`
37 | AgentID struct {
38 | Text string `xml:",chardata"`
39 | } `xml:"AgentID"`
40 | }
41 |
42 | func (Voice) GetMessageType() string {
43 | return "voice"
44 | }
45 |
46 | func (Voice) GetEventType() string {
47 | return ""
48 | }
49 |
50 | func (Voice) GetChangeType() string {
51 | return ""
52 | }
53 |
54 | func (m Voice) GetTypeKey() string {
55 | return m.GetMessageType() + ":" + m.GetEventType() + ":" + m.GetChangeType()
56 | }
57 |
58 | func (Voice) ParseFromXml(data []byte) (CallBackExtraInfoInterface, error) {
59 | var temp Voice
60 | err := xml.Unmarshal(data, &temp)
61 | return temp, err
62 | }
63 |
--------------------------------------------------------------------------------
/demo/README.md:
--------------------------------------------------------------------------------
1 | ## sdk调用示例
2 |
3 | 1. 请先配置下 demo/config.go 的相关参数
4 | 2. 运行测试用例
5 |
6 | ```sh
7 | # 进入demo文件夹
8 | cd ./demo
9 |
10 | # 测试接收回调事件的相关代码
11 | go test -v -run=TestCallbackMain
12 |
13 | # 测试企微API调用的相关代码
14 | go test -v -run=TestApiMain
15 | ```
--------------------------------------------------------------------------------
/demo/api.go:
--------------------------------------------------------------------------------
1 | package demo
2 |
3 | import (
4 | "fmt"
5 | "github.com/zsmhub/workweixin"
6 | "github.com/zsmhub/workweixin/apis"
7 | )
8 |
9 | // 调用企微sdk示例
10 | func ApiMain() {
11 | if err := initApiHandler(); err != nil {
12 | fmt.Println(err)
13 | }
14 |
15 | // 调用企业授权信息sdk
16 | resp, err := workweixin.Sdk.ThirdAppClient.ExecGetAuthInfoService(apis.ReqGetAuthInfoService{
17 | AuthCorpid: TestAuthCorpId,
18 | PermanentCode: TestAuthCorpPermanentCode,
19 | })
20 | if err != nil {
21 | fmt.Println(err)
22 | return
23 | }
24 | fmt.Println(resp)
25 | }
26 |
27 | // 企微API客户端初始化
28 | func initApiHandler() error {
29 | // 初始化企微sdk参数
30 | workweixin.Sdk.InitOptions(apis.Options{
31 | DcsToken: DcsTokenByRedis{},
32 | DcsAppSuiteTicket: DcsAppSuiteTicketByRedis{},
33 | // GetThirdAppAuthCorpFunc: GetThirdAppAuthCorpToSdk,
34 | // GetCustomizedAppAuthCorpFunc: GetCustomizedAppAuthCorpToSdk,
35 | Logger: Logger{},
36 | })
37 |
38 | // 服务商API客户端初始化
39 | workweixin.Sdk.NewProviderApiClient(CorpId, CorpProviderSecret)
40 |
41 | // 第三方应用API客户端初始化
42 | suiteTicket := TestSuiteTicket
43 | workweixin.Sdk.NewThirdAppApiClient(CorpId, AppSuiteId, AppSuiteSecret, suiteTicket)
44 |
45 | // 自建应用代开发API客户端初始化
46 | // customizedTicket := "xxx"
47 | // workweixin.Sdk.NewCustomizedApiClient(CorpId, CustomizedAppSuiteId, CustomizedAppSuiteSecret, customizedTicket)
48 |
49 | return nil
50 | }
--------------------------------------------------------------------------------
/demo/api_test.go:
--------------------------------------------------------------------------------
1 | package demo
2 |
3 | import "testing"
4 |
5 | func TestApiMain(t *testing.T) {
6 | ApiMain()
7 | }
8 |
--------------------------------------------------------------------------------
/demo/callback_test.go:
--------------------------------------------------------------------------------
1 | package demo
2 |
3 | import "testing"
4 |
5 | func TestCallbackMain(t *testing.T) {
6 | CallbackMain()
7 | }
8 |
--------------------------------------------------------------------------------
/demo/config.go:
--------------------------------------------------------------------------------
1 | package demo
2 |
3 | // 企微配置文件
4 |
5 | // 企业微信服务商信息
6 | var (
7 | CorpId = "xxx" // 通用开发参数 >> CorpId
8 | CorpProviderSecret = "xxx" // 通用开发参数 >> ProviderSecret
9 | CorpCallbackToken = "xxx" // 通用开发参数 >> Token
10 | CorpCallbackEncodingAESKey = "xxx" // 通用开发参数 >> EncodingAESKey
11 | )
12 |
13 | // 企业微信第三方应用配置
14 | var (
15 | AppSuiteId = "xxx" // 唯一身份标识
16 | AppSuiteSecret = "xxx" // 调用身份密钥
17 | AppSuiteCallbackToken = "xxx" // 回调 token
18 | AppSuiteCallbackEncodingAESKey = "xxx" // 回调加解密 AES KEY
19 | )
20 |
21 | // 企业微信第三方小程序配置
22 | var (
23 | MiniSuiteId = "xxx" // 唯一身份标识
24 | MiniSuiteSecret = "xxx" // 调用身份密钥
25 | MiniSuiteCallbackToken = "xxx" // 回调 token
26 | MiniSuiteCallbackEncodingAESKey = "xxx" // 回调加解密 AES KEY
27 | )
28 |
29 | // 企业微信代开发配置
30 | var (
31 | CustomizedAppSuiteId = "xxx" // 代开发唯一身份标识
32 | CustomizedAppSuiteSecret = "xxx" // 代开发调用身份密钥
33 | CustomizedCallbackToken = "xxx" // 代开发回调 token
34 | CustomizedCallbackEncodingAESKey = "xxx" // 代开发回调加解密 AES KEY
35 | )
36 |
37 | // 调试数据配置
38 | var (
39 | TestSuiteTicket = "xxx" // suite_ticket,每10分钟刷新一次
40 | TestAuthCorpId = "xxx" // 授权企业corpid
41 | TestAuthCorpPermanentCode = "xxx" // 授权企业永久授权码
42 | TestAuthCorpAgentId = 1000001 // 授权企业agentid
43 | )
44 |
--------------------------------------------------------------------------------
/docs/代开发应用服务商操作流程.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zsmhub/workweixin/d1defb0ddc6dd5950a42875117de1a52c53f90dd/docs/代开发应用服务商操作流程.docx
--------------------------------------------------------------------------------
/docs/企业微信使用教程_1634259824876.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zsmhub/workweixin/d1defb0ddc6dd5950a42875117de1a52c53f90dd/docs/企业微信使用教程_1634259824876.pdf
--------------------------------------------------------------------------------
/docs/企业微信员工使用手册_1634259832138.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zsmhub/workweixin/d1defb0ddc6dd5950a42875117de1a52c53f90dd/docs/企业微信员工使用手册_1634259832138.pdf
--------------------------------------------------------------------------------
/docs/企业微信基础玩法_1635478371902.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zsmhub/workweixin/d1defb0ddc6dd5950a42875117de1a52c53f90dd/docs/企业微信基础玩法_1635478371902.pptx
--------------------------------------------------------------------------------
/docs/企业微信封号问题汇总.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zsmhub/workweixin/d1defb0ddc6dd5950a42875117de1a52c53f90dd/docs/企业微信封号问题汇总.docx
--------------------------------------------------------------------------------
/docs/企微接口调用许可.md:
--------------------------------------------------------------------------------
1 | # 企微平台接口调用许可官方说明
2 | https://open.work.weixin.qq.com/wwopen/policyDocument?uuid=hQH47EXznwhv9Nv7umThrb
3 |
4 | # 测试企业配置指引
5 | https://open.work.weixin.qq.com/wwopen/common/readDocument/38729
6 |
7 | # 以下是我梳理的一些内容
8 |
9 | ## 平台接口调用许可付费流程
10 | 1. 购买新激活账号流程:begin->下单购买账号API->管理员去服务商管理端发起支付(没有API)->获取订单中的帐号列表API->激活帐号API->end
11 | 2. 续费流程:begin->创建续期任务API->提交续期任务API->end【接口许可到期后,许可将失效,此时可调用API进行续期或重新为企业员工购买并激活新的许可帐号】
12 |
13 | ## 平台接口调用许可常见问题
14 | 1. 收费模式:对于新购买和扩容许可帐号,是按企业维度累进阶梯计费,即进行基础(互通)帐号新购和扩容时的阶梯起始帐号数为企业客户已激活的帐号中当前剩余使用时长≥购买时长的基础(互通)帐号数。对于续期接口许可,是按订单维度累计阶梯计费,每次续期时阶梯的计算不与其他已有订单累计。
15 | 2. 所有企业新授权的服务商应用,可免费调用企业微信接口90天。到期前7天,企业成员打开应用时,会在应用内进行相应提示;到期后,若应用无接口调用许可,则应用不可调用企业微信接口(不可调用说明),同时企业成员打开应用时也将展示对应的提示页面。
16 | 3. 历史授权第三方应用的企业,接口调用许可生效时间为 2022年10月8日0:00,在生效时间前企业可按照应用的试用策略继续试用;2022年5月16日0:00后授权的企业只有90天的接口免费调用期。
17 | 4. 上下游场景,服务商按上游企业主体购买接口调用许可,购买的接口许可帐号可同时在上游企业和下游企业使用。「todo 待确认流程」
18 | 5. 已激活的接口许可支持进行成员间的继承,支持在职继承和离职继承两种方式,其中在职继承30天后才可再次进行转接继承,离职继承不限制下次转接继承的时间间隔。
19 | 6. 企业安装了服务商的多个应用,需要为同一个成员购买多个接口调用许可吗?答:不需要,无论安装多少个应用,一个成员都只需要购买一个接口调用许可。
20 | 7. 未来待定功能:企微那边有计划做订单合并支付的能力,和预存预付的功能,上线时间待定。
--------------------------------------------------------------------------------
/docs/常见问题汇总.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zsmhub/workweixin/d1defb0ddc6dd5950a42875117de1a52c53f90dd/docs/常见问题汇总.docx
--------------------------------------------------------------------------------
/docs/管理端操作手册_1634259834379.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zsmhub/workweixin/d1defb0ddc6dd5950a42875117de1a52c53f90dd/docs/管理端操作手册_1634259834379.pdf
--------------------------------------------------------------------------------
/docs/通过企业微信经营私域流量.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zsmhub/workweixin/d1defb0ddc6dd5950a42875117de1a52c53f90dd/docs/通过企业微信经营私域流量.docx
--------------------------------------------------------------------------------
/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/zsmhub/workweixin
2 |
3 | go 1.18
4 |
5 | require (
6 | github.com/ChimeraCoder/gojson v1.1.0
7 | github.com/PuerkitoBio/goquery v1.7.1
8 | github.com/cenkalti/backoff/v4 v4.1.1
9 | github.com/go-redis/redis/v8 v8.10.0
10 | github.com/google/uuid v1.3.0
11 | github.com/iancoleman/strcase v0.2.0
12 | github.com/labstack/echo/v4 v4.1.16
13 | github.com/miku/zek v0.1.11
14 | github.com/pkg/errors v0.9.1
15 | github.com/valyala/fasthttp v1.26.0
16 | )
17 |
18 | require (
19 | github.com/andybalholm/brotli v1.0.2 // indirect
20 | github.com/andybalholm/cascadia v1.2.0 // indirect
21 | github.com/cespare/xxhash/v2 v2.1.1 // indirect
22 | github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
23 | github.com/klauspost/compress v1.12.2 // indirect
24 | github.com/labstack/gommon v0.3.0 // indirect
25 | github.com/mattn/go-colorable v0.1.6 // indirect
26 | github.com/mattn/go-isatty v0.0.12 // indirect
27 | github.com/valyala/bytebufferpool v1.0.0 // indirect
28 | github.com/valyala/fasttemplate v1.1.0 // indirect
29 | go.opentelemetry.io/otel v0.20.0 // indirect
30 | go.opentelemetry.io/otel/metric v0.20.0 // indirect
31 | go.opentelemetry.io/otel/trace v0.20.0 // indirect
32 | golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a // indirect
33 | golang.org/x/net v0.0.0-20210614182718-04defd469f4e // indirect
34 | golang.org/x/sys v0.0.0-20210514084401-e8d321eab015 // indirect
35 | golang.org/x/text v0.3.6 // indirect
36 | gopkg.in/yaml.v2 v2.3.0 // indirect
37 | )
38 |
--------------------------------------------------------------------------------
/internal/README.md:
--------------------------------------------------------------------------------
1 | ### 消息加解密库
--------------------------------------------------------------------------------
/internal/encryptor/pkcs7/mod.go:
--------------------------------------------------------------------------------
1 | package pkcs7
2 |
3 | func Pad(x []byte) []byte {
4 | numPadBytes := 32 - len(x)%32
5 | padByte := byte(numPadBytes)
6 | tmp := make([]byte, len(x)+numPadBytes)
7 | copy(tmp, x)
8 | for i := 0; i < numPadBytes; i++ {
9 | tmp[len(x)+i] = padByte
10 | }
11 | return tmp
12 | }
13 |
14 | func Unpad(x []byte) []byte {
15 | // last byte is number of suffix bytes to remove
16 | n := int(x[len(x)-1])
17 | return x[:len(x)-n]
18 | }
19 |
--------------------------------------------------------------------------------
/internal/envelope/ctor_options.go:
--------------------------------------------------------------------------------
1 | package envelope
2 |
3 | import (
4 | "io"
5 | )
6 |
7 | type ProcessorOption interface {
8 | applyTo(x *Processor)
9 | }
10 |
11 | type customEntropySource struct {
12 | inner io.Reader
13 | }
14 |
15 | func WithEntropySource(e io.Reader) ProcessorOption {
16 | return &customEntropySource{inner: e}
17 | }
18 |
19 | func (o *customEntropySource) applyTo(x *Processor) {
20 | x.entropySource = o.inner
21 | }
22 |
23 | type customTimeSource struct {
24 | inner TimeSource
25 | }
26 |
27 | func WithTimeSource(t TimeSource) ProcessorOption {
28 | return &customTimeSource{inner: t}
29 | }
30 |
31 | func (o *customTimeSource) applyTo(x *Processor) {
32 | x.timeSource = o.inner
33 | }
34 |
--------------------------------------------------------------------------------
/internal/envelope/models.go:
--------------------------------------------------------------------------------
1 | package envelope
2 |
3 | import (
4 | "encoding/xml"
5 | )
6 |
7 | type xmlRxEnvelope struct {
8 | ToUserName string `xml:"ToUserName"`
9 | AgentID string `xml:"AppAgentId"`
10 | Encrypt string `xml:"Encrypt"`
11 | }
12 |
13 | type cdataNode struct {
14 | CData string `xml:",cdata"`
15 | }
16 |
17 | type xmlTxEnvelope struct {
18 | XMLName xml.Name `xml:"xml"`
19 | Encrypt cdataNode `xml:"Encrypt"`
20 | MsgSignature cdataNode `xml:"MsgSignature"`
21 | Timestamp int64 `xml:"Timestamp"`
22 | Nonce cdataNode `xml:"Nonce"`
23 | }
24 |
25 | type Envelope struct {
26 | ToUserName string
27 | AgentID string
28 | Msg []byte
29 | ReceiveID []byte
30 | }
31 |
--------------------------------------------------------------------------------
/internal/envelope/time_source.go:
--------------------------------------------------------------------------------
1 | package envelope
2 |
3 | import (
4 | "time"
5 | )
6 |
7 | type TimeSource interface {
8 | GetCurrentTimestamp() time.Time
9 | }
10 |
11 | type DefaultTimeSource struct{}
12 |
13 | var _ TimeSource = DefaultTimeSource{}
14 |
15 | func (DefaultTimeSource) GetCurrentTimestamp() time.Time {
16 | return time.Now()
17 | }
18 |
--------------------------------------------------------------------------------