1、使用公众平台接口进行开发查看文档 使用公众平台的开发接口,公众号可在自身服务器上接收用户的微信消息,并可按需回复。此外,我们还提供了更多更高级的功能和体验,如会话界面的自定义菜单、获取更多类型的消息等。消息接口指南 返回出自开放平台跳转到: 导航, 搜索 目录隐藏 1 简介 2 申请消息接口 3 网址接入 4 消息推送 o 4.1 文本消息o 4.2 图片消息o 4.3 地理位置消息o 4.4 链接消息o 4.5 事件推送 5 消息回复 o 5.1 回复文本消息o 5.2 回复音乐消息o 5.3 回复图文消息 6 注意事项 7 示例代码简介公众平台消息接口为开发者提供了一种新的消息处理方式。
2、申请消息接口点击申请,填写网址 url 和 token,其中 token 可由开发者可以任意填写,用作生成签名。 网址接入公众平台用户提交信息后,微信服务器将发送 GET 请求到填写的 URL 上,并且带上四个参数: 参数 描述 signature 微信加密签名 timestamp 时间戳 nonce 随机数 echostr 随机字符串 开发者通过检验 signature 对请求进行校验(下面有校验方式)。若确认此次GET 请求来自微信服务器,请原样返回 echostr 参数内容,则接入生效,否则接入失败。 signature 结合了开发者填写的 token 参数和请求中的 timestamp
3、 参数、nonce参数。 加密/校验流程:1. 将 token、timestamp、nonce 三个参数进行字典序排序2. 将三个参数字符串拼接成一个字符串进行 sha1 加密3. 开发者获得加密后的字符串可与 signature 对比,标识该请求来源于微信消息推送当普通微信用户向公众账号发消息时,微信服务器将 POST 该消息到填写的 URL上。结构如下: 文本消息13488318601234567890123456参数 描述 ToUserName 开发者微信号 FromUserName 发送方帐号(一个 OpenID) CreateTime 消息创建时间 (整型) MsgType text
4、 Content 文本消息内容 MsgId 消息 id,64 位整型 图片消息13488318601234567890123456参数 描述 ToUserName 开发者微信号 FromUserName 发送方帐号(一个 OpenID) CreateTime 消息创建时间 (整型) MsgType image PicUrl 图片链接 MsgId 消息 id,64 位整型 地理位置消息135177636023.134521113.358803201234567890123456参数 描述 ToUserName 开发者微信号 FromUserName 发送方帐号(一个 OpenID) Create
5、Time 消息创建时间 (整型) MsgType location Location_X 地理位置纬度 Location_Y 地理位置经度 Scale 地图缩放大小 Label 地理位置信息 MsgId 消息 id,64 位整型 链接消息13517763601234567890123456参数 描述 ToUserName 接收方微信号 FromUserName 发送方微信号,若为普通用户,则是一个 OpenID CreateTime 消息创建时间 MsgType 消息类型,link Title 消息标题 Description 消息描述 Url 消息链接 MsgId 消息 id,64 位整型
6、事件推送事件推送只支持微信 4.5 版本,目前开启自定义菜单接口事件推送、关注与取消关注事件推送。其余功能即将开放,敬请期待。 123456789参数 描述 ToUserName 接收方微信号 FromUserName 发送方微信号,若为普通用户,则是一个 OpenID CreateTime 消息创建时间 MsgType 消息类型,event Event 事件类型,subscribe(订阅)、unsubscribe(取消订阅)、CLICK(自定义菜单点击事件) EventKey 事件 KEY 值,与自定义菜单接口中 KEY 值对应 消息回复对于每一个 POST 请求,开发者在响应包中返回特定
7、xml 结构,对该消息进行响应(现支持回复文本、图文、语音、视频、音乐和对收到的消息进行星标操作)。 微信服务器在五秒内收不到响应会断掉连接。 回复 xml 结构如下: 回复文本消息123456780参数 描述 ToUserName 接收方帐号(收到的 OpenID) FromUserName 开发者微信号 CreateTime 消息创建时间 MsgType text Content 回复的消息内容,长度不超过 2048 字节 FuncFlag 位 0x0001 被标志时,星标刚收到的消息。 回复音乐消息123456780参数 描述 ToUserName 接收方帐号(收到的 OpenID) F
8、romUserName 开发者微信号 CreateTime 消息创建时间 MsgType music MusicUrl 音乐链接 HQMusicUrl 高质量音乐链接,WIFI 环境优先使用该链接播放音乐 FuncFlag 位 0x0001 被标志时,星标刚收到的消息。 回复图文消息1234567821参数 描述 ToUserName 接收方帐号(收到的 OpenID) FromUserName 开发者微信号 CreateTime 消息创建时间 MsgType news ArticleCount 图文消息个数,限制为 10 条以内 Articles 多条图文消息信息,默认第一个 item 为大
9、图 Title 图文消息标题 Description 图文消息描述 PicUrl 图片链接,支持 JPG、PNG 格式,较好的效果为大图640*320,小图 80*80。 Url 点击图文消息跳转链接 注意事项1.用户 OpenID 对一个公众号是固定唯一的串 2.请使用 80 端口 示例代码PHP:下载 通用接口文档 返回出自开放平台跳转到: 导航, 搜索 简介通用接口是使用 HTTP 请求,让开发者直接与微信服务器交互,实现媒体文件上传、媒体文件获取等功能,达到获取图片、语音、视频等媒体文件的目的。 调用接口所需要的 access_token 必须通过获取凭证接口获取。 获取凭证接口说明
10、在使用通用接口前,你需要做以下两步工作: 1.拥有一个微信公众账号,并获取到 appid 和 appsecret(在公众平台申请内测资格,审核通过后可获得) 2.通过获取凭证接口获取到 access_token 注意: access_token 是第三方访问 api 资源的票据;access_token 对应于公众号是全局唯一的票据,重复获取将导致上次获取的access_token 失效。请求说明 http 请求方式: GEThttps:/ 参数 是否必须 说明 grant_type 是 获取 access_token 填写 client_credential appid 是 第三方用户唯一凭
11、证 secret 是 第三方用户唯一凭证密钥,既 appsecret 返回说明 正确的 Json 返回结果: “access_token“:“ACCESS_TOKEN“,“expires_in“:7200参数 说明 access_token 获取到的凭证 expires_in 凭证有效时间,单位:秒 错误的 Json 返回示例: “errcode“:40013,“errmsg“:“invalid appid“统一返回码说明 自定义菜单接口 返回出自开放平台跳转到: 导航, 搜索 目录隐藏 1 简介 2 菜单创建 3 菜单查询 4 菜单删除简介开发者获取使用凭证(如何获取凭证)后,可以使用该凭证
12、对公众账号的自定义菜单进行创建、查询和删除等操作。自定义菜单接口可实现以下类型按钮: click(点击事件): 用户点击 click 类型按钮后,微信服务器会通过 消息接口(event 类型)推送点击事件给开发者,并且带上按钮中开发者填写的 key 值,开发者可以通过自定义的 key 值进行消息回复。创建自定义菜单后,由于微信客户端缓存,需要 24 小时微信客户端才会展现出来。建议测试时可以尝试取消关注公众账号后,再次关注,则可以看到创建后的效果。 菜单创建接口说明 通过 POST 一个特定结构体,实现在微信客户端创建自定义菜单。 请求说明 http 请求方式:POSThttps:/ “but
13、ton“:“type“:“click“,“name“:“今日歌曲“,“key“:“V1001_TODAY_MUSIC“,“type“:“click“,“name“:“歌手简介“,“key“:“V1001_TODAY_SINGER“,“name“:“菜单“,“sub_button“:“type“:“click“,“name“:“hello word“,“key“:“V1001_HELLO_WORLD“,“type“:“click“,“name“:“赞一下我们“,“key“:“V1001_GOOD“创建后效果: 参数说明 参数 是否必须 说明 button 是 按钮数组,按钮个数应为 23 个 s
14、ub_button 否 子按钮数组,按钮个数应为 25 个 type 是 按钮类型,目前有 click 类型 name 是 按钮描述,既按钮名字,不超过 16 个字节,子菜单不超过 40 个字节 key 类型为 click 必须 按钮 KEY 值,用于 消息接口(event 类型)推送,不超过 128 字节 返回说明 正确的 Json 返回结果: “errcode“:0,“errmsg“:“ok“错误的 Json 返回结果 “errcode“:40018,“errmsg“:“invalid button name size“统一返回码说明 菜单查询接口说明 查询当前使用的自定义菜单结构。 请求
15、说明 http 请求方式:GEThttps:/ 对应创建接口,正确的 Json 返回结果:“menu“:“button“:“type“:“click“,“name“:“今日歌曲“,“key“:“V1001_TODAY_MUSIC“,“sub_button“:,“type“:“click“,“name“:“歌手简介“,“key“:“V1001_TODAY_SINGER“,“sub_button“:,“name“:“菜单“,“sub_button“:“type“:“click“,“name“:“hello word“,“key“:“V1001_HELLO_WORLD“,“sub_button“:,
16、“type“:“click“,“name“:“赞一下我们“,“key“:“V1001_GOOD“,“sub_button“:统一返回码说明 菜单删除接口说明 取消当前使用的自定义菜单。 请求说明 http 请求方式:GEThttps:/ 对应创建接口,正确的 Json 返回结果:“errcode“:0,“errmsg“:“ok“统一返回码说明 接口权限 返回出自开放平台跳转到: 导航, 搜索 简介请先确保公众账号已经拥有接口调用权限。 默认每个公众帐号都不能超过下面的频率限制。当超出调用接口频率限制,调用对应接口将会收到如下错误信息: “errcode“:45009,“errmsg“:“api
17、 freq out of limit“接口调用频率限制接口名称 频率限制 获取凭证接口 200(次/天) 自定义菜单创建接口 100(次/天) 自定义菜单查询接口 1000(次/天) 自定义菜单删除接口 100(次/天) 接口权限 返回出自开放平台跳转到: 导航, 搜索 简介请先确保公众账号已经拥有接口调用权限。 默认每个公众帐号都不能超过下面的频率限制。当超出调用接口频率限制,调用对应接口将会收到如下错误信息: “errcode“:45009,“errmsg“:“api freq out of limit“接口调用频率限制接口名称 频率限制 获取凭证接口 200(次/天) 自定义菜单创建接口 100(次/天) 自定义菜单查询接口 1000(次/天) 自定义菜单删除接口 100(次/天)