From 588fffecb3e7ab2670ca3fb8829c8f95d9cdb1a7 Mon Sep 17 00:00:00 2001 From: rudy <40810931+chenyutaoa@users.noreply.github.com> Date: Wed, 17 Aug 2022 15:52:44 +0800 Subject: [PATCH] fix code style --- apis.md.go | 4 +- docs/apis.md | 4 +- docs/external_contact.md | 12 ++-- external_contact.go | 54 ++++++++-------- external_contact.md.go | 25 ++++---- models.go | 22 +++---- rx_msg_test.go | 130 +++++++++------------------------------ 7 files changed, 89 insertions(+), 162 deletions(-) diff --git a/apis.md.go b/apis.md.go index 41b2cbc..7ffccb6 100644 --- a/apis.md.go +++ b/apis.md.go @@ -605,7 +605,7 @@ func (c *WorkwxApp) execCloseTempChatExternalContact(req reqCloseTempChatExterna } // execTransferCustomer 在职继承 分配在职成员的客户 -func (c *WorkwxApp) execTransferCustomer(req reqTransferCostomer) (respTransferCustomer, error) { +func (c *WorkwxApp) execTransferCustomer(req reqTransferCustomer) (respTransferCustomer, error) { var resp respTransferCustomer err := c.executeQyapiJSONPost("/cgi-bin/externalcontact/transfer_customer", req, &resp, true) if err != nil { @@ -633,7 +633,7 @@ func (c *WorkwxApp) execGetTransferCustomerResult(req reqGetTransferCustomerResu } // execTransferResignedCustomer 离职继承 分配离职成员的客户 -func (c *WorkwxApp) execTransferResignedCustomer(req reqTransferCostomer) (respTransferCustomer, error) { +func (c *WorkwxApp) execTransferResignedCustomer(req reqTransferCustomer) (respTransferCustomer, error) { var resp respTransferCustomer err := c.executeQyapiJSONPost("/cgi-bin/externalcontact/resigned/transfer_customer", req, &resp, true) if err != nil { diff --git a/docs/apis.md b/docs/apis.md index 3d5673e..66f5362 100644 --- a/docs/apis.md +++ b/docs/apis.md @@ -200,7 +200,7 @@ Name|Request Type|Response Type|Access Token|URL|Doc Name|Request Type|Response Type|Access Token|URL|Doc :---|------------|-------------|------------|:--|:-- -`execTransferCustomer`|`reqTransferCostomer`|`respTransferCustomer`|+|`POST /cgi-bin/externalcontact/transfer_customer`|[在职继承 分配在职成员的客户](https://developer.work.weixin.qq.com/document/path/92125) +`execTransferCustomer`|`reqTransferCustomer`|`respTransferCustomer`|+|`POST /cgi-bin/externalcontact/transfer_customer`|[在职继承 分配在职成员的客户](https://developer.work.weixin.qq.com/document/path/92125) `execGetTransferCustomerResult`|`reqGetTransferCustomerResult`|`respGetTransferCustomerResult`|+|`POST /cgi-bin/externalcontact/transfer_result`|[在职继承 查询客户接替状态](https://developer.work.weixin.qq.com/document/path/94088) # 离职继承 @@ -209,5 +209,5 @@ Name|Request Type|Response Type|Access Token|URL|Doc Name|Request Type|Response Type|Access Token|URL|Doc :---|------------|-------------|------------|:--|:-- -`execTransferResignedCustomer`|`reqTransferCostomer`|`respTransferCustomer`|+|`POST /cgi-bin/externalcontact/resigned/transfer_customer`|[离职继承 分配离职成员的客户](https://developer.work.weixin.qq.com/document/path/94081) +`execTransferResignedCustomer`|`reqTransferCustomer`|`respTransferCustomer`|+|`POST /cgi-bin/externalcontact/resigned/transfer_customer`|[离职继承 分配离职成员的客户](https://developer.work.weixin.qq.com/document/path/94081) `execGetTransferResignedCustomerResult`|`reqGetTransferCustomerResult`|`respGetTransferCustomerResult`|+|`POST /cgi-bin/externalcontact/resigned/transfer_result`|[离职继承 查询客户接替状态](https://developer.work.weixin.qq.com/document/path/94082) diff --git a/docs/external_contact.md b/docs/external_contact.md index eb67241..ffe2362 100644 --- a/docs/external_contact.md +++ b/docs/external_contact.md @@ -251,7 +251,7 @@ Name|JSON|Type|Doc `IsTemp`|`is_temp`|`bool`| 是否临时会话模式,true表示使用临时会话模式,默认为false `ExpiresIn`|`expires_in`|`int`| 临时会话二维码有效期,以秒为单位。该参数仅在is_temp为true时有效,默认7天,最多为14天 `ChatExpiresIn`|`chat_expires_in`|`int`| 临时会话有效期,以秒为单位。该参数仅在is_temp为true时有效,默认为添加好友后24小时,最多为14天 -`Unionid`|`unionid`|`string`| 可进行临时会话的客户unionid,该参数仅在is_temp为true时有效,如不指定则不进行限制 +`UnionID`|`unionid`|`string`| 可进行临时会话的客户UnionID,该参数仅在is_temp为true时有效,如不指定则不进行限制 `Conclusions`|`conclusions`|`Conclusions`| 结束语,会话结束时自动发送给客户,可参考“结束语定义”,仅在is_temp为true时有效, ### `Conclusions` 结束语,会话结束时自动发送给客户 @@ -261,7 +261,7 @@ Name|JSON|Type|Doc `Text`|`text`|`Text`| 文本消息 `Image`|`image`|`Image`| 图片 `Link`|`link`|`Link`| 链接 -`Miniprogram`|`miniprogram`|`Miniprogram`| 小程序 +`MiniProgram`|`miniprogram`|`MiniProgram`| 小程序 ### `Text` 结束语,会话结束时自动发送给客户 @@ -285,13 +285,13 @@ Name|JSON|Type|Doc `Desc`|`desc`|`string`| 图文消息的描述,最长为512字节 `URL`|`url`|`string`| 图文消息的链接 -### `Miniprogram` 结束语,会话结束时自动发送给客户 +### `MiniProgram` 结束语,会话结束时自动发送给客户 Name|JSON|Type|Doc :---|:---|:---|:-- `Title`|`title`|`string`| 小程序消息标题,最长为64字节 `PicMediaID`|`pic_media_id`|`string`| 小程序消息封面的mediaid,封面图建议尺寸为520*416 -`Appid`|`appid`|`string`| 小程序appid,必须是关联到企业的小程序应用 +`AppID`|`appid`|`string`| 小程序appid,必须是关联到企业的小程序应用 `Page`|`page`|`string`| 小程序page路径 ### `reqListContactWayExternalContact` 获取企业已配置的「联系我」列表请求参数 @@ -307,7 +307,7 @@ Name|JSON|Type|Doc Name|JSON|Type|Doc :---|:---|:---|:-- -`ConfigId`|`config_id`|`string`| 企业联系方式的配置id +`ConfigID`|`config_id`|`string`| 企业联系方式的配置id `Remark`|`remark`|`string`| 联系方式的备注信息,不超过30个字符,将覆盖之前的备注 `SkipVerify`|`skip_verify`|`bool`| 外部客户添加时是否无需验证 `Style`|`style`|`int`| 样式,只针对“在小程序中联系”的配置生效 @@ -316,5 +316,5 @@ Name|JSON|Type|Doc `Party`|`party`|`[]int`| 使用该联系方式的部门id列表,只在type为2时有效 `ExpiresIn`|`expires_in`|`int`| 临时会话二维码有效期,以秒为单位。该参数仅在is_temp为true时有效,默认7天,最多为14天 `ChatExpiresIn`|`chat_expires_in`|`int`| 临时会话有效期,以秒为单位。该参数仅在is_temp为true时有效,默认为添加好友后24小时,最多为14天 -`Unionid`|`unionid`|`string`| 可进行临时会话的客户unionid,该参数仅在is_temp为true时有效,如不指定则不进行限制 +`UnionID`|`unionid`|`string`| 可进行临时会话的客户UnionID,该参数仅在is_temp为true时有效,如不指定则不进行限制 `Conclusions`|`conclusions`|`Conclusions`| 结束语,会话结束时自动发送给客户,可参考“结束语定义”,仅在is_temp为true时有效, diff --git a/external_contact.go b/external_contact.go index c3370ab..d5a2f51 100644 --- a/external_contact.go +++ b/external_contact.go @@ -156,8 +156,8 @@ func (c *WorkwxApp) GetTransferExternalContactResult(externalUserID, handoverUse return &externalContactTransferResult, nil } -// TransferGroupChatExternalContact 离职成员的群再分配 -func (c *WorkwxApp) TransferGroupChatExternalContact(chatIDList []string, newOwner string) ([]ExternalContactGroupChatTransferFailed, error) { +// ExternalContactTransferGroupChat 离职成员的群再分配 +func (c *WorkwxApp) ExternalContactTransferGroupChat(chatIDList []string, newOwner string) ([]ExternalContactGroupChatTransferFailed, error) { resp, err := c.execTransferGroupChatExternalContact(reqTransferGroupChatExternalContact{ ChatIDList: chatIDList, NewOwner: newOwner, @@ -172,7 +172,7 @@ func (c *WorkwxApp) TransferGroupChatExternalContact(chatIDList []string, newOwn // 一次最多转移100个客户 // 为保障客户服务体验,90个自然日内,在职成员的每位客户仅可被转接2次 func (c *WorkwxApp) TransferCustomer(handoverUserId, takeoverUserId string, externalUserIds []string) (TransferCustomerResult, error) { - resp, err := c.execTransferCustomer(reqTransferCostomer{ + resp, err := c.execTransferCustomer(reqTransferCustomer{ HandoverUserid: handoverUserId, TakeoverUserid: takeoverUserId, ExternalUserid: externalUserIds, @@ -205,8 +205,8 @@ func (c *WorkwxApp) GetTransferCustomerResult(handoverUserId, takeoverUserId, cu type CustomerTransferResult struct { Customer []struct { - // ExternalUserid 转接客户的外部联系人userid - ExternalUserid string `json:"external_userid"` + // ExternalUserID 转接客户的外部联系人userid + ExternalUserID string `json:"external_userid"` // Status 接替状态, 1-接替完毕 2-等待接替 3-客户拒绝 4-接替成员客户达到上限 5-无接替记录 Status int `json:"status"` // TakeoverTime 接替客户的时间,如果是等待接替状态,则为未来的自动接替时间 @@ -216,10 +216,10 @@ type CustomerTransferResult struct { NextCursor string `json:"next_cursor"` } -// TransferResignedCustomer 离职继承 分配离职成员的客户 +// ResignedTransferCustomer 离职继承 分配离职成员的客户 // 一次最多转移100个客户 -func (c *WorkwxApp) TransferResignedCustomer(handoverUserId, takeoverUserId string, externalUserIds []string) (TransferCustomerResult, error) { - resp, err := c.execTransferResignedCustomer(reqTransferCostomer{ +func (c *WorkwxApp) ResignedTransferCustomer(handoverUserId, takeoverUserId string, externalUserIds []string) (TransferCustomerResult, error) { + resp, err := c.execTransferResignedCustomer(reqTransferCustomer{ HandoverUserid: handoverUserId, TakeoverUserid: takeoverUserId, ExternalUserid: externalUserIds, @@ -243,8 +243,8 @@ func (c *WorkwxApp) GetTransferResignedCustomerResult(handoverUserId, takeoverUs return &result, nil } -// ListFollowUserExternalContact 获取配置了客户联系功能的成员列表 -func (c *WorkwxApp) ListFollowUserExternalContact() (*ExternalContactFollowUserList, error) { +// ExternalContactListFollowUser 获取配置了客户联系功能的成员列表 +func (c *WorkwxApp) ExternalContactListFollowUser() (*ExternalContactFollowUserList, error) { resp, err := c.execListFollowUserExternalContact(reqListFollowUserExternalContact{}) if err != nil { return nil, err @@ -253,8 +253,8 @@ func (c *WorkwxApp) ListFollowUserExternalContact() (*ExternalContactFollowUserL return &resp.ExternalContactFollowUserList, nil } -// AddContactExternalContact 配置客户联系「联系我」方式 -func (c *WorkwxApp) AddContactExternalContact(t int, scene int, style int, remark string, skipVerify bool, state string, user []string, party []int, isTemp bool, expiresIn int, chatExpiresIn int, unionid string, conclusions Conclusions) (*AddContactExternalContact, error) { +// ExternalContactAddContact 配置客户联系「联系我」方式 +func (c *WorkwxApp) ExternalContactAddContact(t int, scene int, style int, remark string, skipVerify bool, state string, user []string, party []int, isTemp bool, expiresIn int, chatExpiresIn int, unionID string, conclusions Conclusions) (*ExternalContactAddContact, error) { resp, err := c.execAddContactExternalContact( reqAddContactExternalContact{ ExternalContactWay{ @@ -269,7 +269,7 @@ func (c *WorkwxApp) AddContactExternalContact(t int, scene int, style int, remar IsTemp: isTemp, ExpiresIn: expiresIn, ChatExpiresIn: chatExpiresIn, - Unionid: unionid, + UnionID: unionID, Conclusions: conclusions, }, }) @@ -277,11 +277,11 @@ func (c *WorkwxApp) AddContactExternalContact(t int, scene int, style int, remar return nil, err } - return &resp.AddContactExternalContact, nil + return &resp.ExternalContactAddContact, nil } -// GetContactWayExternalContact 获取企业已配置的「联系我」方式 -func (c *WorkwxApp) GetContactWayExternalContact(configID string) (*ContactWayExternalContact, error) { +// ExternalContactGetContactWay 获取企业已配置的「联系我」方式 +func (c *WorkwxApp) ExternalContactGetContactWay(configID string) (*ExternalContactContactWay, error) { resp, err := c.execGetContactWayExternalContact(reqGetContactWayExternalContact{ConfigID: configID}) if err != nil { return nil, err @@ -290,8 +290,8 @@ func (c *WorkwxApp) GetContactWayExternalContact(configID string) (*ContactWayEx return &resp.ContactWay, nil } -// ListContactWayChatExternalContact 获取企业已配置的「联系我」列表 -func (c *WorkwxApp) ListContactWayChatExternalContact(startTime int, endTime int, cursor string, limit int) (*ListContactWayChatExternalContact, error) { +// ExternalContactListContactWayChat 获取企业已配置的「联系我」列表 +func (c *WorkwxApp) ExternalContactListContactWayChat(startTime int, endTime int, cursor string, limit int) (*ExternalContactListContactWayChat, error) { resp, err := c.execListContactWayChatExternalContact(reqListContactWayExternalContact{ StartTime: startTime, EndTime: endTime, @@ -302,13 +302,13 @@ func (c *WorkwxApp) ListContactWayChatExternalContact(startTime int, endTime int return nil, err } - return &resp.ListContactWayChatExternalContact, nil + return &resp.ExternalContactListContactWayChat, nil } -// UpdateContactWayExternalContact 更新企业已配置的「联系我」成员配置 -func (c *WorkwxApp) UpdateContactWayExternalContact(configId string, remark string, skipVerify bool, style int, state string, user []string, party []int, expiresIn int, chatExpiresIn int, unionid string, conclusions Conclusions) error { +// ExternalContactUpdateContactWay 更新企业已配置的「联系我」成员配置 +func (c *WorkwxApp) ExternalContactUpdateContactWay(configId string, remark string, skipVerify bool, style int, state string, user []string, party []int, expiresIn int, chatExpiresIn int, unionid string, conclusions Conclusions) error { _, err := c.execUpdateContactWayExternalContact(reqUpdateContactWayExternalContact{ - ConfigId: configId, + ConfigID: configId, Remark: remark, SkipVerify: skipVerify, Style: style, @@ -317,22 +317,22 @@ func (c *WorkwxApp) UpdateContactWayExternalContact(configId string, remark stri Party: party, ExpiresIn: expiresIn, ChatExpiresIn: chatExpiresIn, - Unionid: unionid, + UnionID: unionid, Conclusions: conclusions, }) return err } -// DelContactWayExternalContact 删除企业已配置的「联系我」方式 -func (c *WorkwxApp) DelContactWayExternalContact(configID string) error { +// ExternalContactDelContactWay 删除企业已配置的「联系我」方式 +func (c *WorkwxApp) ExternalContactDelContactWay(configID string) error { _, err := c.execDelContactWayExternalContact(reqDelContactWayExternalContact{ConfigID: configID}) return err } -// CloseTempChatExternalContact 结束临时会话 -func (c *WorkwxApp) CloseTempChatExternalContact(userID, externalUserID string) error { +// ExternalContactCloseTempChat 结束临时会话 +func (c *WorkwxApp) ExternalContactCloseTempChat(userID, externalUserID string) error { _, err := c.execCloseTempChatExternalContact(reqCloseTempChatExternalContact{ UserID: userID, ExternalUserID: externalUserID, diff --git a/external_contact.md.go b/external_contact.md.go index d0ce9fe..c89a81d 100644 --- a/external_contact.md.go +++ b/external_contact.md.go @@ -302,8 +302,8 @@ type ExternalContactWay struct { ExpiresIn int `json:"expires_in"` // ChatExpiresIn 临时会话有效期,以秒为单位。该参数仅在is_temp为true时有效,默认为添加好友后24小时,最多为14天 ChatExpiresIn int `json:"chat_expires_in"` - // Unionid 可进行临时会话的客户unionid,该参数仅在is_temp为true时有效,如不指定则不进行限制 - Unionid string `json:"unionid"` + // UnionID 可进行临时会话的客户UnionID,该参数仅在is_temp为true时有效,如不指定则不进行限制 + UnionID string `json:"unionid"` // Conclusions 结束语,会话结束时自动发送给客户,可参考“结束语定义”,仅在is_temp为true时有效,https://developer.work.weixin.qq.com/document/path/92572#%E7%BB%93%E6%9D%9F%E8%AF%AD%E5%AE%9A%E4%B9%89 Conclusions Conclusions `json:"conclusions"` } @@ -316,8 +316,8 @@ type Conclusions struct { Image Image `json:"image"` // Link 链接 Link Link `json:"link"` - // Miniprogram 小程序 - Miniprogram Miniprogram `json:"miniprogram"` + // MiniProgram 小程序 + MiniProgram MiniProgram `json:"miniprogram"` } // Text 结束语,会话结束时自动发送给客户 @@ -346,14 +346,14 @@ type Link struct { URL string `json:"url"` } -// Miniprogram 结束语,会话结束时自动发送给客户 -type Miniprogram struct { +// MiniProgram 结束语,会话结束时自动发送给客户 +type MiniProgram struct { // Title 小程序消息标题,最长为64字节 Title string `json:"title"` // PicMediaID 小程序消息封面的mediaid,封面图建议尺寸为520*416 PicMediaID string `json:"pic_media_id"` - // Appid 小程序appid,必须是关联到企业的小程序应用 - Appid string `json:"appid"` + // AppID 小程序appid,必须是关联到企业的小程序应用 + AppID string `json:"appid"` // Page 小程序page路径 Page string `json:"page"` } @@ -372,8 +372,8 @@ type reqListContactWayExternalContact struct { // reqUpdateContactWayExternalContact 更新企业已配置的「联系我」方式请求参数 type reqUpdateContactWayExternalContact struct { - // ConfigId 企业联系方式的配置id - ConfigId string `json:"config_id"` + // ConfigID 企业联系方式的配置id + ConfigID string `json:"config_id"` // Remark 联系方式的备注信息,不超过30个字符,将覆盖之前的备注 Remark string `json:"remark"` // SkipVerify 外部客户添加时是否无需验证 @@ -390,9 +390,8 @@ type reqUpdateContactWayExternalContact struct { ExpiresIn int `json:"expires_in"` // ChatExpiresIn 临时会话有效期,以秒为单位。该参数仅在is_temp为true时有效,默认为添加好友后24小时,最多为14天 ChatExpiresIn int `json:"chat_expires_in"` - // Unionid 可进行临时会话的客户unionid,该参数仅在is_temp为true时有效,如不指定则不进行限制 - Unionid string `json:"unionid"` + // UnionID 可进行临时会话的客户UnionID,该参数仅在is_temp为true时有效,如不指定则不进行限制 + UnionID string `json:"unionid"` // Conclusions 结束语,会话结束时自动发送给客户,可参考“结束语定义”,仅在is_temp为true时有效,https://developer.work.weixin.qq.com/document/path/92572#%E7%BB%93%E6%9D%9F%E8%AF%AD%E5%AE%9A%E4%B9%89 Conclusions Conclusions `json:"conclusions"` } - diff --git a/models.go b/models.go index 3f7e1da..566a2e0 100644 --- a/models.go +++ b/models.go @@ -993,7 +993,7 @@ type TaskCardBtn struct { IsBold bool `json:"is_bold"` } -type reqTransferCostomer struct { +type reqTransferCustomer struct { // HandoverUserid 原跟进成员的userid HandoverUserid string `json:"handover_userid"` // TakeoverUserid 接替成员的userid @@ -1004,9 +1004,9 @@ type reqTransferCostomer struct { TransferSuccessMsg string `json:"transfer_success_msg"` } -var _ bodyer = reqTransferCostomer{} +var _ bodyer = reqTransferCustomer{} -func (x reqTransferCostomer) intoBody() ([]byte, error) { +func (x reqTransferCustomer) intoBody() ([]byte, error) { result, err := json.Marshal(x) if err != nil { return nil, err @@ -1052,8 +1052,8 @@ func (x reqGetTransferCustomerResult) intoBody() ([]byte, error) { type respGetTransferCustomerResult struct { respCommon Customer []struct { - // ExternalUserid 转接客户的外部联系人userid - ExternalUserid string `json:"external_userid"` + // ExternalUserID 转接客户的外部联系人userid + ExternalUserID string `json:"external_userid"` // Status 接替状态, 1-接替完毕 2-等待接替 3-客户拒绝 4-接替成员客户达到上限 5-无接替记录 Status int `json:"status"` // TakeoverTime 接替客户的时间,如果是等待接替状态,则为未来的自动接替时间 @@ -1100,10 +1100,10 @@ func (x reqAddContactExternalContact) intoBody() ([]byte, error) { type respAddContactExternalContact struct { respCommon - AddContactExternalContact + ExternalContactAddContact } -type AddContactExternalContact struct { +type ExternalContactAddContact struct { ConfigID string `json:"config_id"` QRCode string `json:"qr_code"` } @@ -1124,10 +1124,10 @@ func (x reqGetContactWayExternalContact) intoBody() ([]byte, error) { type respGetContactWayExternalContact struct { respCommon - ContactWay ContactWayExternalContact `json:"contact_way"` + ContactWay ExternalContactContactWay `json:"contact_way"` } -type ContactWayExternalContact struct { +type ExternalContactContactWay struct { ConfigID string `json:"config_id"` QRCode string `json:"qr_code"` ExternalContactWay @@ -1145,10 +1145,10 @@ func (x reqListContactWayExternalContact) intoBody() ([]byte, error) { type respListContactWayChatExternalContact struct { respCommon - ListContactWayChatExternalContact + ExternalContactListContactWayChat } -type ListContactWayChatExternalContact struct { +type ExternalContactListContactWayChat struct { NextCursor string `json:"next_cursor"` ContactWay []contactWay `json:"contact_way"` } diff --git a/rx_msg_test.go b/rx_msg_test.go index 36f3281..092681d 100644 --- a/rx_msg_test.go +++ b/rx_msg_test.go @@ -94,108 +94,36 @@ func TestRxMessageEventEditExternalContact(t *testing.T) { } func TestRxMessageChangeContactUpdateUser(t *testing.T) { - body := []byte(` - - - 1403610513 - - - update_user - - - - - 1 - - - 13800000000 - 1 - - 1 - - - -
- - - - 0 - - - - - - - 1 - - <![CDATA[企业微信]]> - - - - -
`) - msg, err := fromEnvelope(body) - if err != nil { - t.Error(err) - return - } - y, ok := msg.EventChangeTypeUpdateUser() - if !ok { - t.Error(err) - return - } - t.Logf("%#v\n", y) + c.Convey("解析接收的 XML 消息体", t, func() { + c.Convey("更新成员事件", func() { + body := []byte(" 1403610513update_user11380000000011
01<![CDATA[企业微信]]>
") + + msg, err := fromEnvelope(body) + c.So(err, c.ShouldBeNil) + + { + y, ok := msg.EventChangeTypeUpdateUser() + c.So(ok, c.ShouldBeTrue) + c.So(y, c.ShouldNotBeNil) + } + }) + }) + } func TestRxMessageChangeContactCreateUser(t *testing.T) { - body := []byte(` - - - 1403610513 - - - create_user - - - - 1 - - - 13800000000 - 1 - - 1 - - - -
- - - - 0 - - - - - - - 1 - - <![CDATA[企业微信]]> - - - - -
`) - msg, err := fromEnvelope(body) - if err != nil { - t.Error(err) - return - } - y, ok := msg.EventChangeTypeCreateUser() - if !ok { - t.Error(err) - return - } - t.Logf("%#v\n", y) + c.Convey("解析接收的 XML 消息体", t, func() { + c.Convey("更新成员事件", func() { + body := []byte(" 1403610513create_user11380000000011
01<![CDATA[企业微信]]>
") + + msg, err := fromEnvelope(body) + c.So(err, c.ShouldBeNil) + + { + y, ok := msg.EventChangeTypeCreateUser() + c.So(ok, c.ShouldBeTrue) + c.So(y, c.ShouldNotBeNil) + } + }) + }) }