收藏
回答

调用 客服发送消息api 总是提示invalid openid?

def send_message(accessToken, openID, message):
    """
    客服接口-发消息
    :param accessToken: 调用接口凭证
    :param openID: 接收方账号
    :param message: 消息
    :return:
    """
    url = (f"https://api.weixin.qq.com/cgi-bin/message/custom/send?"
           f"access_token={accessToken}")
    data = {
        "touser": f"{openID}",
        "msgtype": "text",
        "text":
            {
                "content": message
            }
    }
    response = requests.post(url, data=data)
    return response.json()

错误码: {'errcode': 40003, 'errmsg': 'invalid openid rid: 6791c969-2df2b561-5de66934'}

回答关注问题邀请回答
收藏

3 个回答

  • AepZ
    AepZ
    2025-01-24

    问题已解决, 各位使用Python的开发者需要注意, 该接口所需的是JSON数据包, 所以需要写成下面的形式:

    response = requests.post(url, json=data)
    

    或者

    response = requests.post(url, data=json.dumps(data, ensure_ascii=False)) # 防止乱码
    

    

    2025-01-24
    有用 2
    回复
  • Lester
    Lester
    2025-01-23

    48小时内有过咨询的用户openid,才能发送成功

    2025-01-23
    有用
    回复 4
    • AepZ
      AepZ
      2025-01-23
      好的, 我想请问一下, 发送的msg再公众号显示的是乱码应该怎么处理
      2025-01-23
      回复
    • Mr.Zhao
      Mr.Zhao
      2025-01-23回复AepZ
      你不是会python吗  乱码是python的原因,没用UTF-8
      2025-01-23
      回复
    • Lester
      Lester
      2025-01-23回复AepZ
      是不是xml格式有问题
      2025-01-23
      回复
    • AepZ
      AepZ
      2025-01-23回复Lester
      我使用的是主动发送模式, 用的是python的requests库, 应该是我Python中发送json时编码出现问题了, 感谢您的解答
      2025-01-23
      回复
  • Mr.Zhao
    Mr.Zhao
    2025-01-23

    openid是哪个appid的,access_token又是哪个token的

    2025-01-23
    有用
    回复 12
    • AepZ
      AepZ
      2025-01-23
      access_token是通过appID和appSecret获取到的accessToken, openid是通过access_token获取到的
      2025-01-23
      回复
    • Mr.Zhao
      Mr.Zhao
      2025-01-23回复AepZ
      跟没说一样,谁的appid
      2025-01-23
      回复
    • AepZ
      AepZ
      2025-01-23回复Mr.Zhao
      我不太明白您的意思, 是需要给您appid这个参数吗
      2025-01-23
      回复
    • Mr.Zhao
      Mr.Zhao
      2025-01-23回复AepZ
      A账号的openid,用B账号的access_token调用接口就会报invalid openid   现在要确定是否是同一个账号
      2025-01-23
      回复
    • AepZ
      AepZ
      2025-01-23
      是同一个账号的, openid是用该账号的access_token获取到的, openid和access_token归属同一个微信公众号
      2025-01-23
      回复
    查看更多(7)
登录 后发表内容