初始化项目:添加后端代码、ThinkPHP框架、前端资源

This commit is contained in:
amb
2026-09-03 12:42:39 +08:00
commit 482bece22e
3726 changed files with 416708 additions and 0 deletions
@@ -0,0 +1,45 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace TuzhiEasyWeChat\Channels\Server;
use TuzhiEasyWeChat\Kernel\ServerGuard;
use TuzhiEasyWeChat\Kernel\Encryptor;
/**
* Class Guard.
*
* @author overtrue <i@overtrue.me>
*/
class Guard extends ServerGuard
{
protected function shouldReturnRawResponse(): bool
{
return !is_null($this->app['request']->get('echostr'));
}
/**
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
*/
protected function decryptMessage(array $message)
{
$encryptor = new Encryptor($this->app['config']->get('app_id'), $this->app['config']->get('token'), $this->app['config']->get('aes_key'));
return $message = $encryptor->decrypt(
$message['Encrypt'],
$this->app['request']->get('msg_signature'),
$this->app['request']->get('nonce'),
$this->app['request']->get('timestamp')
);
}
}
@@ -0,0 +1,49 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace TuzhiEasyWeChat\Channels\Server\Handlers;
use TuzhiEasyWeChat\Kernel\Contracts\EventHandlerInterface;
use TuzhiEasyWeChat\Kernel\Decorators\FinallyResult;
use TuzhiEasyWeChat\Kernel\ServiceContainer;
/**
* Class EchoStrHandler.
*
* @author overtrue <i@overtrue.me>
*/
class EchoStrHandler implements EventHandlerInterface
{
/**
* @var ServiceContainer
*/
protected $app;
/**
* EchoStrHandler constructor.
*/
public function __construct(ServiceContainer $app)
{
$this->app = $app;
}
/**
* @param mixed $payload
*
* @return FinallyResult|null
*/
public function handle($payload = null)
{
if ($str = $this->app['request']->get('echostr')) {
return new FinallyResult($str);
}
}
}
@@ -0,0 +1,46 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace TuzhiEasyWeChat\Channels\Server;
use TuzhiEasyWeChat\Kernel\Encryptor;
use TuzhiEasyWeChat\Channels\Server\Handlers\EchoStrHandler;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author overtrue <i@overtrue.me>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
!isset($app['encryptor']) && $app['encryptor'] = function ($app) {
return new Encryptor(
$app['config']['app_id'],
$app['config']['token'],
$app['config']['aes_key']
);
};
!isset($app['server']) && $app['server'] = function ($app) {
$guard = new Guard($app);
$guard->push(new EchoStrHandler($app));
return $guard;
};
}
}