在线付款为什么会失败?7 个常见原因及解决方法
二维码过期、金额错误、USDT 网络选错、webhook 没收到:顾客付款不成功最常见的原因,以及每种情况的应对方法。
发布于 06 十月 2026 阅读约 4 分钟
顾客想付款,订单却一直显示未付款。每一笔失败的付款都意味着丢失一笔生意,还常常带来一位不满的顾客。好消息是:大多数失败只有少数几个原因,而且每个都有简单的解决办法。

1. 二维码已过期
动态 QRIS 只在限定时间内有效。顾客打开付款页面后去泡了杯咖啡,回来时码已经过期了。
解决方法: 显示清楚的倒计时,并提供**"生成新码"**按钮,而不是让顾客重新下单。在 PAYWISE 中,您可以用 expires_in 根据顾客习惯设置有效时间。
2. 顾客关闭了页面,或应用没准备好
顾客的银行应用需要更新、要求重新登录,或者手机切换了应用,付款页面就找不到了。
解决方法: 同时通过邮件或聊天发送付款链接,让顾客可以重新打开。在码过期之前保持订单开放,不要立即取消。
3. 付款金额错误
使用静态 QRIS 或手动转账时,顾客自己输入金额,有时会输错。对于 USDT,交易所可能从金额中扣除提现手续费,导致到账金额少于应付金额。
解决方法: 使用动态 QRIS,金额已固定在码中(参见静态与动态 QRIS)。对于 USDT,请提醒顾客扣除自己的手续费后,到账金额须与页面显示的金额完全一致。在 PAYWISE,金额不足的 USDT 付款绝不会被自动标记为已付款:系统会将其标记待审核,以便与顾客协商处理。
4. USDT 通过错误的网络发送
USDT 存在于多条区块链上。PAYWISE 只接受 BEP20(BNB Smart Chain) 上的 USDT。通过其他网络发送的 USDT 不会到达付款地址,并且可能无法找回。
解决方法: 在地址旁清楚写明**"仅限 BEP20"**,并展示付款页面上的二维码。新手可以阅读什么是 USDT 和 BEP20。
5. 顾客没有 BNB 支付网络手续费
从个人钱包通过 BEP20 发送 USDT,需要少量 BNB 支付网络手续费。没有 BNB,转账根本无法发出。
解决方法: 在付款页面上说明这一点。从交易所账户发送的顾客通常不需要 BNB,因为手续费由交易所支付。
6. 付款仍在确认中
区块链付款需要一点时间确认。看到"待处理"的顾客有时会再付一次或重新下单。
解决方法: 告诉顾客付款正在确认,不需要重复付款。当资金正在到账途中时,PAYWISE 会保持 USDT 交易开放,而不是让它过期。
7. 钱已到账,但订单没有更新
顾客已付款,PAYWISE 也已标记为已付款,但您的网站仍显示"未付款"。这几乎总是 webhook 的问题:URL 错误、防火墙拦截、SSL 证书过期,或签名验证失败。
解决方法: 在后台打开该交易,查看每次 webhook 尝试以及您服务器的响应。PAYWISE 会自动重试,问题修复后您也可以重新发送 webhook。刚接触 webhook?请阅读什么是 webhook 和查看 PAYWISE API 日志。
快速检查清单
| 检查项 | 作用 |
|---|---|
| 使用金额固定的动态 QRIS | 不会出现金额错误,订单准确匹配 |
| 倒计时和"生成新码"按钮 | 减少过期付款 |
| USDT 地址旁注明"仅限 BEP20" | 避免 USDT 在其他网络丢失 |
带签名且快速返回 2xx 的 webhook |
钱一到账订单就更新 |
| 每周查看失败和过期的付款 | 在损失更多生意之前发现问题规律 |
PAYWISE 的风险信号可以帮助完成最后一项:在顾客开始抱怨之前,提示失败率上升和 webhook 错误。

