1、获取接口调用凭据 11获取微信服务器 IP 地址 12接收消息 13接收普通消息 13目录 13文本消息 14图片消息 14语音消息 15视频消息 16小视频消息 16地理位置消息 .17链接消息 18接收事件推送 18目录 19关注/取消关注事件 .19扫描带参数二维码事件 .20上报地理位置事件 .21自定义菜单事件 22点击菜单拉取消息时的事件推送 .22点击菜单跳转链接时的事件推送 .23发送消息 24被动回复消息 24目录 24回复文本消息 .25回复图片消息 .25回复语音消息 .26回复视频消息 .26回复音乐消息 .27回复图文消息 .28客服接口 29目录 29客服帐号管理
2、29添加客服帐号 .29修改客服帐号 .30删除客服帐号 .31设置客服帐号的头像 .31获取所有客服账号 .32接口的统一参数说明 .33客服接口-发消息 .33群发接口 37目录 38上传图文消息内的图片获取 URL【订阅号与服务号认证后均可用】 38上传图文消息素材【订阅号与服务号认证后均可用】 .39根据分组进行群发【订阅号与服务号认证后均可用】 .40根据 OpenID 列表群发【订阅号不可用,服务号认证后可用】 .44删除群发【订阅号与服务号认证后均可用】 .48预览接口【订阅号与服务号认证后均可用】 .49查询群发消息发送状态【订阅号与服务号认证后均可用】 .52事件推送群发结果
3、 .53模板消息接口 54目录 54设置所属行业 55获得模板 ID 57发送模板消息 58事件推送 61模板消息运营规范 .63获取自动回复规则 .66消息加解密 71方案概述 71接入指引 72目录 72函数说明 72使用方法 73注意事项 75函数错误返回码 .75示例代码下载 .76微信公众平台接口调试工具 .76技术方案 76阅读须知 76公众账号接收用户消息 .77公众账号向用户回复消息 .79开发者 FAQ 消息加解密功能开发者 FAQ 80素材管理 82新增临时素材 82获取临时素材 84新增永久素材 85新增永久图文素材 .85新增其他类型永久素材 .87获取永久素材 89删
4、除永久素材 91修改永久图文素材 .92获取素材总数 93获取素材列表 94用户管理 97用户分组管理 97目录 97创建分组 97查询所有分组 .98查询用户所在分组 .100修改分组名 100移动用户分组 .101批量移动用户分组 .102删除分组 103设置用户备注名 103设置备注名 103获取用户基本信息(UnionID 机制) 104获取用户基本信息(包括 UnionID 机制) 105批量获取用户基本信息 .107获取用户列表 109获取用户地理位置 .111获取用户地理位置 .111网页授权获取用户基本信息 .112目录 114第一步:用户同意授权,获取 code 114第二步
5、:通过 code 换取网页授权 access_token 116第三步:刷新 access_token(如果需要) 118第四步:拉取用户信息(需 scope 为 snsapi_userinfo)119附:检验授权凭证(access_token)是否有效 .120自定义菜单管理 121自定义菜单创建接口 .121自定义菜单查询接口 .126自定义菜单删除接口 .127自定义菜单事件推送 .127目录 127点击菜单拉取消息时的事件推送 .127点击菜单跳转链接时的事件推送 .128scancode_push:扫码推事件的事件推送 129scancode_waitmsg:扫码推事件且弹出“消息接
6、收中” 提示框的事件推送 .130pic_sysphoto:弹出系统拍照发图的事件推送 130pic_photo_or_album:弹出拍照或者相册发图的事件推送 .131pic_weixin:弹出微信相册发图器的事件推送 132location_select:弹出地理位置选择器的事件推送 133获取自定义菜单配置接口 .134帐号管理 138生成带参数的二维码 .139创建二维码 ticket 139通过 ticket 换取二维码 141长链接转短链接接口 .141接口调用请求说明 .141微信认证事件推送 .142目录 143资质认证成功(此时立即获得接口权限) .143资质认证失败 14
7、4名称认证成功(即命名成功) .144名称认证失败(这时虽然客户端不打勾,但仍有接口权限) .145年审通知 146认证过期失效通知 .147数据统计接口 147用户分析数据接口 .147图文分析数据接口 .150消息分析数据接口 .156接口分析数据接口 .161微信 JS-SDK.164微信 JS-SDK 说明文档 164目录 164概述 166JSSDK 使用步骤 166接口调用说明 .168基础接口 168判断当前客户端版本是否支持指定 JS 接口 168分享接口 169获取“ 分享到朋友圈” 按钮点击状态及自定义分享内容接口 169获取“ 分享给朋友” 按钮点击状态及自定义分享内容接
8、口 169获取“ 分享到 QQ”按钮点击状态及自定义分享内容接口 .170获取“ 分享到腾讯微博” 按钮点击状态及自定义分享内容接口 170获取“ 分享到 QQ 空间”按钮点击状态及自定义分享内容接口 .170图像接口 171拍照或从手机相册中选图接口 .171预览图片接口 .171上传图片接口 .171下载图片接口 .172音频接口 172开始录音接口 .172停止录音接口 .172监听录音自动停止接口 .172播放语音接口 .172暂停播放接口 .173停止播放接口 .173监听语音播放完毕接口 .173上传语音接口 .173下载语音接口 .174智能接口 174识别音频并返回识别结果接口
9、 .174设备信息 174获取网络状态接口 .174地理位置 175使用微信内置地图查看位置接口 .175获取地理位置接口 .175摇一摇周边 175开启查找周边 ibeacon 设备接口 175关闭查找周边 ibeacon 设备接口 176监听周边 ibeacon 设备接口 176界面操作 176隐藏右上角菜单接口 .176显示右上角菜单接口 .176关闭当前网页窗口接口 .176批量隐藏功能按钮接口 .176批量显示功能按钮接口 .177隐藏所有非基础按钮接口 .177显示所有功能按钮接口 .177微信扫一扫 177调起微信扫一扫接口 .177微信小店 177跳转微信商品页接口 .177微
10、信卡券 178获取 api_ticket178拉取适用卡券列表并获取用户选择信息 .179批量添加卡券接口 .180查看微信卡包中的卡券接口 .180微信支付 180发起一个微信支付请求 .180附录 1-JS-SDK 使用权限签名算法 .181附录 2-所有 JS 接口列表 .183附录 3-所有菜单项列表 183附录 4-卡券扩展字段及签名生成算法 .184附录 5-常见错误及解决方法 186附录 6-DEMO 页面和示例代码 .188附录 7-问题反馈 189微信小店接口 189微信小店接口 189微信卡券接口 190微信卡券接口说明 .190目录 190卡券接口概述 191卡券 Hel
11、loWorld.192开发者须知 192获取 access_token192上传卡券 logo 192创建卡券 192创建二维码投放 194显示二维码 194设置测试白名单 195核销卡劵 195开发者注意事项 196微信版本判断 .196卡券投放限制 .196编码规则 196联系我们 196卡券术语介绍 197卡券资料包下载 197创建卡券 197投放卡券 198核销卡券 198管理卡券 198卡券事件推送 198会员卡专区 198特殊票券 198开发者协助制券 198卡券错误码 198微信门店接口 198微信门店接口 198目录 198微信门店接口文档 .199一、接口简介 199二、开发
12、者必读 201申请接入 201如何成为优质门店 .202开发流程 202三、创建门店 2031.上传图片 .2032.创建门店 .2043.审核事件推送 .2084.查询门店信息 .2095.查询门店列表 .2116.修改门店服务信息 2147.删除门店 .216四.门店类目表 .217五.常见错误码 .218六.附件:微信门店类目表 218七.联系我们 .218微信智能接口 219语义理解接口 219设备功能介绍 221设备功能介绍 221目录 221服务号设备功能介绍 221什么是服务号设备功能 .221为什么要开通设备功能 .222设备功能的优势 222典型案例 222好友计步排行榜 .
13、222电视弹幕 223多客服功能 223将消息转发到多客服 .223消息转发到多客服 .224消息转发到指定客服 .224客服管理 225目录 225多客服会话控制 231目录 231获取客服聊天记录 .237获取客服聊天记录接口 .237PC 客户端自定义插件接口 .239目录 239PC 客户端自定义页面插件接口 239摇一摇周边 246申请开通摇一摇周边 .246申请开通功能 .246查询审核状态 .247设备管理 248目录 248申请设备 ID 249查询设备 ID 申请审核状态 .250编辑设备信息 .251配置设备与门店的关联关系 .252查询设备列表 .254页面管理 256目
14、录 256新增页面 256编辑页面信息 .258查询页面列表 .259删除页面 261素材管理 261上传图片素材 .261管理设备与页面的关联关系 配置设备与页面的关联关系 .263查询设备与页面的关联关系 .264获取设备及用户信息 .266获取摇周边的设备及用户信息 .266数据统计 267目录 267以设备为维度的数据统计接口 .268批量查询设备统计数据接口 .269以页面为维度的数据统计接口 .271批量查询页面统计数据接口 .273摇一摇关注 JSAPI .275摇一摇关注 JS API 275摇一摇事件通知 277摇一摇事件通知 .277摇一摇红包 279目录 279摇一摇红包
15、说明 .279红包预下单接口 .281创建红包活动 .289录入红包信息 .291设置红包活动抽奖开关 .293红包 JSAPI .294红包绑定用户事件通知 .296Html 5 页面获取设备信息 .297目录 298新增分组 298编辑分组信息 .299删除分组 300查询分组列表 .301查询分组详情 .302添加设备到分组 .304从分组中移除设备 .305H5 页面获取设备信息 JS API306开启查找周边 ibeacon 设备接口 307关闭查找周边 ibeacon 设备接口 308监听周边 ibeacon 设备接口 308摇一摇周边错误码 .309微信连 Wi-Fi.312微信
16、连 Wi-Fi 开发者指引 312目录 312微信连 Wi-Fi 业务介绍 312微信连 Wi-Fi 特性 313开发者角色分类说明 313Wi-Fi 硬件设备商 .313公众账号开发者 .313公众号第三方平台 .314Wi-Fi 硬件鉴权协议接口说明 .314目录 314概述 314业务逻辑 315顾客连网过程 .315模块时序图 315实现流程 316第一步:获取门店 Wi-Fi 信息 316第二步:改造 portal 页面 .318第三步:支持临时放行上网请求 .320第四步:接受微信身份认证放行 .320示例 Demo321常见问题 3211. 部分安卓手机的 web 浏览器无法自动
17、呼起微信客户端 .3212. IOS 从 portal 页面跳转到微信后如何保证手机仍保持在目标 ssid 下? .322Wi-Fi 软件服务管理接口说明 .322接口使用说明 .322接口调用流程图 .323开通微信连 Wi-Fi 插件 325目录 325开通微信连 Wi-Fi 插件 325开通插件流程 325流程详细说明 3261. 用户进入第三方平台网站并授权登录 3262. 第三方平台获取开插件 wifi_token3263. 引导用户进入开通插件页面 3274. 用户填写信息,开通插件 3285. 跳转 callback_url .328Wi-Fi 门店管理 .328获取 WiFi
18、门店列表 .328查询门店的 WiFi 信息 .330Wi-Fi 设备管理 .332目录 332添加密码型设备 .332添加 portal 改造型设备 .333查询设备 333删除设备 335配置连网方式 336获取物料二维码 .336获取公众号连网 URL .339商家主页管理 340设置商家主页 .340查询商家主页 .341设置顶部常驻入口文案 .342Wi-Fi 数据统计 .343数据统计 343Wi-Fi 连网成功事件 .345Wi-Fi 连网成功事件 .345Wi-Fi 错误码 .346获取接口调用凭据获取 access_token access_token 是公众号的全局唯一票据
19、,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。 access_token 的存储至少要保留 512个字符空间。access_token 的有效期目前为 2 个小时,需定时刷新,重复获取将导致上次获取的 access_token 失效。 公众平台的 API 调用所需的 access_token 的使用及生成方式说明: 1、为了保密 appsecrect,第三方需要一个 access_token 获取和刷新的中控服务器。而其他业务逻辑服务器所使用的 access_token 均来自于该中控服务器,不应该各自去刷新,否则会造成 access_token 覆盖而影响业务
20、;2、目前 access_token 的有效期通过返回的 expire_in 来传达,目前是 7200 秒之内的值。中控服务器需要根据这个有效时间提前去刷新新 access_token。在刷新过程中,中控服务器对外输出的依然是老 access_token,此时公众平台后台会保证在刷新短时间内,新老 access_token 都可用,这保证了第三方业务的平滑过渡;3、access_token 的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新 access_token 的接口,这样便于业务服务器在 API 调用获知 access_token 已超时的情况下,
21、可以触发access_token 的刷新流程。如果第三方不使用中控服务器,而是选择各个业务逻辑点各自去刷新access_token,那么就可能会产生冲突,导致服务不稳定。 公众号可以使用 AppID 和 AppSecret 调用本接口来获取 access_token。AppID 和AppSecret 可在微信公众平台官网-开发者中心页中获得(需要已经成为开发者,且帐号没有异常状态)。注意调用所有微信接口时均需使用 https 协议。 接口调用请求说明 http 请求方式: GEThttps:/ 参数 是否必须 说明 grant_type 是 获取 access_token 填写 client_
22、credential appid 是 第三方用户唯一凭证 secret 是 第三方用户唯一凭证密钥,即 appsecret 返回说明 正常情况下,微信会返回下述 JSON 数据包给公众号: “access_token“:“ACCESS_TOKEN“,“expires_in“:7200参数 说明 access_token 获取到的凭证 expires_in 凭证有效时间,单位:秒 错误时微信会返回错误码等信息,JSON 数据包示例如下(该示例为 AppID 无效错误): “errcode“:40013,“errmsg“:“invalid appid“获取微信服务器 IP 地址如果公众号基于安全等
23、考虑,需要获知微信服务器的 IP 地址列表,以便进行相关限制,可以通过该接口获得微信服务器 IP 地址列表。 接口调用请求说明 http 请求方式: GEThttps:/ 参数 是否必须 说明 access_token 是 公众号的 access_token 返回说明 正常情况下,微信会返回下述 JSON 数据包给公众号: “ip_list“:“127.0.0.1“,“127.0.0.1“参数 说明 ip_list 微信服务器 IP 地址列表 错误时微信会返回错误码等信息,JSON 数据包示例如下(该示例为 AppID 无效错误): “errcode“:40013,“errmsg“:“inva
24、lid appid“接收消息接收普通消息 当普通微信用户向公众账号发消息时,微信服务器将 POST 消息的 XML 数据包到开发者填写的 URL 上。 请注意: 1、关于重试的消息排重,推荐使用 msgid 排重。2、微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。详情请见“ 发送消息-被动回复消息”。3、为了保证更高的安全保障,开发者可以在公众平台官网的开发者中心处设置消息加密。开启加密后,用户发来的消息会被加密,公众号被动回复用户的消息也需要加密(但开发者通过客服
25、接口等 API 调用形式向用户发送消息,则不受影响)。关于消息加解密的详细说明,请见“消息加解密说明”。各消息类型的推送 XML 数据包结构如下: 目录 1 文本消息 2 图片消息 3 语音消息 4 视频消息 5 小视频消息 6 地理位置消息 7 链接消息 文本消息13488318601234567890123456参数 描述 ToUserName 开发者微信号 FromUserName 发送方帐号(一个 OpenID) CreateTime 消息创建时间 (整型) MsgType text Content 文本消息内容 MsgId 消息 id,64 位整型 使用网页调试工具调试该接口 图片消
26、息13488318601234567890123456参数 描述 ToUserName 开发者微信号 FromUserName 发送方帐号(一个 OpenID) CreateTime 消息创建时间 (整型) MsgType image PicUrl 图片链接 MediaId 图片消息媒体 id,可以调用多媒体文件下载接口拉取数据。 MsgId 消息 id,64 位整型 使用网页调试工具调试该接口 语音消息13572909131234567890123456参数 描述 ToUserName 开发者微信号 FromUserName 发送方帐号(一个 OpenID) CreateTime 消息创建时
27、间 (整型) MsgType 语音为 voice MediaId 语音消息媒体 id,可以调用多媒体文件下载接口拉取数据。 Format 语音格式,如 amr,speex 等 MsgID 消息 id,64 位整型 使用网页调试工具调试该接口 请注意,开通语音识别后,用户每次发送语音给公众号时,微信会在推送的语音消息 XML 数据包中,增加一个 Recongnition 字段(注:由于客户端缓存,开发者开启或者关闭语音识别功能,对新关注者立刻生效,对已关注用户需要 24小时生效。开发者可以重新关注此帐号进行测试)。开启语音识别后的语音XML 数据包如下: 13572909131234567890
28、123456多出的字段中,Format 为语音格式,一般为 amr,Recognition 为语音识别结果,使用 UTF8 编码。 视频消息13572909131234567890123456参数 描述 ToUserName 开发者微信号 FromUserName 发送方帐号(一个 OpenID) CreateTime 消息创建时间 (整型) MsgType 视频为 video MediaId 视频消息媒体 id,可以调用多媒体文件下载接口拉取数据。 ThumbMediaId 视频消息缩略图的媒体 id,可以调用多媒体文件下载接口拉取数据。 MsgId 消息 id,64 位整型 使用网页调试工
29、具调试该接口 小视频消息13572909131234567890123456参数 描述 ToUserName 开发者微信号 FromUserName 发送方帐号(一个 OpenID) CreateTime 消息创建时间 (整型) MsgType 小视频为 shortvideo MediaId 视频消息媒体 id,可以调用多媒体文件下载接口拉取数据。 ThumbMediaId 视频消息缩略图的媒体 id,可以调用多媒体文件下载接口拉取数据。 MsgId 消息 id,64 位整型 使用网页调试工具调试该接口 地理位置消息135177636023.134521113.3588032012345678
30、90123456参数 描述 ToUserName 开发者微信号 FromUserName 发送方帐号(一个 OpenID) CreateTime 消息创建时间 (整型) MsgType location Location_X 地理位置维度 Location_Y 地理位置经度 Scale 地图缩放大小 Label 地理位置信息 MsgId 消息 id,64 位整型 使用网页调试工具调试该接口 链接消息13517763601234567890123456参数 描述 ToUserName 接收方微信号 FromUserName 发送方微信号,若为普通用户,则是一个 OpenID CreateTime
31、 消息创建时间 MsgType 消息类型,link Title 消息标题 Description 消息描述 Url 消息链接 MsgId 消息 id,64 位整型 接收事件推送在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息。其中,某些事件推送在发生后,是允许开发者回复用户的,某些则不允许,详细说明请见本页末尾的微信推送消息与事件说明。 目录 1 关注/取消关注事件 2 扫描带参数二维码事件 3 上报地理位置事件 4 自定义菜单事件 5 点击菜单拉取消息时的事件推送 6 点击菜单跳转链接时
32、的事件推送 关注/取消关注事件用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的URL。方便开发者给用户下发欢迎消息或者做帐号的解绑。 微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次 关于重试的消息排重,推荐使用 FromUserName + CreateTime 排重。 假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。 推送 XML 数据包示例: 123456789参数说明: 参数 描述 ToUserName 开发者微信号 FromUserName 发送方帐号(一个 OpenID) CreateTi
33、me 消息创建时间 (整型) MsgType 消息类型,event Event 事件类型,subscribe(订阅)、unsubscribe(取消订阅) 使用网页调试工具调试该接口 扫描带参数二维码事件用户扫描带场景值二维码时,可能推送以下两种事件: 1. 如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。 2. 如果用户已经关注公众号,则微信会将带场景值扫描事件推送给开发者。 1. 用户未关注时,进行关注后的事件推送 推送 XML 数据包示例: 123456789参数说明: 参数 描述 ToUserName 开发者微信号 FromUserName 发送方帐号(一个 OpenID) CreateTime 消息创建时间 (整型) MsgType 消息类型,event Event 事件类型,subscribe EventKey 事件 KEY 值,qrscene_为前缀,后面为二维码的参数值 Ticket 二维码的 ticket,可用来换取二维码图片 2. 用户已关注时的事件推送 推送 XML 数据包示例: 123456789参数说明: