首页 / 博客 / 框架·排错·其它

微信加好友失败、对方收不到验证?原因与解决清单

分类:框架·排错·其它 · 标签:微信加好友、微信API、排查

前言

"我明明点了添加,怎么对方一直收不到验证消息?" —— 这是做微信自动化或日常使用时极高频出现的困惑。问题不只一种,可能是你的账号被限制了、可能是对方隐私设置拦了、可能是接口调用频率超标,也可能只是网络抖动。

本文梳理加好友失败的全部常见场景,包含人工操作和自动化调用两个维度,每种场景给出具体判断方法和修复步骤,读完按清单一项一项排查,多数问题都能定位。


一、先搞清楚:加好友流程到底经过哪几个节点

微信加好友本质上是一条"申请-审核-通知"的链路,任何一个节点出问题都会导致最终失败:

节点说明
发起方发送申请调用接口或点击"添加"按钮,微信服务端收到请求
服务端路由判断发起方账号状态、频率、验证消息内容是否合规
对方端接收对方手机/PC 在线、账号状态正常,才能弹出通知
对方隐私过滤对方"加我为好友"设置决定验证消息是否进入待确认列表
对方手动确认对方同意才正式建立好友关系

只要上面任意节点异常,结果就是"发出去-对方没收到"或"收到了-对方无法同意"。


二、发起方账号本身的限制

2.1 账号注册时间太短

新注册或近期首次激活的微信号,在账号"在线累计满 3 天"之前,加好友功能会受到微信风控限制,申请要么直接失败,要么发出后对方看不到。

判断方式:看账号创建/激活日期,不满 3 天就先等待,不要反复重试(重试会加重风控)。

2.2 账号触发频率限制

微信对主动添加好友有隐性频次上限。常见合理区间参考:

超出后,当天的申请会静默失败——界面看起来发出去了,对方实际没收到通知。

判断方式:如果当天已加了很多人,停止操作等明天再试;记录每次申请时间,确认是否存在短时间内集中操作。

2.3 账号被风控或临时封禁

如果账号存在以下行为,会触发更严格的风控甚至封禁:

判断方式:用同一账号手动添加一个认识的人测试。如果手动也失败,账号本身有问题;如果手动成功,程序调用姿势有问题。


三、对方隐私设置的拦截

这是最容易被忽视的原因,且完全不在你的控制范围内。

3.1 对方关闭了"通过手机号/QQ号搜到我"

如果你是通过搜索手机号获取 wxid 再发申请,但对方在设置里关闭了"允许通过手机号搜索到我",搜索本身可能返回空,或者即使发出申请对方也不会收到。

3.2 对方开启了"加好友需要验证"但设置为仅限定人群

微信可以设置"加好友验证"仅允许"通过群聊""通过名片"等特定方式,其他方式来的申请会被过滤掉,不进入对方的"新的朋友"列表。

3.3 对方设置了好友数量上限

微信官方好友上限为 5000 人,达到上限后任何申请都会失败,且发起方不会收到明确提示。

应对思路:换一个可以确认双方都能正常加好友的账号做对照测试;或联系对方通过其他方式确认其账号状态。


四、自动化调用时的额外排查项

如果你在用程序通过 HTTP 接口批量调用加好友功能,除了上面的通用原因,还需要排查以下几点。

4.1 账号是否真正在线

接口调用加好友的前提是微信账号已登录且保持在线。部分框架在账号掉线后不会主动报错,返回数据看起来正常,但实际操作没有执行。

排查步骤

  1. 先调用 checkOnline 接口确认账号在线状态
  2. 返回 {"ret":200,"data":{"isOnline":true}} 才进行后续操作
  3. 掉线后调用 getLoginQrCode 重新拉起登录
pythonimport requests

BASE  = "https://你的接口域名"   # 注册后在官方文档获取
TOKEN = "你的Token"
APPID = "你的appId"
HEADERS = {"token": TOKEN}       # 鉴权字段名以官方文档为准

def check_online():
    resp = requests.post(
        f"{BASE}/login/checkOnline",
        headers=HEADERS,
        json={"appId": APPID}
    )
    data = resp.json()
    return data.get("ret") == 200 and data.get("data", {}).get("isOnline", False)

# 先检查在线状态,再做其他操作
if not check_online():
    print("账号已掉线,请重新登录")
代码为示例,具体接口路径和字段以官方文档为准。

4.2 搜索接口是否先于添加接口执行

直接用微信号/手机号发起添加时,部分平台要求先调用 search(搜索联系人)获取对方的 wxid,再用 wxid 调用 addContacts。跳过搜索步骤直接用原始手机号调 addContacts 可能会失败。

正确流程参考

pythondef search_and_add(phone_or_wxid: str, message: str = "你好,我是xx"):
    # 第一步:搜索获取 wxid
    search_resp = requests.post(
        f"{BASE}/contacts/search",
        headers=HEADERS,
        json={"appId": APPID, "contactsInfo": phone_or_wxid}
    )
    search_data = search_resp.json()
    if search_data.get("ret") != 200:
        print("搜索失败:", search_data.get("msg"))
        return

    wxid = search_data.get("data", {}).get("wxid", "")
    if not wxid:
        print("未找到该用户")
        return

    # 第二步:发起添加,附上验证消息
    add_resp = requests.post(
        f"{BASE}/contacts/addContacts",
        headers=HEADERS,
        json={
            "appId": APPID,
            "wxid": wxid,
            "addType": 6,          # 具体 addType 枚举以文档为准
            "addContent": message
        }
    )
    print("添加结果:", add_resp.json())
代码为示例,具体接口路径和字段以官方文档为准。

4.3 调用频率是否过高

自动化场景最容易出现频率问题,代码循环速度远超人工操作。建议在每次添加之间加随机等待:

pythonimport time
import random

def add_with_delay(wxid: str):
    # ... 调用 addContacts ...
    wait = random.uniform(120, 480)  # 每次随机等待 2~8 分钟
    print(f"等待 {wait:.0f} 秒后继续")
    time.sleep(wait)

搜索操作同样需要控速,每天搜索量建议控制在 10~20 次以内,避免触发风控。

4.4 验证消息内容是否合规

微信服务端会对验证消息内容做关键词过滤,含有以下内容的申请可能被拦截:

处理方式:验证消息保持简短、自然,如"你好,我是 [你的名字],方便加个好友吗"。

4.5 使用托管 HTTP API 时的注意事项

如果你用的是托管 HTTP 接口,WechatApi 提供扫码登录、消息收发、好友与群管理等 REST 接口,HTTP 调用即可,除了接口调用逻辑,还需要确认:账号已完成扫码绑定、当前 appId 对应账号处于在线状态、token 没有过期。大多数加好友失败,根源还是账号状态或频率,而不是接口本身的问题。


五、系统性排查流程图

按以下顺序逐步排查,能覆盖 90% 以上的失败场景:

开始
  │
  ▼
账号在线时间是否 ≥ 3 天?
  ├─ 否 → 等待 3 天后再试
  └─ 是 ↓

今天已添加人数是否 > 10 人?
  ├─ 是 → 停止,明天继续(控制节奏)
  └─ 否 ↓

用同一账号手动添加认识的人,是否成功?
  ├─ 否 → 账号被风控,联系平台客服或等待解除
  └─ 是 ↓

是否通过手机号搜索对方 wxid 再添加?
  ├─ 否 → 检查接口调用顺序(search → addContacts)
  └─ 是 ↓

验证消息是否含链接/广告词?
  ├─ 是 → 替换为简洁自然的问候语
  └─ 否 ↓

联系对方确认:是否开启了限制好友来源 / 是否已达 5000 好友上限
  └─ 根据对方反馈决定下一步

六、常见错误码与含义速查

返回情况可能含义处理方向
ret ≠ 200,msg 含"频率"当天加人次数过多停止操作,次日重试
ret ≠ 200,msg 含"在线"账号掉线重新登录后再操作
ret = 200 但对方没收到账号风控/对方隐私设置参考第二、三节排查
搜索返回空结果对方关闭了被搜索权限,或号码有误核实信息,尝试其他搜索方式
添加后状态长期"等待验证"对方未处理 or 申请已被过滤等待 24h 后确认

总结

加好友失败的原因分散在账号状态、隐私设置、内容合规、调用频率四个层面,按本文的清单逐项对照,大多数情况都能找到根源。解决问题的核心原则只有两个:保持账号正常"养号"状态,以及控制操作节奏不触发风控

想动手试试?

WechatApi 提供扫码登录、消息收发、好友与群管理等 REST 接口,注册后几分钟跑通。

立即免费注册查看开发文档

相关产品页

🔗 微信机器人开发(产品页)🔗 微信客服机器人(产品页)🔗 微信群管理机器人(产品页)

相关文章

wechaty 维护放缓、itchat 失效后,个人微信机器人怎么做gewechat 微信开发框架快速上手教程微信发朋友圈别人看不到?原因排查与解决微信下载接口失败与账号掉线怎么解决?排查与修复完整指南
© 2025 WechatApi · 企业级微信智能机器人接入平台
官网价格帮助文档博客
苏ICP备2024128799号 · 苏ICP备2023038368号