Laravel版Ultimate Loan Manager自动短信失效问题求助
排查Ultimate Loan Manager自动短信未触发问题的具体方向与解决方案
您好,很抱歉看到您在Ultimate Loan Manager的自动短信功能上遇到了困扰!既然手动发送短信完全正常,说明短信网关的基础配置和调用逻辑是没问题的,问题大概率出在自动触发的机制或者Laravel的任务调度环节上,下面给您梳理几个可落地的排查步骤:
1. 先确认自动短信的场景开关与触发条件
- 首先回到后台,仔细检查自动短信的配置:有些系统会给不同业务场景(比如还款提醒、付款通知)设置独立的开关,可能您只开启了全局自动短信总开关,但没单独开启「还款/付款」场景的自动发送权限。
- 核对触发规则:比如是否设置了「仅逾期还款才发送」「金额超过X才触发」这类限制条件,您测试的还款/付款记录可能刚好不符合这些规则,导致自动短信没触发。
2. 检查Laravel任务调度(Cron Job)的配置
自动短信这类定时/事件触发的任务,通常依赖Laravel的Task Scheduler来执行,而手动发送是即时触发,这是两者的核心差异:
- 登录cPanel后台,找到「Cron Jobs」工具,检查是否配置了正确的Laravel调度命令:
注意替换* * * * * php /home/your-cpanel-username/public_html/your-project-folder/artisan schedule:run >> /dev/null 2>&1/home/your-cpanel-username/public_html/your-project-folder为您项目的实际根目录路径。如果Cron Job没配置、路径错误,自动任务(包括自动短信)根本不会启动,而邮件可能是同步触发的,所以不受影响。 - 可以通过cPanel的「终端」工具,进入项目根目录,手动执行一次
php artisan schedule:run,观察终端输出的信息,有没有报错或者任务执行的提示。
3. 查看Laravel日志定位具体错误
Laravel的错误日志默认存在storage/logs/laravel.log文件里,您可以通过cPanel的「文件管理器」找到这个文件:
- 搜索
sms、send、repayment、payment这类关键词,看看有没有相关的错误记录:- 比如自动发送时短信网关API调用失败(手动发送时会即时给您反馈,但自动任务的错误可能被吞进日志);
- 或者自动触发时没正确获取到借款人的手机号、短信模板内容;
- 也可能是
storage目录没有写入权限,导致日志无法记录,但任务实际执行失败了。
4. 对比手动发送与自动发送的代码逻辑差异
既然手动发送正常,我们可以从代码层面找差异:
- 首先找到自动短信的处理代码:通常在
app/Console/Commands(定时任务)、app/Jobs(队列任务)或者app/Listeners(事件监听器)目录下。 - 对比手动发送的代码,检查:
- 自动发送时是否正确传递了借款人的手机号、短信内容等必要参数;
- 如果自动短信用了Laravel队列(Queue),需要检查队列是否正常运行:
- 查看
.env文件里的QUEUE_CONNECTION配置,如果是database或redis,需要确保队列Worker在运行,也可以手动执行php artisan queue:work,看看有没有积压的短信任务; - 如果队列配置的是
sync,那应该是即时执行,就回到日志排查具体错误。
- 查看
5. 验证环境变量与后台配置的一致性
- 检查项目根目录的
.env文件里的短信网关配置(比如API密钥、网关地址),和后台手动发送时的配置是否完全一致——有些系统会把手动发送的配置存在数据库,而自动任务读取的是环境变量,两者可能出现不一致的情况。 - 确认
.env里的APP_ENV是production(生产环境),部分系统会在非生产环境(比如local、staging)自动禁用自动任务。
6. 手动触发事件来测试
- 可以通过Laravel的
tinker工具手动触发还款/付款的事件,快速定位问题:- 打开cPanel终端,进入项目根目录,执行
php artisan tinker; - 执行如下代码(替换为您实际的付款/还款记录ID):
$payment = App\Models\Payment::find(1); // 替换为您测试的付款记录ID event(new App\Events\PaymentCreated($payment)); - 观察是否有短信发送,或者查看日志里的反应,这样能快速判断是事件没触发,还是触发后短信发送环节出了问题。
- 打开cPanel终端,进入项目根目录,执行
内容的提问来源于stack exchange,提问作者Monirus Salam
相关产品推荐
相关产品推荐

