Files
Xinyue-Search/app/api/controller/Wechat.php
T
2024-09-14 17:00:49 +08:00

79 lines
3.1 KiB
PHP

<?php
namespace app\api\controller;
use think\App;
use app\api\QfShop;
use EasyWeChat\Factory;
use EasyWeChat\OfficialAccount\Application;
use app\model\Source as SourceModel;
class Wechat extends QfShop
{
/*
微信公众平台配置如下:
微信公众平台-基本配置-生成AppSecret并设置ip白名单
启用服务器配置即可
URL:你的域名/api/wechat/serve
Token:自行生成
EncodingAESKey:随机生成即可
消息加解密方式:推荐即可
*/
private $config = [
'app_id' => 'wx7d0373771cf5e395',//公众号appid
'secret' => '3e9fefc1ccc573afb4141bf2e4e6ac3b',//公众号secret
'token' => 'aDA3Ve61uNpn5xXKgPm49wtqL2ZlvDac', //Token 自行生成32字符串 英文或数字
'aes_key' => 'r0HkOAEGKkaYdJLvaCy9ldtgzhMzDUJYPoLxUc62OMA' //微信公众平台生成后填写到这里
];
public function serve()
{
// 创建一个微信公众账号实例,使用指定的配置
$app = Factory::officialAccount($this->config);
// 设置消息处理回调函数
$app->server->push(function ($message) {
// 检查用户消息内容中是否包含“搜剧”关键字
if (strpos($message['Content'], '搜') !== false) {
// 去除“搜剧”关键字和空格,提取用户输入的剧名
$newString = str_replace(['搜剧', ' '], '', $message['Content']);
$newString = str_replace(['搜', ' '], '', $message['Content']);
// 实例化资源模型,并搜索匹配的剧名
$SourceModel = new SourceModel();
$list = $SourceModel->where('title', 'like', '%' . $newString . '%')->limit(5)->select();
// 构建回复内容
if (!$list->isEmpty()) {
$content = "";
foreach ($list as $item) {
if ($content) {
$content = $content."\n".$item['title']."\n".$item['url']."\n --------------------";
} else {
$content = $item['title']."\n".$item['url']."\n --------------------";
}
}
// 添加操作步骤说明
$content = $content."\n 步骤:点击上方链接-打开网盘-点立即查看-点右下角保存-打开文件-按文件名排序即可从第一集开始-自动-全集播放";
} else {
// 如果没有找到匹配的剧名,提示用户减少关键词尝试搜索
$content = "未找到,减少关键词尝试搜索。";
}
return $content; // 返回匹配结果或提示信息
}
// 如果不匹配条件,返回空字符串或不做任何回复
return '';
});
// 开始处理微信服务器的请求并返回响应
$response = $app->server->serve();
$response->send(); // 发送响应
}
}