Wechat.php 2.7 KB
<?php

namespace app\index\controller;

use addons\wechat\model\WechatAutoreply;
use addons\wechat\model\WechatCaptcha;
use addons\wechat\model\WechatContext;
use addons\wechat\model\WechatResponse;
use addons\wechat\model\WechatConfig;

use EasyWeChat\Foundation\Application;
use addons\wechat\library\Wechat as WechatService;
use addons\wechat\library\Config as ConfigService;
use think\Log;

/**
 * 微信接口
 */
class Wechat extends \think\addons\Controller
{

    public $app = null;

    public function _initialize()
    {
        parent::_initialize();
        $this->app = new Application(ConfigService::load());
    }

    /**
     * 微信API对接接口
     */
    public function api()
    {
        $this->app->server->setMessageHandler(function ($message) {

            $wechatService = new WechatService;

            $matches = null;
            $openid = $message->FromUserName;
            $to_openid = $message->ToUserName;
            $event = $message->Event;
            $eventkey = $message->EventKey ? $message->EventKey : $message->Event;

            switch ($message->MsgType) {
                case 'event': //事件消息
                    //验证码消息
                    if (in_array($event, ['subscribe', 'SCAN'])) {
                        return $eventkey;
                    }
                    // switch ($event) {
                    //     case 'subscribe'://添加关注
                    //         $subscribeMessage = WechatConfig::value('default.subscribe.message');
                    //         $subscribeMessage = $subscribeMessage ? $subscribeMessage : "欢迎关注我们!";
                    //         return $subscribeMessage;
                    //     case 'unsubscribe'://取消关注
                    //         return '';
                    //     case 'LOCATION'://获取地理位置
                    //         return '';
                    //     case 'VIEW': //跳转链接,eventkey为链接
                    //         return '';
                    //     case 'SCAN': //扫码
                    //         return '';
                    //     default:
                    //         break;
                    // }
                    return "";
                case 'text': //文字消息
                case 'image': //图片消息
                case 'voice': //语音消息
                case 'video': //视频消息
                case 'location': //坐标消息
                case 'link': //链接消息
                default: //其它消息
                    return "";
            }
            return ""; //SUCCESS
        });
        $response = $this->app->server->serve();
        // 将响应输出
        $response->send();
    }

}