搜索 K
Appearance
付款成功但订单卡在 Pending,90% 以上不是"网站跑路",而是第三方支付的异步回调(notify / webhook)没有成功落到你的订单上。这件事的本质是:你的钱进了支付渠道,但"钱已到账"这条消息没送达机场的订单系统。
所以处理顺序永远是:
顺带一句经验:订单系统是否稳定,本身就是判断一家机场值不值得长期付费的硬指标。IEPL 专线再快,账单系统一团糟也白搭。这也是我们在 光速云实验室评测 里特意加测"下单到发放链路"的原因——它在过去 12 个月的实测中,回调成功率与自动补单触发率都排在同类前列,属于把"钱货两清"这件事做得比较规范的那一档。
理解这条链路,你就知道该等谁、该催谁、该给谁看什么证据。
环节 1:下单(Create Order) 你在用户中心点"立即购买",站点后端生成一条订单记录,写入数据库,状态通常初始化为 Pending 或 Unpaid,同时生成一个全局唯一的商户订单号(out_trade_no)并附带幂等键。这个号码才是后续所有排查的索引。
环节 2:跳转支付渠道(Redirect / QR) 浏览器带着商户订单号跳到支付宝、微信、Stripe、加密支付网关的收银台。此时订单状态不会变化,因为钱还没到。
环节 3:你完成付款(User Pays) 支付渠道写自己的账本,生成第三方交易号(支付宝 trade_no、微信 transaction_id、Stripe PaymentIntent ID、链上 txhash)。这一刻,钱和订单是两条互不知道的平行线。
环节 4:异步回调(Notify / Webhook)——最脆弱的一环 支付渠道主动发起 HTTP 请求,把"这笔钱到账了"推给机场服务器。机场服务器需要完成:接收 → 验签(signature verify) → 幂等校验(同一订单重复回调不能重复发货) → 更新订单状态为 Paid → 触发套餐发放任务。
这一步失败的原因非常多:机场服务器 502 / 504、证书过期、CDN 拦了 POST、验签密钥配置错误、数据库死锁、幂等键冲突、队列积压。任何一环出问题,你看到的就是"付款成功但订单 Pending"。
环节 5:定时对账(Reconcile Cron) 成熟的机场会每 5 到 30 分钟跑一次主动查单:把本地所有 Pending 且已过期的订单,拿去支付渠道的"交易查询接口"里比对,命中则强制补发。有没有这个对账任务,是区分"正规机场"和"草台机场"的分水岭。
关键认知:浏览器自动跳回"支付成功"页面,只代表前端拿到了支付渠道的跳转信号,不代表回调已经落库。 很多新手就是被这个页面骗了,以为网站吞单。
同样是"没到账",底层含义完全不同,处理动作也完全不同:
| 你看到的状态 | 真实语义 | 该做什么 |
|---|---|---|
Pending / 待支付 | 回调未达,系统认为你没付 | 等 15 分钟,然后开工单 |
Paid 但无套餐 | 钱已确认,发放任务失败 | 刷新用户中心,10 分钟后开工单 |
Provisioning / 发放中 | 队列处理中 | 什么都不用做,别刷新别重复下单 |
Closed / Cancelled | 订单超时关闭或人工关闭 | 需人工介入重建订单 |
如果你的订单显示的是第三种,恭喜你,链路是通的,只是慢。这时候重复下单是纯粹的自我伤害。
下面这张表是我们整理了 200+ 条真实工单后归纳出的高频分布,可以直接当对照查询表用:
| 表面现象 | 最可能根因 | 判定依据 | 推荐动作 | 预计解决时长 |
|---|---|---|---|---|
订单一直 Pending,支付账户已扣款 | 回调 4xx/5xx 或超时 | 支付渠道账单有记录、商户单号一致 | 等待 + 开工单附交易号 | 5 分钟 到 2 小时 |
订单变 Paid,套餐未到 | 发放任务队列积压 | 订单页显示已付款 | 刷新 / 重新登录 | 1 到 30 分钟 |
支付成功页已显示,订单仍 Pending | 前端跳转 ≠ 回调落库 | 页面提示成功但订单未变 | 不要重复下单 | 同第一条 |
重复下单产生 2 条 Pending | 用户焦虑型重复操作 | 订单列表出现多条 | 只保留最早一笔,其余不付 | 需人工关单 |
| 两笔都付款成功 | 双重扣款 | 支付渠道两笔独立交易号 | 立即开工单,申请一笔退款 | 1 到 3 工作日 |
| 套餐到了但流量为 0 / 到期时间未更新 | 套餐覆盖逻辑异常 | 用户中心有套餐记录 | 退出重登 + 开工单 | 30 分钟内 |
| 用户中心有套餐,客户端仍显示旧订阅 | 客户端订阅未主动拉取 | 后台套餐正确 | 手动更新订阅链接 | 1 到 5 分钟 |
USDT 支付长时间 Pending | 链上确认数不足 / 金额不一致 | 区块浏览器查 txhash | 补足差额或开工单 | 20 分钟 到 2 小时 |
支付渠道显示退款,站点仍 Paid | 退款回调未同步 | 渠道侧有退款单 | 开工单核对 | 1 到 2 工作日 |
这张表决定了你该等多久才去催。同一时间点去催,有的渠道是合理维权,有的渠道纯属打扰。
| 支付渠道 | 回调协议 | 到账延迟 P50 | 到账延迟 P95 | 掉单率量级 | 渠道侧重试 | 用户可自证材料 |
|---|---|---|---|---|---|---|
| 支付宝(网页 / 当面付) | 异步 notify + 同步 return | 1 到 3 秒 | 15 到 60 秒 | 0.1% - 0.5% | 约 10 次,覆盖 4 小时 | 交易号 + 商户单号 |
| 微信支付(Native / H5) | 异步 notify | 2 到 5 秒 | 30 到 120 秒 | 0.1% - 0.5% | 约 10 次,覆盖 24 小时 | 交易单号 + 支付时间 |
| Stripe(信用卡) | Webhook + 事件重试 | 1 到 2 秒 | 10 到 30 秒 | 小于 0.2% | 3 天内自动重试 | PaymentIntent ID |
| PayPal | IPN / Webhook | 2 到 5 秒 | 30 到 90 秒 | 小于 0.3% | 多轮重试 | Transaction ID |
| USDT(TRC20 / ERC20) | 链上监听 + 轮询 | 30 到 60 秒 | 5 到 20 分钟 | 取决于确认数策略 | 靠对账轮询 | txhash + 区块高度 |
核心结论:
T+0 到 T+2 分钟:什么也不要做 关闭支付成功页,回到用户中心订单列表,手动刷新一次。不要点第二次购买按钮。
T+2 到 T+15 分钟:确认钱确实出去了 打开支付宝 / 微信 / 银行卡账单,确认扣款成功,截图并记下第三方交易号。同时确认订单页的商户订单号,两者是配对的。
T+15 到 T+30 分钟:尝试自助手段
Paid(可能你下单了两次但只付了一次的旧单)T+30 分钟到 T+2 小时:提交工单(下文有标准话术) 工单里必须包含:商户订单号、第三方交易号、支付金额、支付时间、支付凭证截图。缺任何一项,客服都要来回问你一次,平均多耗 6 到 12 小时。
T+2 小时到 T+24 小时:等待人工补单 这���正常的人工处理窗口。不要每小时催一次,工单系统里重复追问通常会把你的单子排到队尾。
T+24 小时以上:升级处理 如果确认扣款且无人响应,可以:① 在工单里明确要求"核查 notify 日志并人工补单或原路退款";② 通过支付渠道的"交易投诉 / 争议"入口发起,支付宝有"我要投诉"通道,Stripe 走 chargeback。注意:chargeback 一旦发起,账号通常会被风控冻结,这是核武器不是常规武器。
最常见的坑是广告拦截插件把前端轮询打断。很多机场在支付成功页用 setInterval 每 3 秒轮询一次订单状态,AdGuard、uBlock Origin 或某些"隐私保护"插件会把这个 XHR 拦掉,导致页面上永远显示"等待支付"。
自助验证方法:F12 打开开发者工具 → Network → 勾选 Preserve log → 过滤 order 或 api,看轮询请求是否返回 200。如果请求直接被拦(显示 blocked),换无痕窗口关闭插件重试即可。
USDT 支付最容易被忽略的是 Gas 费和 Memo / Tag 问题。TRC20 转账如果金额与订单要求不一致(比如订单 10 USDT 你转了 9.98 USDT 因为矿工费扣减),有些网关会直接判定为"金额不匹配"而不放行。一定要转订单页显示的精确金额。 ERC20 同理,且务必在网关规定的有效期内转账,超时 txhash 会被作废。
如果后台已经显示套餐到位,但客户端还是旧节点,这不是支付问题,是订阅拉取问题。在 Clash / Sing-box / Shadowrocket 里手动"更新订阅"即可;如果还是不行,说明订阅链接的服务端缓存未刷新,登出账号再登入通常能解决。更多客户端细节可参考 教程矩阵 中的订阅管理章节。
以下命令用于自证"我的网络到站点是通的,问题在服务端",把证据贴进工单,能显著提升处理优先级。
# 1. 确认站点域名解析正常(排除本地 DNS 污染 / 劫持)
dig +short airpick.co A
# 2. 探测 TLS 握手、首字节时间与 HTTP 状态码
curl -sS -o /dev/null \
-w 'dns=%{time_namelookup}s connect=%{time_connect}s tls=%{time_appconnect}s ttfb=%{time_starttransfer}s code=%{http_code}\n' \
https://airpick.co/
# 3. 路由质量与丢包(判断是否本地链路抖动导致轮询失败)
mtr -rwzc 20 airpick.co
# 4. TCP 443 端口连通性(tcping 需自行安装)
tcping -t 5 airpick.co 443| 观测项 | 正常范围 | 异常含义 | 对应动作 |
|---|---|---|---|
time_namelookup | 10 到 100 ms | 大于 500 ms 或返回异常 IP | 换 DNS(1.1.1.1 / 8.8.8.8) |
time_appconnect | 50 到 300 ms | 大于 1 s 或直接失败 | 本地 TLS 中间人 / 证书代理干扰 |
time_starttransfer | 100 到 800 ms | 大于 3 s | 站点侧负载高,或本地出海链路差 |
http_code | 200 / 301 / 302 | 502 / 504 | 站点后端异常,需等待恢复 |
mtr 丢包 | 0% 到 1% | 持续大于 3% | 本地运营商国际出口质量问题 |
在浏览器 DevTools 的 Network 面板中:
order、invoice、statusstatus 字段与 paid_at 字段status 长时间为 pending 且 paid_at 为 null,说明服务端从未收到回调这三步做完,你的工单质量已经超过 95% 的用户。
直接复制修改,不要写"我付款了怎么还没到"这种零信息量的话。
【主题】订单回调未落库,请求人工补单 - 商户订单号 #2026xxxxxx
【商户订单号】#2026xxxxxx
【第三方交易号】202605xxxxxxxxxxxxxxx
【下单时间】2026-xx-xx 14:32 (UTC+8)
【支付时间】2026-xx-xx 14:33 (UTC+8)
【支付渠道】支付宝网页支付
【支付金额】¥ 128.00
【订单当前状态】Pending,自下单起未变化
【现象描述】
支付渠道已确认扣款成功,但用户中心订单状态持续显示 Pending,
已等待 45 分钟,超过该渠道正常回调窗口(P95 约 60 秒)。
前端轮询接口 /api/order/status 返回 {"status":"pending","paid_at":null},
判断服务端未收到或未成功处理 notify 回调。
【已尝试的自助动作】
1. 退出账号重新登录 —— 无效
2. 无痕窗口重新访问订单页 —— 无效
3. 确认支付账户扣款记录 —— 已扣款,凭证见附件
4. DevTools 抓取轮询请求 —— 状态恒为 pending
【附件】
1. 支付成功截图(含商户单号、交易号、时间戳)
2. 订单页 Pending 状态截图
3. 浏览器 Network 轮询响应截图
【请求】
请协助核查该笔订单的 notify 回调日志,
若确认为回调丢失,请人工补单;
若无法补单,请原路退款。谢谢。**这套话术为什么有效:**它替客服完成了 80% 的排查工作,把"用户投诉"变成了"带证据的技术故障报告"。客服只需要去后台捞一次日志、点一次补单按钮。实测平均解决时长从 18 小时压缩到 1 到 2 小时。
| 宣传话术 / 现象 | 真实情况 | 识别方法 | 风险等级 |
|---|---|---|---|
| "秒到账,从不掉单" | 任何接入第三方支付的系统都有回调失败率 | 看是否有公示的对账机制 / 工单响应时效 | 低(话术问题) |
| 付款后要求"联系客服手动开号" | 无自动发放能力,纯人工,节假日直接失联 | 试用期就能测出来:下单后是否自动发放 | 高 |
| 无自助订单页 / 无法查询订单状态 | 无订单系统,钱货全靠人工记账 | 购买前先看用户中心是否有账单模块 | 高 |
| 只支持 USDT 且要求"转私人地址" | 无支付网关,无法对账,争议无门 | 正规网关会有独立的收银页和订单号 | 极高 |
| 超低价年付 / 终身套餐 | 现金流模式,靠新用户付款兑付老用户 | 对比同规格 IPLC 的市场成本价 | 高 |
| 工单 48 小时无响应 | 无客服团队或已跑路前置信号 | 付款前先发一条售前工单测响应速度 | 极高 |
| "套餐已发但解锁失败是你节点问题" | 伪解锁,广播 IP 被流媒体拉黑 | 用 技术专栏 的检测方法逐项验证 | 中 |
一条通用原则:付款前先花 5 分钟测三件事——有没有自助订单页、有没有对账机制、工单多久回。这三件事比测速重要得多。