Skip to content

接收消息与回复

Stoneworld edited this page Jun 12, 2016 · 2 revisions

消息监听和回复

消息的监听再简单不过了,你可以选择监听所有类型或者指定某种类型,以及作出相应的响应,比如回复一条应答消息。

在本 SDK 中,服务端的操作,例如:服务器认证,监听事件,接收用户消息等所有微信向我们自有服务器发起请求的,都交由 Stoneworld\Wechat\Server 来处理。

获取服务端实例

<?php
use Stoneworld\Wechat\Server;
$options = array(
        'token'=>'stoneworld1992',   //填写应用接口的Token
        'encodingaeskey'=>'o1wze3492xoUVIc9ccTLJczO3BQ5pLfiHcKwtDEdqM9',//填写加密用的EncodingAESKey
        'appid'=>'wx8ac123b21f53d7a7',  //填写高级调用功能的appid
        'appsecret'=>'4ZDHIETJ6e0oENlEkRhYwzWPTrkLdXedKcPcRjCkgQkuHtQTJ12ZhWHESowrJqS9', //填写高级调用功能的密钥
        'agentid'=>'5', //应用的id
    );
$server = new Server($options);

接收消息

语法

<?php
$wechat->on('message', callable $callback); // 全部类型
// or
$wechat->on('message', string $messageType, callable $callback); // 只监听指定类型

参数说明

  • $messageType string, 指定要处理的消息类型,ex:image
  • $callback callable, 回调函数,closure 匿名函数,或者一切可调用的方法或者函数

$callback 接收一个参数:$message 为用户发送的消息对象,你可以访问请求消息的所有属性,比如:$message->FromUserName 得到发送消息的人的 openid,$message->MsgType 获取消息的类型如 text 或者 image 等

example:

<?php

use Stoneworld\Wechat\Server;
use Stoneworld\Wechat\Message;

$options = array(
        'token'=>'stoneworld1992',   //填写应用接口的Token
        'encodingaeskey'=>'o1wze3492xoUVIc9ccTLJczO3BQ5pLfiHcKwtDEdqM9',//填写加密用的EncodingAESKey
        'appid'=>'wx8ac123b21f53d7a7',  //填写高级调用功能的appid
        'appsecret'=>'4ZDHIETJ6e0oENlEkRhYwzWPTrkLdXedKcPcRjCkgQkuHtQTJ12ZhWHESowrJqS9', //填写高级调用功能的密钥
        'agentid'=>'5', //应用的id
    );
$server = new Server($options);

// 监听所有类型
$server->on('message', function($message) {
    return Message::make('text')->content('您好!');
});

// 监听指定类型
$server->on('message', 'image', function($message) {
    return Message::make('text')->content('我们已经收到您发送的图片!');
});

$result = $server->server();

echo $result;