easynet.run · 全部问题场景

准备停止服务,先处理还欠用户的结果

作者准备停止维护一项生成服务,关掉运行进程很容易,但还有人付了费没拿到文件,也有人订阅尚未到期。技术入口停了,这些交付关系并没有同时结束。

少量客户可以先用订单表、邮件和现有支付平台逐项处理。已有订阅系统应负责停续费和退款。首先需要一份未完成责任清单,而不是把所有页面统一改成“已下线”。

停服可以先关闭新订单准入,再通过已接入的处理与查询操作核对在途工作。EasyNet 的调用记录帮助定位执行,但待交付、待退款和无法联系的用户仍以业务订单为准。

能完成的订单安排最后交付,不能完成的按约定退款或协商替代。产物导出只向对应买家开放,并说明领取期限;不能为了方便迁移,把所有客户文件打包成一个共享链接。

运行方确认何时停止接受工作,订单负责人跟进欠交付,支付负责人核对款项,存储负责人按约定处理资料。连接失效不会替这些人发通知或退款,已保存文件也不会因此自动删除。

用一张未开始订单、一张运行中订单和一张待领取订单演练停服。检查旧购买链接不再收新单,每张存量订单都有明确去向,无法联系的用户留下后续处理记录,而不是随着服务关闭被遗忘。

  1. 01

    停售与停续费

    旧购买链接也要检查

  2. 02

    欠单逐笔处理

    交付、退款或联系负责人

  3. 03

    限定领取窗口

    买家只取自己的文件,再处理存储

先停止新承诺,再结清旧订单,最后关闭运行入口。

停服前找出还没结案的订单

这段代码只筛选虚构订单,不发送通知、退款或删除文件。实际支付退款需要已核对的 settled_refund 状态。

本地示例 · python
orders = [
    {"id": "O-91-A", "state": "running"},
    {"id": "O-91-B", "state": "ready_to_collect"},
    {"id": "O-91-C", "state": "settled_refund"},
]
closed = {"delivered", "settled_refund"}
for order in orders:
    if order["state"] not in closed:
        print(order["id"], order["state"], "needs_owner")

预期结果:列出 O-91-A 与 O-91-B;待领取不算已交付,运行进程关闭也不会让它们自动结案。

接入时的检查项
  • 停售后不能从旧链接产生新收费订单,已付款任务仍可查询处理状态。
  • 每笔欠单都有交付或退款结论,不以提供方离线代替结案。
  • 导出不暴露他人素材,通知失败名单有人工跟进方式。
源码与接入资料