• 修复 WooCommerce 结帐中的错误 - 重复付款、状态不同步以及高负载时崩溃

    16 小时 前
    • 所需预算高达 850.37 USD
    • 等待表演者...
  • 在一家战斗在线商店(主题领域 - 销售汽车配件,~8-12000 SKU,300-600 个订单/天,峰值可达 30 个订单/分钟)上更新 WordPress 和一些插件后,订购和付款处理中出现严重错误。

    初始情况和环境
    - WordPress 6.5.x、WooCommerce 8.x
    - PHP 8.2、Nginx + PHP-FPM、MariaDB 10.6
    - Redis 对象缓存、Cloudflare、WP-Cron 已禁用 - 使用系统 cron
    - 支付:通过单独的插件(webhook + 回调)进行 Stripe 和本地获取
    - 交付:自定义关税计算模块+与外部API集成(高峰超时)
    - 有一个自己编写的必用插件,可以添加额外的订单字段并通过 REST 与 1C 同步状态

    症状
    - 使用卡支付时有时会创建重复订单 - 一个处于处理状态,第二个处于待处理状态
    - Stripe webhooks 定期不会更改订单状态,尽管事件已传递到 Stripe
    - 在峰值负载时,一些用户在记录订单时在/checkout/上看到500并且日志包含致命错误和死锁/锁定等待超时
    - 在 WooCommerce 管理中,有时订单卡无法打开 - 由于编辑页面上的 JS 错误而出现白屏

    该怎么办
    - 重现暂存中的问题、收集痕迹、识别根本原因并在不禁用关键集成的情况下进行修复
    - 排查 WooCommerce 版本/挂钩与自定义插件和支付模块的冲突,消除创建订单时支付和竞赛事件的双重处理
    - 修复网络钩子/回调处理,以便订单状态和元数据准确更新一次,即使在重新传递事件和网络重试时也是如此
    - 消除结帐时的 500 个错误,包括外部交付 API 超时和数据库阻塞问题
    - 修复管理面板中订单页面上的 JS 错误(更新后脚本/依赖项冲突),而不破坏自定义元框

    限制
    - 工作只需对主题进行最少的更改即可完成 - 所有编辑均通过子主题和/或单独的插件进行,无需编辑 WooCommerce/WordPress 核心
    - 您无法在生产中禁用 Redis、Cloudflare 和系统 cron - 仅通过暂存和谨慎发布进行检查
    - 访问:暂存 + 对生产日志的只读访问、通过 Git 中的 PR 进行生产更改以及通过现有管道进行部署

    预期结果
    - 以提交/PR 的形式进行修复,并明确描述原因和解决方案
    - 一组诊断日志/指标(在可用的 WP/Woo 工具内)用于监控重复错误
    - 关于监控内容以及如何安全回滚的简短说明

    验收标准(可测量)
    1) 在负载运行期间的 48 小时登台测试操作期间,没有出现重复订单 - 每 1000 笔测试付款有 0 个重复订单
    2) Stripe webhook/callback 是幂等的 - 重复传递同一事件不会改变顺序超过 1 次,也不会创建新的事件
    3) 在结账负载测试中(至少20 rps,30分钟),5xx占比不超过0.2%,结账页面平均TTFB在登台时高达800毫秒
    4) 导致白屏的 WooCommerce 订单管理错误已解决 - 订单卡打开并保存在控制台中,没有 JS 错误

    此外
    - 我将提供 Nginx/PHP-FPM 日志、WooCommerce 日志、Git 存储库的访问权限、最近更新的列表以及 3-5 个有问题的订单/付款的示例。
  • How would you rate this task?

    Sign in to leave your rating.

    Total ratings: 1

您的报价

您尚未提交此订单的报价。
点击“提交报价”发送您的报价。

需要类似的任务吗?

如果该项目接近您的需求,您可以查看该类别中的现成服务或发布您自己的任务以及所需的预算、截止日期和要求。

The project «修复 WooCommerce 结帐中的错误 - 重复付款、状态不同步以及高负载时崩溃» can be used as a reference for your own brief: what should be done, what result is needed and what budget to set.