前言
微信预览消息接口
{
"errcode": 40003,
"errmsg": "invalid openid rid: 5fc89b7d-3101615c-4348884d"
}
问题
40003 => 传入非法的openid 这个不合法说的是你提供的OPENID不是当前公众号所持有的。或者是当前用户取消关注,你自然不可以给他发,还有你的接口权限问题,普通用户能不能接收,如此种种,后续有其他原因会补充,欢迎大家评论区讨论,刚才尝试预览多人接收,这touser参数只接收一个参数的openid,写成数组就会报40003
{
"touser":["oOQf1t8C6sLRkMAVISOmhqtIjC7Q","oOQf1t8Ebsv17DO2v4Z9LYRtv9H4"],
"mpnews":{
"media_id":"XCRd2iesS4v24lqvDXkusOug8UszvBLVfdr0KeuskYM"
},
"msgtype":"mpnews"
}
正确写法
{
"touser":"oOQf1t8C6sLRkMAVISOmhqtIjC7Q",
"mpnews":{
"media_id":"XCRd2iesS4v24lqvDXkusOug8UszvBLVfdr0KeuskYM"
},
"msgtype":"mpnews"
}
- openid不是当前公众号所持有的,其他公众号的openid不通用
- 当前用户取消关注,微信后台可以看到用户是否取关
- 当前接口此openid无权限
- 参数异常
获取用户基本信息(UnionID机制)
在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。
请注意,如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。
UnionID机制说明:
开发者可通过OpenID来获取用户基本信息。特别需要注意的是,如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。
请注意: 20年6月8日起,用户关注来源“微信广告(ADD_SCENE_WECHAT_ADVERTISEMENT)”从“其他(ADD_SCENE_OTHERS)”中拆分给出。
微信公众号关于进一步介绍用户信息API
获取OpenID
如果你有,并且确定是当前公众号的,可能原因就是如上,如果没有正确的openid可以参考我的这篇博客