微信开发者中心怎么配置
前两节我们已经完成了 微信公众号的申请 和 SAE服务器的申请.现在我们对微信公众号的`开发者中心`进行相关的配置,完成腾讯对我们的公众号服务器的验证.
操作方法
- 01
从微信公众平台打开`开发者服务中心`连接,https://mp.weixin.qq.com第一次打开时会提示用户注册成为开发者,接受协议,成为开发者.
- 02
接受协议以后会出现配置选项.平台为我们生成了`AppID`,`AppSecret`这些字段.我们需要点击`修改配置`对`服务器配置`区块进行配置.在此期间,可能会出现信息不全,需要补齐信息的提示,这时候去上传一个公众号的头像就OK了.`URL(服务器地址)`指的是我们公众号的服务的地址,也就是我们之前申请好的SAE的服务域名,如果忘记可以去sAE控台查看,我这里的是 http://weixinshow001.sinaapp.com`Token(令牌)`相当于微信服务器和我们自己的服务器之间交流的一个约定,用于确定我们的服务器接收到的消息确实是微信的服务器发出的.我这里填写为weixin.`EncodingAESKey(消息加解密密钥)`信息加密密钥.随机生成就可以了.填写完成后点击提交.这时候会提示`token`验证失败.
- 03
token验证失败的原因是,我们在SAE上还未对token进行验证.我们在`微信公众号`的接入指南http://mp.weixin.qq.com/wiki/17/ ... 70a95559800f2d.html中可以看到token的验证方式,并且提供了验证的示例代码. 开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带四个参数:参数 描述signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。timestamp 时间戳nonce 随机数echostr 随机字符串开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:1. 将token、timestamp、nonce三个参数进行字典序排序2. 将三个参数字符串拼接成一个字符串进行sha1加密3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
- 04
现在我们需要编写SAE主页的代码,实现token的验证功能.打开利用SVN抓取到本地的代码,找到`index.php`文件,并使用文本编辑器打开,在文本编辑器中输入如下代码: <?php define("TOKEN","weixin"); function checkSignature() { //从GET参数中读取三个字段的值 $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; //读取预定义的TOKEN $token = TOKEN; //对数组进行排序 $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT_STRING); //对三个字段进行sha1运算 $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); //判断我方计算的结果是否和微信端计算的结果相符 //这样利用只有微信端和我方了解的token作对比,验证访问是否来自微信官方. if( $tmpStr == $signature ){ return true; }else{ return false; } } if(checkSignature()){ echo $_GET["echostr"]; } else{ echo 'error'; } 复制代码 要注意,保存后只是储存在本地了,并没有在SAE的服务器上起作用,我们需要用svn提交代码到svn仓库,相应的更改才能生效!用svn提交代码到svn仓库,相应的更改才能生效!用svn提交代码到svn仓库,相应的更改才能生效!(重要的事情说三遍).最近有朋友指出,这个验证不通过.可能是由于用户没有通过SAE的实名认证,当用户没有通过实名认证时,SAE会在返回的消息里加上一些小尾巴,这样导致了返回给微信服务器的字符串不能匹配,出现了验证不通过的问题.
- 05
重新提交微信配置信息,这时候我们的提交会显示成功.然后点击`启用`按钮,微信公众号的处理将全部转由我们的SAE服务器处理.ps:a. SAE可以看到访问日志,在`应用控台`的`日志中心`标签下,我们能看到每次访问的数据,这对于我们调试配置不通过出现的错误有一定的用处.b. 在日志中心我们可以看到微信服务器访问的url参数,我们可以直接使用浏览器来直接GET这个url以便在页面中输出我们需要的调试数据.