| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- package externalcontact
- import (
- "fmt"
- "github.com/silenceper/wechat/v2/util"
- )
- const (
- // AddContactWayURL 配置客户联系「联系我」方式
- AddContactWayURL = "https://qyapi.weixin.qq.com/cgi-bin/externalcontact/add_contact_way?access_token=%s"
- // GetContactWayURL 获取企业已配置的「联系我」方式
- GetContactWayURL = "https://qyapi.weixin.qq.com/cgi-bin/externalcontact/get_contact_way?access_token=%s"
- // UpdateContactWayURL 更新企业已配置的「联系我」方式
- UpdateContactWayURL = "https://qyapi.weixin.qq.com/cgi-bin/externalcontact/update_contact_way?access_token=%s"
- )
- type (
- // ConclusionsRequest 结束语请求
- ConclusionsRequest struct {
- Text ConclusionsText `json:"text"`
- Image ConclusionsImageRequest `json:"image"`
- Link ConclusionsLink `json:"link"`
- MiniProgram ConclusionsMiniProgram `json:"miniprogram"`
- }
- // ConclusionsText 文本格式结束语
- ConclusionsText struct {
- Content string `json:"content"`
- }
- // ConclusionsImageRequest 图片格式结束语请求
- ConclusionsImageRequest struct {
- MediaID string `json:"media_id"`
- }
- // ConclusionsLink 链接格式结束语
- ConclusionsLink struct {
- Title string `json:"title"`
- PicURL string `json:"picurl"`
- Desc string `json:"desc"`
- URL string `json:"url"`
- }
- // ConclusionsMiniProgram 小程序格式结束语
- ConclusionsMiniProgram struct {
- Title string `json:"title"`
- PicMediaID string `json:"pic_media_id"`
- AppID string `json:"appid"`
- Page string `json:"page"`
- }
- // ConclusionsResponse 结束语响应
- ConclusionsResponse struct {
- Text ConclusionsText `json:"text"`
- Image ConclusionsImageResponse `json:"image"`
- Link ConclusionsLink `json:"link"`
- MiniProgram ConclusionsMiniProgram `json:"miniprogram"`
- }
- // ConclusionsImageResponse 图片格式结束语响应
- ConclusionsImageResponse struct {
- PicURL string `json:"pic_url"`
- }
- )
- type (
- // AddContactWayRequest 配置客户联系「联系我」方式请求
- AddContactWayRequest struct {
- Type int `json:"type"`
- Scene int `json:"scene"`
- Style int `json:"style"`
- Remark string `json:"remark"`
- SkipVerify bool `json:"skip_verify"`
- State string `json:"state"`
- User []string `json:"user"`
- Party []int `json:"party"`
- IsTemp bool `json:"is_temp"`
- ExpiresIn int `json:"expires_in"`
- ChatExpiresIn int `json:"chat_expires_in"`
- UnionID string `json:"unionid"`
- Conclusions ConclusionsRequest `json:"conclusions"`
- }
- // AddContactWayResponse 配置客户联系「联系我」方式响应
- AddContactWayResponse struct {
- util.CommonError
- ConfigID string `json:"config_id"`
- QrCode string `json:"qr_code"`
- }
- )
- // AddContactWay 配置客户联系「联系我」方式
- // see https://developer.work.weixin.qq.com/document/path/92228
- func (r *Client) AddContactWay(req *AddContactWayRequest) (*AddContactWayResponse, error) {
- var (
- accessToken string
- err error
- )
- if accessToken, err = r.GetAccessToken(); err != nil {
- return nil, err
- }
- var response []byte
- if response, err = util.PostJSON(fmt.Sprintf(AddContactWayURL, accessToken), req); err != nil {
- return nil, err
- }
- result := &AddContactWayResponse{}
- if err = util.DecodeWithError(response, result, "AddContactWay"); err != nil {
- return nil, err
- }
- return result, nil
- }
- type (
- // GetContactWayRequest 获取企业已配置的「联系我」方式请求
- GetContactWayRequest struct {
- ConfigID string `json:"config_id"`
- }
- // GetContactWayResponse 获取企业已配置的「联系我」方式响应
- GetContactWayResponse struct {
- util.CommonError
- ContactWay ContactWay `json:"contact_way"`
- }
- // ContactWay 「联系我」配置
- ContactWay struct {
- ConfigID string `json:"config_id"`
- Type int `json:"type"`
- Scene int `json:"scene"`
- Style int `json:"style"`
- Remark string `json:"remark"`
- SkipVerify bool `json:"skip_verify"`
- State string `json:"state"`
- QrCode string `json:"qr_code"`
- User []string `json:"user"`
- Party []int `json:"party"`
- IsTemp bool `json:"is_temp"`
- ExpiresIn int `json:"expires_in"`
- ChatExpiresIn int `json:"chat_expires_in"`
- UnionID string `json:"unionid"`
- Conclusions ConclusionsResponse `json:"conclusions"`
- }
- )
- // GetContactWay 获取企业已配置的「联系我」方式
- // see https://developer.work.weixin.qq.com/document/path/92228
- func (r *Client) GetContactWay(req *GetContactWayRequest) (*GetContactWayResponse, error) {
- var (
- accessToken string
- err error
- )
- if accessToken, err = r.GetAccessToken(); err != nil {
- return nil, err
- }
- var response []byte
- if response, err = util.PostJSON(fmt.Sprintf(GetContactWayURL, accessToken), req); err != nil {
- return nil, err
- }
- result := &GetContactWayResponse{}
- if err = util.DecodeWithError(response, result, "GetContactWay"); err != nil {
- return nil, err
- }
- return result, nil
- }
- type (
- // UpdateContactWayRequest 更新企业已配置的「联系我」方式请求
- UpdateContactWayRequest struct {
- ConfigID string `json:"config_id"`
- Remark string `json:"remark"`
- SkipVerify bool `json:"skip_verify"`
- Style int `json:"style"`
- State string `json:"state"`
- User []string `json:"user"`
- Party []int `json:"party"`
- ExpiresIn int `json:"expires_in"`
- ChatExpiresIn int `json:"chat_expires_in"`
- UnionID string `json:"unionid"`
- Conclusions ConclusionsRequest `json:"conclusions"`
- }
- // UpdateContactWayResponse 更新企业已配置的「联系我」方式响应
- UpdateContactWayResponse struct {
- util.CommonError
- }
- )
- // UpdateContactWay 更新企业已配置的「联系我」方式
- // see https://developer.work.weixin.qq.com/document/path/92228
- func (r *Client) UpdateContactWay(req *UpdateContactWayRequest) (*UpdateContactWayResponse, error) {
- var (
- accessToken string
- err error
- )
- if accessToken, err = r.GetAccessToken(); err != nil {
- return nil, err
- }
- var response []byte
- if response, err = util.PostJSON(fmt.Sprintf(UpdateContactWayURL, accessToken), req); err != nil {
- return nil, err
- }
- result := &UpdateContactWayResponse{}
- if err = util.DecodeWithError(response, result, "UpdateContactWay"); err != nil {
- return nil, err
- }
- return result, nil
- }
|