1
0
mirror of https://github.com/silenceper/wechat.git synced 2026-02-09 15:12:26 +08:00
This commit is contained in:
houseme
2024-07-19 12:04:04 +08:00
parent ba0a1477eb
commit d8fde54f2d
118 changed files with 974 additions and 867 deletions

View File

@@ -19,11 +19,11 @@ const (
)
// GetBlackList 获取公众号的黑名单列表
// 该接口每次调用最多可拉取 1000 个OpenID当列表数较多时可以通过多次拉取的方式来满足需求。
// 该接口每次调用最多可拉取 1000 个 OpenID当列表数较多时可以通过多次拉取的方式来满足需求。
// 参数 beginOpenid当 begin_openid 为空时,默认从开头拉取。
func (user *User) GetBlackList(beginOpenid ...string) (userlist *OpenidList, err error) {
if len(beginOpenid) > 1 {
return nil, errors.New("参数 beginOpenid 错误:请传递 1 个openID若需要从头开始拉取列表请留空。")
return nil, errors.New("参数 beginOpenid 错误:请传递 1 个 openID若需要从头开始拉取列表请留空。")
}
// 获取 AccessToken
var accessToken string
@@ -62,13 +62,13 @@ func (user *User) GetAllBlackList() (openIDList []string, err error) {
)
for {
// 获取列表每次1k条
// 获取列表(每次 1k 条)
if userlist, err = user.GetBlackList(beginOpenid); err != nil {
return nil, err
}
openIDList = append(openIDList, userlist.Data.OpenIDs...) // 存储本次获得的OpenIDs
openIDList = append(openIDList, userlist.Data.OpenIDs...) // 存储本次获得的 OpenIDs
count += userlist.Count // 记录获得的总数量
beginOpenid = userlist.NextOpenID // 记录下次循环的起始openID
beginOpenid = userlist.NextOpenID // 记录下次循环的起始 openID
if count >= userlist.Total {
break // 获得的数量=total结束循环
}
@@ -78,13 +78,13 @@ func (user *User) GetAllBlackList() (openIDList []string, err error) {
}
// BatchBlackList 拉黑用户
// 参数 openidList需要拉入黑名单的用户的openid每次拉黑最多允许20个
// 参数 openidList需要拉入黑名单的用户的 openid每次拉黑最多允许 20
func (user *User) BatchBlackList(openidList ...string) (err error) {
return user.batch(batchblacklistURL, "BatchBlackList", openidList...)
}
// BatchUnBlackList 取消拉黑用户
// 参数 openidList需要取消拉入黑名单的用户的openid每次拉黑最多允许20个
// 参数 openidList需要取消拉入黑名单的用户的 openid每次拉黑最多允许 20
func (user *User) BatchUnBlackList(openidList ...string) (err error) {
return user.batch(batchunblacklistURL, "BatchUnBlackList", openidList...)
}
@@ -93,7 +93,7 @@ func (user *User) BatchUnBlackList(openidList ...string) (err error) {
func (user *User) batch(url, apiName string, openidList ...string) (err error) {
// 检查参数
if len(openidList) == 0 || len(openidList) > 20 {
return errors.New("参数 openidList 错误每次操作黑名单用户数量为1-20个。")
return errors.New("参数 openidList 错误:每次操作黑名单用户数量为 1-20 个。")
}
// 获取 AccessToken

View File

@@ -1,4 +1,4 @@
// Package user migrate 用于微信公众号账号迁移获取openID变化
// Package user migrate 用于微信公众号账号迁移,获取 openID 变化
// 参考文档https://kf.qq.com/faq/1901177NrqMr190117nqYJze.html
package user
@@ -13,23 +13,23 @@ const (
changeOpenIDURL = "https://api.weixin.qq.com/cgi-bin/changeopenid"
)
// ChangeOpenIDResult OpenID迁移变化
// ChangeOpenIDResult OpenID 迁移变化
type ChangeOpenIDResult struct {
OriOpenID string `json:"ori_openid"`
NewOpenID string `json:"new_openid"`
ErrMsg string `json:"err_msg,omitempty"`
}
// ChangeOpenIDResultList OpenID迁移变化列表
// ChangeOpenIDResultList OpenID 迁移变化列表
type ChangeOpenIDResultList struct {
util.CommonError
List []ChangeOpenIDResult `json:"result_list"`
}
// ListChangeOpenIDs 返回指定OpenID变化列表
// fromAppID 为老账号AppID
// openIDs 为老账号的openIDopenIDs100个以内
// AccessToken 为新账号的AccessToken
// ListChangeOpenIDs 返回指定 OpenID 变化列表
// fromAppID 为老账号 AppID
// openIDs 为老账号的 openIDopenIDs100 个以内
// AccessToken 为新账号的 AccessToken
func (user *User) ListChangeOpenIDs(fromAppID string, openIDs ...string) (list *ChangeOpenIDResultList, err error) {
list = &ChangeOpenIDResultList{}
// list.List = make([]ChangeOpenIDResult, 0)
@@ -65,10 +65,10 @@ func (user *User) ListChangeOpenIDs(fromAppID string, openIDs ...string) (list *
return
}
// ListAllChangeOpenIDs 返回所有用户OpenID列表
// fromAppID 为老账号AppID
// openIDs 为老账号的openID
// AccessToken 为新账号的AccessToken
// ListAllChangeOpenIDs 返回所有用户 OpenID 列表
// fromAppID 为老账号 AppID
// openIDs 为老账号的 openID
// AccessToken 为新账号的 AccessToken
func (user *User) ListAllChangeOpenIDs(fromAppID string, openIDs ...string) (list []ChangeOpenIDResult, err error) {
list = make([]ChangeOpenIDResult, 0)
chunks := util.SliceChunk(openIDs, 100)

View File

@@ -102,7 +102,7 @@ type BatchGetUserInfoParams struct {
// BatchGetUserListItem 需要获取基本信息的用户
type BatchGetUserListItem struct {
OpenID string `json:"openid"` // 用户的标识,对当前公众号唯一
Lang string `json:"lang"` // 国家地区语言版本zh_CN 简体zh_TW 繁体en 英语默认为zh-CN
Lang string `json:"lang"` // 国家地区语言版本zh_CN 简体zh_TW 繁体en 英语,默认为 zh-CN
}
// InfoList 用户基本信息列表
@@ -161,7 +161,10 @@ func (user *User) ListUserOpenIDs(nextOpenid ...string) (*OpenidList, error) {
return nil, err
}
uri, _ := url.Parse(userListURL)
uri, err := url.Parse(userListURL)
if err != nil {
return nil, err
}
q := uri.Query()
q.Set("access_token", accessToken)
if len(nextOpenid) > 0 && nextOpenid[0] != "" {
@@ -184,7 +187,7 @@ func (user *User) ListUserOpenIDs(nextOpenid ...string) (*OpenidList, error) {
return &userlist, nil
}
// ListAllUserOpenIDs 返回所有用户OpenID列表
// ListAllUserOpenIDs 返回所有用户 OpenID 列表
func (user *User) ListAllUserOpenIDs() ([]string, error) {
nextOpenid := ""
openids := make([]string, 0)