一、准备工作,注册申请公众号,个人只能申请订阅号,但是订阅号接口腾讯开放出来的很少,想要开发测试服务号的一些高级接口,就需要申请测试帐号。
微信公众平台控制中心->开发->开发者工具->公众平台测试帐号
二、配置
接口配置信息URL自定义一个地址,需要能访问,这个是验证消息事件的接口,例如这里我们设置为http://xxx.com/event/index
Token值自定义一个字符串
注意,上面两项填写好后,如果点击提交按钮的话会提示失败的信息,因为URL地址现在还不能访问,验证程序还没加上。
请将下列示例代码放到上面配置的URL所对应的文件中,这里的框架我是用自己写的,拿过去的时候稍微修改下即可。
修改类中三个常量值,注意TOKEN常量和上面设置的Token值一致
<?php require APP_PATH . '/Controller/CommonController.php'; class EventController extends CommonController { // 下面三个常量来至微信公众平台配置 // 注意这里只是演示,在项目开发中请将下面的配置移到配置文件中 const TOKEN = ''; // token值自定义,必须和公众平台的设置一致 const APPID = ''; const APPSECRET = ''; public function __construct() { parent::__construct(); } /** * 验证事件 */ public function index() { // 第一次请求(后台配置这个接口的时候)会传echostr // 以后的每一次都不会再传 if (!empty($_GET ['echostr']) && !empty($_GET ["signature"]) && !empty($_GET ["nonce"])) { $this->valid(); } else { // 监听消息事件 $this->listenEvent(); } } /** * 验证签名 */ private function valid() { $echoStr = $_GET["echostr"]; if($this->checkSignature()) { exit($echoStr); } } /** * 签名验证具体方法 * @return bool */ private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $tmpArr = array(self::TOKEN, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); return ($tmpStr == $signature) ? true : false; } /** * 监听消息事件,回复消息事件 */ private function listenEvent() { } }
代码传到服务器后,现在再点击提交按钮保存,会提示保存成功的信息。
注意:微信第一次请求上面的接口时,会带一个echostr的参数过来,我们就可以认为这是验证微信公众平台中的设置。以后的每次事件通知,微信方都不会再带这个参数了(除非再次修改配置的时候)。
好了这就是微信开发的基础准备工作。
访客评论