From a36a2f01204a1391ba32040456b7fc450b41dd54 Mon Sep 17 00:00:00 2001 From: lion <120344285@qq.com> Date: Thu, 30 Jul 2026 12:00:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E4=BA=8C=E7=BB=B4=E7=A0=81?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Console/Commands/SendNotification.php | 12 ++------- .../Controllers/Admin/CourseController.php | 4 +-- .../Controllers/Mobile/UserController.php | 6 +---- app/Http/functions.php | 27 +++++++++++++++++++ app/Models/Course.php | 4 +-- app/Models/CourseContent.php | 6 +---- wechat_qrcode_diag.php | 15 ++++++++++- 7 files changed, 49 insertions(+), 25 deletions(-) diff --git a/app/Console/Commands/SendNotification.php b/app/Console/Commands/SendNotification.php index fd29d04..6db490f 100755 --- a/app/Console/Commands/SendNotification.php +++ b/app/Console/Commands/SendNotification.php @@ -259,11 +259,7 @@ class SendNotification extends Command */ public function urlLink() { - $config = [ - 'app_id' => config('app.applet_appid'), - 'secret' => config('app.applet_secret') - ]; - $app = Factory::miniProgram($config); + $app = Factory::miniProgram(miniProgramConfig()); $result = $app->url_link->generate([]); return $result['url_link'] ?? ''; } @@ -273,11 +269,7 @@ class SendNotification extends Command */ public function appletNotice($vo, $sendData) { - $config = [ - 'app_id' => config('app.applet_appid'), - 'secret' => config('app.applet_secret') - ]; - $app = Factory::miniProgram($config); + $app = Factory::miniProgram(miniProgramConfig()); $result = $app->subscribe_message->send($sendData); // 写记录 $vo->via_times++; diff --git a/app/Http/Controllers/Admin/CourseController.php b/app/Http/Controllers/Admin/CourseController.php index ecd3082..7e5fb73 100755 --- a/app/Http/Controllers/Admin/CourseController.php +++ b/app/Http/Controllers/Admin/CourseController.php @@ -470,10 +470,10 @@ class CourseController extends BaseController } $debug('request wechat app_code'); - $app = Factory::miniProgram([ + $app = Factory::miniProgram(miniProgramConfig([ 'app_id' => $appId, 'secret' => $secret, - ]); + ])); $tmp = $app->app_code->get('packages/course/detail?id=' . $courseId, [ 'env_version' => 'release', ]); diff --git a/app/Http/Controllers/Mobile/UserController.php b/app/Http/Controllers/Mobile/UserController.php index 27e9223..3fb78c6 100755 --- a/app/Http/Controllers/Mobile/UserController.php +++ b/app/Http/Controllers/Mobile/UserController.php @@ -310,11 +310,7 @@ class UserController extends CommonController if ($validator->fails()) { return $this->fail([ResponseCode::ERROR_PARAMETER, implode(',', $validator->errors()->all())]); } - $config = [ - 'app_id' => \config('app.applet_appid'), - 'secret' => \config('app.applet_secret') - ]; - $app = Factory::miniProgram($config); + $app = Factory::miniProgram(miniProgramConfig()); $result = $app->phone_number->getUserPhoneNumber($all['code']); $mobile = $result['phone_info']['purePhoneNumber'] ?? ''; // 判断手机号是否存在 diff --git a/app/Http/functions.php b/app/Http/functions.php index e5e3d3c..c694553 100755 --- a/app/Http/functions.php +++ b/app/Http/functions.php @@ -722,6 +722,33 @@ function getDates($start, $end) return $temp; // 返回data型数据 } +/** + * EasyWeChat 小程序配置(日志写到 storage,避免 FPM 无权限写 /tmp/easywechat) + */ +function miniProgramConfig(array $extra = []): array +{ + $logPath = storage_path('logs/easywechat.log'); + $logDir = dirname($logPath); + if (!is_dir($logDir)) { + @mkdir($logDir, 0755, true); + } + + return array_replace_recursive([ + 'app_id' => (string) config('app.applet_appid'), + 'secret' => (string) config('app.applet_secret'), + 'log' => [ + 'default' => 'prod', + 'channels' => [ + 'prod' => [ + 'driver' => 'single', + 'path' => $logPath, + 'level' => 'error', + ], + ], + ], + ], $extra); +} + /** * 将JSON字符串或数组的键值对组合成"键:值,键:值"格式的字符串 * diff --git a/app/Models/Course.php b/app/Models/Course.php index f0cd0de..f5dbe31 100755 --- a/app/Models/Course.php +++ b/app/Models/Course.php @@ -312,10 +312,10 @@ class Course extends SoftDeletesModel } try { - $app = Factory::miniProgram([ + $app = Factory::miniProgram(miniProgramConfig([ 'app_id' => $appId, 'secret' => $secret, - ]); + ])); $tmp = $app->app_code->get($page, [ 'env_version' => 'release', ]); diff --git a/app/Models/CourseContent.php b/app/Models/CourseContent.php index 615839e..0581ff1 100755 --- a/app/Models/CourseContent.php +++ b/app/Models/CourseContent.php @@ -82,11 +82,7 @@ class CourseContent extends SoftDeletesModel if ($fileSys->exists($path)) { return $url; } - $config = [ - 'app_id' => \config('app.applet_appid'), - 'secret' => \config('app.applet_secret') - ]; - $app = Factory::miniProgram($config); + $app = Factory::miniProgram(miniProgramConfig()); $tmp = $app->app_code->get('/packages/sign/index?course_content_id=' . $courseContentId, [ 'env_version' => "release" // 正式版 //'env_version' => "trial" // 体验版 diff --git a/wechat_qrcode_diag.php b/wechat_qrcode_diag.php index 381738a..8516322 100644 --- a/wechat_qrcode_diag.php +++ b/wechat_qrcode_diag.php @@ -124,9 +124,22 @@ if ($appId === '' || $secretCfg === '') { $put('skip: missing appid/secret'); } else { try { - $mini = EasyWeChat\Factory::miniProgram([ + $mini = EasyWeChat\Factory::miniProgram(function_exists('miniProgramConfig') ? miniProgramConfig([ 'app_id' => $appId, 'secret' => $secretCfg, + ]) : [ + 'app_id' => $appId, + 'secret' => $secretCfg, + 'log' => [ + 'default' => 'prod', + 'channels' => [ + 'prod' => [ + 'driver' => 'single', + 'path' => storage_path('logs/easywechat.log'), + 'level' => 'error', + ], + ], + ], ]); $token = $mini->access_token->getToken(true); $put('token_ok=yes');