Magento 2.3.5-p2 adyen支付定时任务无回调错误如何排查
报错可能来源
- 旧版Adyen插件卸载/升级残留:之前安装的Adyen插件版本注册过该cron任务,后续版本移除了该任务、或是插件被卸载后,Magento数据库
cron_schedule表中仍留存该任务的调度记录,系统仍会按原有周期尝试触发 - 第三方定制/非官方Adyen扩展遗留:之前使用的第三方Adyen集成扩展、或是二次开发时添加过该cron任务,后续代码被删除但调度配置未清理
- 全局crontab配置残留:任务配置可能写在非Adyen目录的模块crontab.xml中,所以只检索adyen目录无法匹配到
报错引发订单卡Processing的原因
该cron任务原本用于处理Adyen返回的异步支付通知,任务失效后支付成功的状态无法同步到Magento系统,订单始终停留在Processing状态,依赖支付状态触发的后续发货状态更新cron自然无法正常执行。
排查解决步骤
- 清理数据库残留调度记录
执行SQL查询是否存在该任务的调度记录:SELECT * FROM cron_schedule WHERE job_code = 'adyen_payment_process_notification_queue';
如有匹配记录,直接删除残留调度:DELETE FROM cron_schedule WHERE job_code = 'adyen_payment_process_notification_queue'; - 全局检索cron配置文件
不要仅限制在adyen目录检索,全局扫描所有模块的crontab配置:grep -r "adyen_payment_process_notification_queue" app/code/ vendor/ app/etc/
若匹配到对应配置,确认所属模块是否仍在使用,废弃配置直接删除后执行Magento缓存清理命令:bin/magento cache:clean && bin/magento cache:flush - 手动触发cron验证
手动执行Adyen分组的cron任务,查看实时报错:bin/magento cron:run --group=adyen - 修复已卡住的订单
可以登录Adyen后台手动重推对应时间段的支付异步通知,同步订单支付状态;也可以写临时脚本批量处理未消费的通知记录,把对应订单状态更新为已支付,即可触发后续的发货状态更新流程。 - 生效验证
等待5分钟观察是否有新的同类型报错生成,同时测试新订单支付后状态是否能正常同步。
内容的提问来源于stack exchange,提问作者SagarPPanchal
相关产品推荐
相关产品推荐

