×

使用微信公众平台开发前必读

微信公众平台开发概述微信公众平台开发者规范微信公众号接口权限说明微信公众号接口调用频次限制说明

开始开发微信公众平台

微信开发者平台接入指南微信公众平台接口域名说明微信平台开发者获取access_token获取微信服务器IP地址微信平台开发报警排查指引微信接口测试号申请

微信公众平台自定义开发

微信平台开发自定义菜单创建接口微信公众平台自定义菜单查询接口微信自定义菜单删除接口微信自定义菜单事件推送微信公众平台个性化菜单接口微信获取自定义菜单配置接口

微信公众平台 消息管理

微信平台接收普通消息微信平台开发接收事件推送微信平台被动回复用户消息微信消息加解密说明微信公众号客服消息微信高级群发接口微信公众号开发模板消息接口微信平台开发者模板消息运营规范获取微信公众号的自动回复规则

微信网页开发

微信网页授权微信网页开发样式库微信JS-SDK说明文档微信web开发者工具

微信平台素材管理

微信新增临时素材获取微信平台临时素材微信开发者新增永久素材微信开发者 删除永久素材微信开发者修改永久图文素材获取微信公众号素材总数获取微信公众平台的素材列表

微信平台 用户管理

微信公众号用户标签管理微信平台开发者设置用户备注名获取微信公众号用户的基本信息(UnionID机制)获取微信公众号用户列表获取微信用户地理位置微信公众号黑名单管理

管理微信账号

微信生成带参数的二维码微信公众号长链接转短链接接口微信认证事件推送

微信公众号数据统计

微信用户分析数据接口微信图文分析数据接口微信消息分析数据接口微信接口分析数据接口

微信卡券接口说明

微信卡券接口微信平台开发者创建卡券微信平台投放卡券核销微信平台的卡券微信公众号管理卡券微信卡券事件推送微信平台会员卡专区(一)微信平台会员卡专区(二)微信优惠券朋友的券专区微信特殊票券第三方微信开发者模式微信卡券错误码

微信门店

微信门店接口

微信小店

微信小店接口微信平台语义理解接口

微信设备功能

微信服务号设备功能介绍微信如何新增产品型号

微信平台新版客服功能

将消息转发到微信客服微信客服管理微信会话控制微信获取聊天记录

微信摇一摇周边

申请开通微信摇一摇微信设备ID微信摇一摇页面管理微信摇一摇上传图片素材微信平台管理设备与页面的关联关系微信摇一摇数据统计微信摇一摇关注的JSAPI微信摇一摇事件通知微信html5页面获取设备信息微信摇一摇获取设备及用户信息微信摇一摇红包介绍说明微信摇一摇周边错误码

微信连WIFI

微信连Wi-Fi开发者指引微信Wi-Fi硬件鉴权协议接口说明微信Wi-Fi软件服务管理接口说明开通微信连Wi-Fi插件微信Wi-Fi门店管理微信Wi-Fi设备管理配置微信WiFi联网方式微信商家主页管理微信平台Wi-Fi数据统计连网后微信公众号下发消息微信卡券投放微信Wi-Fi接口返回错误码微信连网过程常见错误码

微信扫一扫

微信扫一扫接入指南微信上进行商品创建微信商品发布微信商品管理微信扫一扫事件推送微信一物一码专区微信扫一扫错误码微信公众号在线帮助工具微信扫一扫常见问题

微信开发者平台接入指南


接入指南



微信开发者平台接入指南


接入概述


接入微信公众平台开发,开发者需要按照如下步骤完成:

  1. 填写服务器配置
  2. 验证服务器地址的有效性
  3. 依据接口文档实现业务逻辑

下面详细介绍这3个步骤。


第一步:填写服务器配置


登录微信公众平台官网后,在公众平台官网的开发-基本设置页面,勾选协议成为开发者,点击“修改配置”按钮,填写服务器地址(URL)、Token和EncodingAESKey,其中URL是开发者用来接收微信消息和事件的接口URL。Token可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥。

同时,开发者可选择消息加解密方式:明文模式、兼容模式和安全模式。模式的选择与服务器配置在提交后都会立即生效,请开发者谨慎填写及选择。加解密方式的默认状态为明文模式,选择兼容模式和安全模式需要提前配置好相关加解密代码。 


第二步:验证消息的确来自微信服务器


开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:

参数 描述
signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 时间戳
nonce 随机数
echostr 随机字符串


开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

1)将token、timestamp、nonce三个参数进行字典序排序
2)将三个参数字符串拼接成一个字符串进行sha1加密
3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信


检验signature的PHP示例代码:

private function checkSignature()
{
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
        
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}

PHP示例代码下载:下载


第三步:依据接口文档实现业务逻辑


验证URL有效性成功后即接入生效,成为开发者。你可以在公众平台网站中申请微信认证,认证成功后,将获得更多接口权限,满足更多业务需求。


成为开发者后,用户每次向公众号发送消息、或者产生自定义菜单、或产生微信支付订单等情况时,开发者填写的服务器配置URL将得到微信服务器推送过来的消息和事件,开发者可以依据自身业务逻辑进行响应,如回复消息。


公众号调用各接口时,一般会获得正确的结果,具体结果可见对应接口的说明。返回错误时,可根据返回码来查询错误原因。


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


此外,由于开发者经常有需在多个平台(移动应用、网站、公众帐号)之间共通用户帐号,统一帐号体系的需求,微信开放平台提供了UnionID机制。开发者可通过OpenID来获取用户基本信息,而如果开发者拥有多个应用(移动应用、网站应用和公众帐号,公众帐号只有在被绑定到微信开放平台帐号下后,才会获取UnionID),可通过获取用户基本信息中的UnionID来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的UnionID是唯一的。换句话说,同一用户,对同一个微信开放平台帐号下的不同应用,UnionID是相同的。详情请在微信开放平台的资源中心-移动应用开发-微信登录-授权关系接口调用指引-获取用户个人信息(UnionID机制)中查看。


另请注意,微信公众号接口必须以http://或https://开头,分别支持80端口和443端口。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)