Wechat库怎么使用

2025-04-18 09:46:37

1、例如:<font size="4">// 继承Wechatclass TestWechat extends Wechat {}// step 1: 创建TestWechat类的实例$wechat = new TestWechat(array( 'token' => 'weixin', 'aeskey' => 'xxx', 'appid' => 'wx5d1fb434a1652ae8', 'debug' => true ));// setp 2: 检测消息$wechat->run();</font>

2、在创建`TestWechat`实例过程中会调用父类`Wechat`的构造函数,这里完成了token的验证,以及请求数据的解弗幺黑镯析和暂存.下面是对Wechat构造函数的说明.<font size="4">public function __construct($config=array('token'=>'', 'aeskey'=>'', 'appid'=>'', 'debug' => FALSE)) { // 获取创建实例时传进来的阐述 $token = $config['token']; $aeskey = $config['aeskey']; $appid = $config['appid']; $debug = $config['debug']; // 调用token验证函数,如果失败直接退出 // 无论是验证token还是用户发送消息都会检测token,已提高程序的安全性 if (!$this->validateSignature($token)) { exit('签名验证失败'); } // 检测是否是单纯的token验证请求 // 如果是 返回echostr并退出 if ($this->isValidateIncomingConn()) { // 网址接入验证 exit($_GET['echostr']); } // 如果是用户发送的信息请求,需要验证'HTTP_RAW_POST_DATA'数据 if (!isset($GLOBALS['HTTP_RAW_POST_DATA'])) { exit('缺少数据'); } $this->debug = $debug; set_error_handler(array(&$this, 'errorHandler')); // 设置错误处理函数,将错误通过文本消息回复显示 // 检测消息是否加密 if (isset($_GET['encrypt_type'])) { $this->encrypted = $_GET['encrypt_type'] == 'aes'; } // 如果消息加密了,调用函数对消息进行解密 if ($this->encrypted) { $this->msgCryptor = new wxBizMsgCrypt($token, $aeskey, $appid); } // 将请求消息储存起来备用 $this->savePostData();}</font>

3、之后会调用run()函数,run函数会检测微信服务器发送过来的消息类型,然后根据不同的类型,调用Wechat中的对应函数进行处理.因为我们使用的`TestWechat`集成了`Wechat`,我们只需要在`TestWechat`中复写一下用到的函数,就会在接收到相应的消息时调用到我们复写的函数.这也是我们再上一个帖子中复写`onText`函数的原因.<font size="4">public function run() { switch ($this->getRequest('msgtype')) { // 如果消息类型为 event case 'event': switch ($this->getRequest('event')) { // 订阅消息 case 'subscribe': $this->onSubscribe(); break; // 退订消息 case 'unsubscribe': $this->onUnsubscribe(); break; // case 'SCAN': $this->onScan(); break; case 'LOCATION': $this->onEventLocation(); break; case 'CLICK': $this->onClick(); break; } break; // 文本消息 case 'text': $this->onText(); break; // 图片消息 case 'image': $this->onImage(); break; // 位置消息 case 'location': $this->onLocation(); break; // 链接消息 case 'link': $this->onLink(); break; // 语音消息 case 'voice': $this->onVoice(); break; default: $this->onUnknown(); break; }}</font>

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢