Mollie 支付失败原因与处理 - 客户付款没成功怎么办
Payment 的几种失败状态
Mollie Payment 有几个"终态"——表示这笔付款不会再成功了:
| 状态 | 含义 | 谁的原因 |
|---|---|---|
| failed | 支付尝试被拒绝 | 客户侧(卡过期、余额不足)或 Mollie 风控 |
| canceled | 客户主动取消了支付流程 | 客户 |
| expired | 客户在时限内没完成支付 | 客户(通常是忘了或跳走了) |
| refunded | 已成功后被退还 | 商户或客户发起 |
最常见的失败原因
原因一:卡过期(Card Expired)
- 持卡人的 Visa/Mastercard 已经过期了
- 客户可能自己没注意到
- 解决:通知客户检查卡号和有效期,更新后重试
原因二:余额不足(Insufficient Funds)
- 客户的卡或银行账户余额不够
- 临时的——客户转账后再试
- 解决:引导客户换一种支付方式(PayPal、另一张卡、本地方式)
原因三:3DS 验证失败(3DS Declined)
- 发卡行拒绝了 3DS 验证请求
- 可能是发卡行系统临时故障,或客户在 3DS 页面超时/取消
- 解决:让客户换个支付方式,或过一会儿再试
原因四:3DS 需要但客户没完成
- Mollie 判定需要 3DS → 跳转 3DS 页面 → 客户没有完成(关闭浏览器、超时、放弃)
- Payment 最终状态可能是
canceled或expired - 解决:确保你的网站在重定向前有清晰的提示("即将跳转到银行验证页面,请在 5 分钟内完成")
原因五:Mollie 风控拦截(Fraud Detection)
- Mollie 的 Acceptance & Risk 系统判定为高风险 → 直接拒绝
- 常见信号:
- 客户在短时间内多次用不同卡尝试付款
- IP 地址在高风险地区
- 设备指纹异常
- 解决:这是 Mollie 内部风控决定的,通常无法手动干预。如果某个真实客户频繁被拦截,可以联系 Mollie 看是否有白名单选项(大商户才有)
原因六:支付方式在该国家不可用
- 比如一个荷兰客户选了 Klarna,但你的 Mollie 账号没在荷兰开通 Klarna
- Payment 创建成功但在 Checkout 里该方式显示为"不可用"
- 解决:Dashboard → 支付方式 → 确保该方式在你的运营国家是启用状态
原因七:SEPA Direct Debit 未授权
- 客户还没通过 SEPA 授权(需要在首次付款时完成授权)
- 但你的 Payment/Subscription 尝试用 SEPA Direct Debit 扣款
- 解决:确保首次 Payment 标记为
sequenceType: first,在首次付款里拿到授权后再用 SEPA
原因八:Mollie 服务故障
- Mollie 侧的服务临时不可用(极罕见)
- 可以在 Mollie Status Page(status.mollie.com)查看实时状态
- 解决:等待 Mollie 恢复服务后让客户重试
Dashboard 里看失败详情
Dashboard → Payments → 筛选状态 "Failed" → 点任意一笔
│
└── Payment Details → Failure Reason 字段
├── 有具体原因代码和描述
└── 某些状态下有 "Reason for Refusal" 链接(指向发卡行返回的具体拒绝码)
给客户的友好提示
当支付失败时,你的网站应该给客户清晰的错误提示。不要只说"支付失败"——要告诉他们下一步怎么办:
| 场景 | 建议的提示 |
|---|---|
| 卡过期 | "您的银行卡似乎已过期,请确认有效期或尝试另一种支付方式。" |
| 余额不足 | "这笔付款未成功,可能是余额不足。请尝试其他支付方式或稍后重试。" |
| 3DS 超时 | "安全验证未在规定时间内完成。请重新发起付款,在弹出的银行验证页面完成确认。" |
| 被风控拦截 | "出于安全考虑,这笔付款暂时无法完成。请尝试其他支付方式或联系客服获取帮助。" |
从源头减少失败
1. 结算页支付方式排序
- 把你确认"可用率高"的方式放在前面
- 如果荷兰客户多 → iDEAL 放第一位
- 如果卡类失败率高 → 引导用 PayPal 或本地方式
2. 3DS 触发策略
Mollie 自动判断是否需要 3DS。但你可以:
- 在 Checkout 之前明确提示"即将跳转到银行验证页面"
- 确保 3DS 跳转 URL 是 HTTPS
- 测试所有需要 3DS 的场景
3. 定期分析失败原因
- Dashboard → Statistics → Payments → Failed 原因分布
- 如果某一种失败特别多(比如 3DS 超时),针对性改进
4. Payment 超时设置
创建 Payment 时可以设置 expiresAt——超时后自动关闭。默认是 24 小时。对于容易被遗忘的场景(如订阅首次支付),可以设短一点(2 小时)。
失败 Payment 能重开吗?
不能直接重开。但可以:
- 用相同金额和相同描述创建一个新 Payment
- 给客户一个新的结算链接让他们重试
- 在 Payments API 里查询旧 Payment 获取状态信息(如果需要保留历史)
常见误区
| 误区 | 实际情况 |
|---|---|
| "Mollie 收了我的手续费但付款失败了" | Mollie 只对成功交易扣费。失败的 Payment 不收任何费用 |
| "客户说付款成功了但我没收到" | 让客户提供支付凭证 → 核对 Payment ID → 在 Mollie Dashboard 查实际状态 → 如果 Mollie 记录里是 paid,可能是你的订单系统没正确处理 Webhook |
| "把客户的 IP 加到白名单" | Mollie 没有白名单机制(除非是超大型商户有专门对接)。如果你是被频繁错误拦截,联系 Mollie Support |
继续阅读:Mollie 对比 Stripe 和 Adyen →