1微信公众平台开发者文档tacyeh收集整理文档内容截至日期:2013-12-252目录零、首页.....................................................................................-1-一、公众平台开发接口介绍.......................................................-1-二、典型案例介绍.......................................................................-1-壹、新手接入..............................................................................-4-一、接入指南...............................................................................-4-二、典型案例介绍.......................................................................-6-三、开发者规范...........................................................................-9-贰、基础支持............................................................................-10-一、获取access_token.............................................................-10-二、全局返回码说明.................................................................-11-三、接口频率限制说明.............................................................-14-四、上传下载多媒体文件.........................................................-15-叁、接收消息............................................................................-18-一、验证消息真实性.................................................................-18-二、接收普通消息.....................................................................-19-三、接收事件推送.....................................................................-23-四、接收语音识别结果.............................................................-27-肆、发送消息............................................................................-28-一、发送被动响应消息.............................................................-28-二、发送客服消息.....................................................................-31-伍、用户管理............................................................................-35-3一、分组管理接口.....................................................................-35-二、获取用户基本信息.............................................................-39-三、获取关注者列表.................................................................-40-四、获取用户地理位置.............................................................-43-五、网页授权获取用户基本信息.............................................-43-六、网页获取用户网络状态(JS接口).................................-50-陆、自定义菜单........................................................................-50-一、自定义菜单创建接口.........................................................-50-二、自定义菜单查询接口.........................................................-53-三、自定义菜单删除接口.........................................................-54-四、自定义菜单事件推送.........................................................-54-柒、推广支持............................................................................-55-一、生成带参数的二维码.........................................................-55-二、创建二维码ticket...............................................................-55-三、通过ticket换取二维码......................................................-56-捌、WinxinJS接口..................................................................-57-一、隐藏微信中网页右上角按钮.............................................-57-二、隐藏微信中网页底部导航栏.............................................-58-三、网页获取用户网络状态.....................................................-59--1-零、首页一、公众平台开发接口介绍公众平台是为微信用户提供服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发。公众平台开发接口提供与用户进行消息交互、自定义菜单交互的能力。对于成功接入公众平台开发接口的公众账号,当用户发消息给公众号,微信公众平台服务器会使用http请求对接入的网址进行消息推送,第三方服务器可通过响应包回复特定结构,从而达到回复消息的目的。二、典型案例介绍值得借鉴的公众帐号主要是服务号,试列举并介绍如下:招商银行信用卡中心-2-如果你是持卡人,可快捷查询信用卡账单、额度及积分;快速还款、申请账单分期;微信转接人工服务;信用卡消费,微信免费笔笔提醒。如果不是持卡人,可以微信办卡!招商银行公众号通过提示消息引导用户将自己的微信号和信用卡号安全绑定。用户可以通过该公众号查询账单、收取刷卡通知等功能,这是由招行开发人员通过公众号接口实现的功能。中国南方航空-3-你可以办理值机手续,挑选座位,查询航班信息,查询目的地城市天气,并为明珠会员提供专业的服务。南方航空公众号可以让用户将明珠会员服务和微信号绑定起来。用户可以通过该公众号预订机票、查询订单,甚至办理登机牌。广东联通-4-你可以在微信里绑定手机号、积分流量,套餐余量、手机上网流量,微信专属流量查询,客服咨询。广东联通公众号可以绑定手机号,来查询流量、套餐等等功能。广东联通更与微信深度合作,购买微信沃卡可以获得微信五大特权。壹、新手接入一、接入指南第一步:申请消息接口-5-在公众平台网站的高级功能–开发模式页,点击“成为开发者”按钮,填写URL和Token,其中URL是开发者用来接收微信服务器数据的接口URL。Token可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。第二步:验证URL有效性开发者提交信息后,微信服务器将发送GET请求到填写的URL上,GET请求携带四个参数:参数描述signature微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。timestamp时间戳nonce随机数echostr随机字符串开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:1.将token、timestamp、nonce三个参数进行字典序排序;2.将三个参数字符串拼接成一个字符串进行sha1加密;3.开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。检验signature的PHP示例代码:1.privatefunctioncheckSignature()2.{3.$signature=$_GET[signature];4.$timestamp=$_GET[timestamp];5.$nonce=$_GET[nonce];6.$token=TOKEN;-6-7.$tmpArr=array($token,$timestamp,$nonce);8.sort($tmpArr);9.$tmpStr=implode($tmpArr);10.$tmpStr=sha1($tmpStr);11.if($tmpStr==$signature){12.returntrue;13.}else{14.returnfalse;15.}16.}PHP示例代码下载:第三步:成为开发者验证URL有效性成功后即接入生效,成为开发者。如果公众号类型为服务号(订阅号只能使用普通消息接口),可以在公众平台网站中申请认证,认证成功的服务号将获得众多接口权限,以满足开发者需求。此后用户每次向公众号发送消息、或者产生自定义菜单点击事件时,响应URL将得到推送。公众号调用各接口时,一般会获得正确的结果,具体结果可见对应接口的说明。返回错误时,可根据返回码来查询错误原因。全局返回码说明用户向公众号发送消息时,公众号方收到的消息发送者是一个OpenID,是使用用户微信号加密后的结果,每个用户对每个公众号有一个唯一的OpenID。此外请注意,微信公众号接口只支持80接口。