首页 > 代码库 > 微信公众平台开发

微信公众平台开发

为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,如果需要在多公众号、移动应用之间做用户共通,则需前往微信开放平台,将这些公众号和应用绑定到一个开放平台账号下,绑定后,一个用户虽然对多个公众号和应用有多个不同的OpenID,但他对所有这些同一开放平台账号下的公众号和应用,只有一个UnionID,可以在用户管理-获取用户基本信息(UnionID机制)文档了解详情。

用户向公众号发送消息时,公众号方收到的消息发送者是一个OpenID,是使用用户微信号加密后的结果,每个用户对每个公众号有一个唯一的OpenID。

此外,由于开发者经常有需在多个平台(移动应用、网站、公众帐号)之间共通用户帐号,统一帐号体系的需求,微信开放平台(open.weixin.qq.com)提供了UnionID机制。开发者可通过OpenID来获取用户基本信息,而如果开发者拥有多个应用(移动应用、网站应用和公众帐号,公众帐号只有在被绑定到微信开放平台帐号下后,才会获取UnionID),可通过获取用户基本信息中的UnionID来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的UnionID是唯一的。换句话说,同一用户,对同一个微信开放平台帐号下的不同应用,UnionID是相同的。

公众平台以access_token为接口调用凭据,来调用接口,所有接口的调用需要先获取access_token,access_token在2小时内有效,过期需要重新获取,但1天内获取次数有限,开发者需自行存储,详见获取接口调用凭据(access_token)文档。

公众平台接口调用仅支持80端口。

 

1、公众号消息会话

 

1)群发消息:公众号可以以一定频次(订阅号为每天1次,服务号为每月4次),向用户群发消息,包括文字消息、图文消息、图片、视频、语音等。
2)被动回复消息:在用户给公众号发消息后,微信服务器会将消息发到开发者预先在开发者中心设置的服务器地址(开发者需要进行消息真实性验证),公众号可以在5秒内做出回复,可以回复一个消息,
也可以回复命令告诉微信服务器这条消息暂不回复。被动回复消息可以设置加密(在公众平台官网的开发者中心处设置,设置后,按照消息加解密文档来进行处理。其他3种消息的调用因为是API调用而不是对请求的返回,所以不需要加解密)。 3)客服消息:在用户给公众号发消息后的48小时内,公众号可以给用户发送不限数量的消息,主要用于客服场景。用户的行为会触发事件推送,某些事件推送是支持公众号据此发送客服消息的,详见微信推送消息与事件说明文档。 4)模板消息:在需要对用户发送服务通知(如刷卡提醒、服务预约成功通知等)时,公众号可以用特定内容模板,主动向用户发送消息。

 

2、公众号内网页

 

1)网页授权获取用户基本信息:通过该接口,可以获取用户的基本信息(获取用户的OpenID是无需用户同意的,获取用户的基本信息则需用户同意)
2)微信JS-SDK:是开发者在网页上通过JavaScript代码使用微信原生功能的工具包,开发者可以使用它在网页上录制和播放微信语音、监听微信分享、上传手机本地图片、拍照等许多能力。

 

公众号每次调用接口时,可能获得正确或错误的返回码,开发者可以根据返回码信息调试接口,排查错误。

全局返回码说明如下:

返回码说明
-1 系统繁忙,此时请开发者稍候再试
0 请求成功
40001 获取access_token时AppSecret错误,或者access_token无效。请开发者认真比对AppSecret的正确性,或查看是否正在为恰当的公众号调用接口
40002 不合法的凭证类型
40003 不合法的OpenID,请开发者确认OpenID(该用户)是否已关注公众号,或是否是其他公众号的OpenID
40004 不合法的媒体文件类型
40005 不合法的文件类型
40006 不合法的文件大小
40007 不合法的媒体文件id
40008 不合法的消息类型
40009 不合法的图片文件大小
40010 不合法的语音文件大小
40011 不合法的视频文件大小
40012 不合法的缩略图文件大小
40013 不合法的AppID,请开发者检查AppID的正确性,避免异常字符,注意大小写
40014 不合法的access_token,请开发者认真比对access_token的有效性(如是否过期),或查看是否正在为恰当的公众号调用接口
40015 不合法的菜单类型
40016 不合法的按钮个数
40017 不合法的按钮个数
40018 不合法的按钮名字长度
40019 不合法的按钮KEY长度
40020 不合法的按钮URL长度
40021 不合法的菜单版本号
40022 不合法的子菜单级数
40023 不合法的子菜单按钮个数
40024 不合法的子菜单按钮类型
40025 不合法的子菜单按钮名字长度
40026 不合法的子菜单按钮KEY长度
40027 不合法的子菜单按钮URL长度
40028 不合法的自定义菜单使用用户
40029 不合法的oauth_code
40030 不合法的refresh_token
40031 不合法的openid列表
40032 不合法的openid列表长度
40033 不合法的请求字符,不能包含\uxxxx格式的字符
40035 不合法的参数
40038 不合法的请求格式
40039 不合法的URL长度
40050 不合法的分组id
40051 分组名字不合法
40117 分组名字不合法
40118 media_id大小不合法
40119 button类型错误
40120 button类型错误
40121 不合法的media_id类型
40132 微信号不合法
40137 不支持的图片格式
41001 缺少access_token参数
41002 缺少appid参数
41003 缺少refresh_token参数
41004 缺少secret参数
41005 缺少多媒体文件数据
41006 缺少media_id参数
41007 缺少子菜单数据
41008 缺少oauth code
41009 缺少openid
42001 access_token超时,请检查access_token的有效期,请参考基础支持-获取access_token中,对access_token的详细机制说明
42002 refresh_token超时
42003 oauth_code超时
42007 用户修改微信密码,accesstoken和refreshtoken失效,需要重新授权
43001 需要GET请求
43002 需要POST请求
43003 需要HTTPS请求
43004 需要接收者关注
43005 需要好友关系
44001 多媒体文件为空
44002 POST的数据包为空
44003 图文消息内容为空
44004 文本消息内容为空
45001 多媒体文件大小超过限制
45002 消息内容超过限制
45003 标题字段超过限制
45004 描述字段超过限制
45005 链接字段超过限制
45006 图片链接字段超过限制
45007 语音播放时间超过限制
45008 图文消息超过限制
45009 接口调用超过限制
45010 创建菜单个数超过限制
45015 回复时间超过限制
45016 系统分组,不允许修改
45017 分组名字过长
45018 分组数量超过上限
45047 客服接口下行条数超过上限
46001 不存在媒体数据
46002 不存在的菜单版本
46003 不存在的菜单数据
46004 不存在的用户
47001 解析JSON/XML内容错误
48001 api功能未授权,请确认公众号已获得该接口,可以在公众平台官网-开发者中心页中查看接口权限
48004 api接口被封禁,请登录mp.weixin.qq.com查看详情
50001 用户未授权该api
50002 用户受限,可能是违规后接口被封禁
61451 参数错误(invalid parameter)
61452 无效客服账号(invalid kf_account)
61453 客服帐号已存在(kf_account exsited)
61454 客服帐号名长度超过限制(仅允许10个英文字符,不包括@及@后的公众号的微信号)(invalid kf_acount length)
61455 客服帐号名包含非法字符(仅允许英文+数字)(illegal character in kf_account)
61456 客服帐号个数超过限制(10个客服账号)(kf_account count exceeded)
61457 无效头像文件类型(invalid file type)
61450 系统错误(system error)
61500 日期格式错误
65301 不存在此menuid对应的个性化菜单
65302 没有相应的用户
65303 没有默认菜单,不能创建个性化菜单
65304 MatchRule信息为空
65305 个性化菜单数量受限
65306 不支持个性化菜单的帐号
65307 个性化菜单信息为空
65308 包含没有响应类型的button
65309 个性化菜单开关处于关闭状态
65310 填写了省份或城市信息,国家信息不能为空
65311 填写了城市信息,省份信息不能为空
65312 不合法的国家信息
65313 不合法的省份信息
65314 不合法的城市信息
65316 该公众号的菜单设置了过多的域名外跳(最多跳转到3个域名的链接)
65317 不合法的URL
9001001 POST数据参数不合法
9001002 远端服务不可用
9001003 Ticket不合法
9001004 获取摇周边用户信息失败
9001005 获取商户信息失败
9001006 获取OpenID失败
9001007 上传文件缺失
9001008 上传素材的文件类型不合法
9001009 上传素材的文件尺寸不合法
9001010 上传失败
9001020 帐号不合法
9001021 已有设备激活率低于50%,不能新增设备
9001022 设备申请数不合法,必须为大于0的数字
9001023 已存在审核中的设备ID申请
9001024 一次查询设备ID数量不能超过50
9001025 设备ID不合法
9001026 页面ID不合法
9001027 页面参数不合法
9001028 一次删除页面ID数量不能超过10
9001029 页面已应用在设备中,请先解除应用关系再删除
9001030 一次查询页面ID数量不能超过50
9001031 时间区间不合法
9001032 保存设备与页面的绑定关系参数错误
9001033 门店ID不合法
9001034 设备备注信息过长
9001035 设备申请参数不合法
9001036 查询起始值begin不合法

 

微信公众平台开发