为了识别用户,每一个用户针对每一个公众号会产生一个安全的OpenID,若是须要在多公众号、移动应用之间作用户共通,则需前往微信开放平台,将这些公众号和应用绑定到一个开放平台帐号下,绑定后,一个用户虽然对多个公众号和应用有多个不一样的OpenID,但他对全部这些同一开放平台帐号下的公众号和应用,只有一个UnionID,能够在用户管理-获取用户基本信息(UnionID机制)文档了解详情。api
用户向公众号发送消息时,公众号方收到的消息发送者是一个OpenID,是使用用户微信号加密后的结果,每一个用户对每一个公众号有一个惟一的OpenID。安全
此外,因为开发者常常有需在多个平台(移动应用、网站、公众账号)之间共通用户账号,统一账号体系的需求,微信开放平台(open.weixin.qq.com)提供了UnionID机制。开发者可经过OpenID来获取用户基本信息,而若是开发者拥有多个应用(移动应用、网站应用和公众账号,公众账号只有在被绑定到微信开放平台账号下后,才会获取UnionID),可经过获取用户基本信息中的UnionID来区分用户的惟一性,由于只要是同一个微信开放平台账号下的移动应用、网站应用和公众账号,用户的UnionID是惟一的。换句话说,同一用户,对同一个微信开放平台账号下的不一样应用,UnionID是相同的。服务器
公众平台以access_token为接口调用凭据,来调用接口,全部接口的调用须要先获取access_token,access_token在2小时内有效,过时须要从新获取,但1天内获取次数有限,开发者需自行存储,详见获取接口调用凭据(access_token)文档。微信
公众平台接口调用仅支持80端口。app
一、公众号消息会话工具
1)群发消息:公众号能够以必定频次(订阅号为天天1次,服务号为每个月4次),向用户群发消息,包括文字消息、图文消息、图片、视频、语音等。 2)被动回复消息:在用户给公众号发消息后,微信服务器会将消息发到开发者预先在开发者中心设置的服务器地址(开发者须要进行消息真实性验证),公众号能够在5秒内作出回复,能够回复一个消息,
也能够回复命令告诉微信服务器这条消息暂不回复。被动回复消息能够设置加密(在公众平台官网的开发者中心处设置,设置后,按照消息加解密文档来进行处理。其余3种消息的调用由于是API调用而不是对请求的返回,因此不须要加解密)。 3)客服消息:在用户给公众号发消息后的48小时内,公众号能够给用户发送不限数量的消息,主要用于客服场景。用户的行为会触发事件推送,某些事件推送是支持公众号据此发送客服消息的,详见微信推送消息与事件说明文档。 4)模板消息:在须要对用户发送服务通知(如刷卡提醒、服务预定成功通知等)时,公众号能够用特定内容模板,主动向用户发送消息。
二、公众号内网页网站
1)网页受权获取用户基本信息:经过该接口,能够获取用户的基本信息(获取用户的OpenID是无需用户赞成的,获取用户的基本信息则需用户赞成) 2)微信JS-SDK:是开发者在网页上经过JavaScript代码使用微信原生功能的工具包,开发者可使用它在网页上录制和播放微信语音、监听微信分享、上传手机本地图片、拍照等许多能力。
公众号每次调用接口时,可能得到正确或错误的返回码,开发者能够根据返回码信息调试接口,排查错误。ui
全局返回码说明以下:加密
返回码 | 说明 |
---|---|
-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不合法 |