网易首页 > 网易号 > 正文 申请入驻

一笔订单,但是误付了两笔钱!这种重复付款异常到底该如何解决?

0
分享至

编辑导读:有时会遇到这样的情况:同样一笔订单,扣了用户两笔钱。这是属于重复扣款的异常,对于被扣款的用户来说,是极差的用户体验,所以我们要避免这样的情况发生。本文将对此展开分析,希望对你有帮助。

今天的文章我们接着上次的话题,继续聊聊支付系统异常解决办法。

在上篇文章中「支付掉单异常解决方案」,我们主要提到的是支付过程中掉单的场景,用户明明付款成功,银行卡都扣款了,但是订单却还显示待付款。

而在今天的文章中,我们将聊到重复付款的异常,即同一笔订单,扣了用户两笔钱。

另外我们还将会提到另外一种异常,用户扣款成功,但是订单却支付失败的场景。

以上两种异常对于被扣款的用户来讲,使用体验极差,自己多付了钱,订单却还不成功。所以如果不及时处理这两类异常,那就真的等着被投诉吧。

一、重复付款异常 1. 异常场景

重复付款异常一般常见于网银支付,微信支付,支付宝等这类需要跳转到一个支付网关页(网银支付),或者跳转到钱包 APP(支付宝、微信),从而异步完成扣款的支付场景。

网银支付流程

这种支付场景下,只能通过接受异步通知才能知道支付结果,我们一般将其称为异步支付。

PS:有了异步支付,那么同步支付是什么?

其实同步支付指的就是调用支付接口之后,就可以立刻返回支付结果的,比如银行卡类快捷/代扣等支付就是同步支付。

当然也有一些奇葩的银行卡支付渠道,同步支付结果为受理成功,只能接受异步通知或者查询返回支付结果。

由于银行卡支付需要返回明确支付结果,对于这类渠道只能内部设计将异步转为同步,感兴趣可以看下之前历史文章:

架构设计|异步请求如何同步处理?

后台支付流程如下:

网关支付

2. 为什么会发生重复付款?

主要原因其实跟上次内部掉单异常一样,跟业务表设计有关。

上次我们提到,支付系统主要表结构如下:

在这个表结构下,只要支付订单未成功,商户就可以重复使用其内部同一订单号调用支付接口。

假设这样一个场景,用户在收银台支付时选择招行进行网银支付,当他点击支付之后,商户系统将会调用支付公司的网银接口。

这时支付系统内部将会创建一笔支付单以及关联的渠道订单,并且调用招行系统的接口。

然后用户的浏览器页面将会打开一个新页面,然后跳转到招行网站。

这时如果此时用户再次在收银台点击支付,将会再次调用支付系统接口。这时候由于支付单已存在,所以仅仅会再创建一条渠道订单记录,并且调用招行系统的接口。这时用户的浏览器将会再次打开一个招行的网站。

如果用户在两个招行网银页都完成支付,这时就发生了重复付款。

上面这种场景看起来有点傻,但是真实用户操作真的会发生。除了这种,博客园上的小伙伴还提到这么下面这种情况:

3. 解决办法

重复付款异常的主要的解决办法有两种,分为事前与事后。

事前主要的目是尽可能防止用户重复付款,主要解决办法为优化付款页面,尽可能做好提示。

「第一种优化方式,付款页面直接跳转到第三方/银行的网银页面,不要打开新的页面去跳转。」

网银同步跳转

这种方式可以防止用户误打开两个网银付款的页面,从而导致重复付款。

但是这里会有一个问题,银行网银页面付款成功之后,用户如何知道其在商户侧订单状态也成功了?

其实很简单,现在网银支付接口,一般都会有一个参数 「return_url:同步跳转地址」 。

来自支付宝开发文档

只要在接口传入这个地址,当支付成功之后,页面最终就会跳转到这个传入的地址,商户侧就可以在地址显示订单是否支付成功。

支付系统异常处理-同步跳转

上面我们提到,用户有可能会使用浏览器回退功能,跳转到支付页,从而导致重复付款。

对于这种情况,我们可以在其回退支付页时,首先向后台查询这笔订单支付结果,如果已支付成功,那就直接显示成功页面。

「第二种优化,对于这种重新打开一个页面跳转到银行网站,我们可以在页面加入弹窗提示,询问用户是否已支付完成。」

比如上面这种处理方式,当用户点击确认完成充值,可以马上向后台发起查询订单状态。

下面来聊聊事后的解决办法,「其实解决办法很简单,发起内部退款,将多余支付的一笔反向退款回去」。

支付系统内部可以有个定时任务,定时扫描支付单下有多条成功渠道订单的记录,然后选择将重复支付渠道订单发起退款。

这种方式是支付公司系统内部的操作,不需要商户侧发起指令。

二、订单失效异常 1. 异常场景

这种场景一般常见于电商购物,秒杀等购物场景。当用户下单之后,页面将会开始倒计时,用户需要在有效期内支付成功。

假设用户点击跳转到支付宝,但是其没有立刻支付,而是停留了很久,在订单最后一秒时间内完成了支付,但是这个时候订单早已因为时间到期而被自动取消。

这样就发生用户扣款已经成功,但是订单却是失败或关闭的场景的。

另外还有一种情况,用户在有效期内支付成功,但是因为网络、内部应用等问题,支付结果的异步通知过了很久才收到,这时内部订单的早因为时间到期而被取消。

2. 解决办法

「第一种解决办法,上送有效期给支付渠道。」

一般支付接口都会有一个支付有效期的字段,表明这笔支付最晚可以支付的时间。如果超时未支付,这笔支付将会被关闭。

来自支付宝开发文档

当然一般情况下,如果未上送,这个字段内部一般会有个默认的有效期,比如 3 天,这个时间就比较长了。

所以当调用支付接口时,可以将订单剩余有效期传入支付接口。这样用户如果在超时时间内未完成支付,支付将会失败。

「第二种解决办法,内部发起退款。」

这个解决办法依然事后托底的解决办法,对于支付订单已关闭,但是支付却成功的情况,发起内部退款,将钱退给用户。

内部可以有个定时任务,定时扫描支付订单已关闭但是支付却成功的情况,然后发起退款指令。

三、最后

最后用思维导图方式帮大家总结一下支付系统可能会碰到的异常。

作者:楼下小黑哥;微信公号@程序通事,支付行业,后端技术

本文由 @楼下小黑哥 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议

给作者打赏,鼓励TA抓紧创作!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
河南一男子网购了一棵车厘子树苗,精心种植了3年左右终于开花结果,竟然发现全是苹果,女儿:这车厘子树买得值,结的果子比车厘子还大

河南一男子网购了一棵车厘子树苗,精心种植了3年左右终于开花结果,竟然发现全是苹果,女儿:这车厘子树买得值,结的果子比车厘子还大

洪观新闻
2026-06-03 11:32:20
2026年全国高考报名人数为1290万人;教育部:严禁炒作“高考状元”“升学率”,纠治奢华录取通知书

2026年全国高考报名人数为1290万人;教育部:严禁炒作“高考状元”“升学率”,纠治奢华录取通知书

每日经济新闻
2026-06-03 17:38:29
“无儿无女”现象席卷全国,7000万女性无后代,这个死局怎么破?

“无儿无女”现象席卷全国,7000万女性无后代,这个死局怎么破?

探源历史
2026-06-03 00:13:51
2004年广州一女子投资56万入股招商银行,9年后,分红把她吓坏了

2004年广州一女子投资56万入股招商银行,9年后,分红把她吓坏了

如烟若梦
2025-05-08 15:08:13
香芋紫健身套装穿搭,将知性内敛与饱满体态巧妙融合

香芋紫健身套装穿搭,将知性内敛与饱满体态巧妙融合

只要高兴就好
2026-06-02 17:56:06
中国女排0-3不敌欧洲劲旅,遭遇世界女排联赛南京站开门黑

中国女排0-3不敌欧洲劲旅,遭遇世界女排联赛南京站开门黑

侧身凌空斩
2026-06-03 21:12:33
从0-1到5-3!土伦杯沙特队火力全开,中国队跌到倒数第2名

从0-1到5-3!土伦杯沙特队火力全开,中国队跌到倒数第2名

何老师呀
2026-06-03 05:25:11
虞书欣亲爹被彻查!俞灏明被王晓晨整抑郁了!

虞书欣亲爹被彻查!俞灏明被王晓晨整抑郁了!

八卦疯叔
2026-06-03 11:51:54
比美国还嚣张!中使馆直接发最强战斗檄文:限4天内必须解释清楚

比美国还嚣张!中使馆直接发最强战斗檄文:限4天内必须解释清楚

田园小归
2026-06-01 09:31:15
印军上将多年后透露:2020年加勒万那夜,士兵和将军想打,打不动

印军上将多年后透露:2020年加勒万那夜,士兵和将军想打,打不动

贱议你读史
2026-06-03 17:03:53
真正的演员,走了

真正的演员,走了

中国新闻周刊
2026-06-03 11:53:08
佩斯科夫称“特别军事行动”是为了防止遭受圣彼得堡那样的袭击

佩斯科夫称“特别军事行动”是为了防止遭受圣彼得堡那样的袭击

山河路口
2026-06-03 20:04:38
727亿运河通航,美国南海战略布局彻底黄了

727亿运河通航,美国南海战略布局彻底黄了

飘逸的云朵
2026-06-03 15:12:01
学历大放水!清华一年毕业3000多博士,比哈佛耶鲁等五所世界名校加起来多出30%

学历大放水!清华一年毕业3000多博士,比哈佛耶鲁等五所世界名校加起来多出30%

爆角追踪
2026-06-02 22:12:58
TVB老戏骨钟景辉离世,一生未婚无儿无女,唯一绯闻对象已故13年

TVB老戏骨钟景辉离世,一生未婚无儿无女,唯一绯闻对象已故13年

娱乐E君
2026-06-03 17:33:48
沉默45年,中国第二轮"严打"终于来了!目标改变总体战正式打响

沉默45年,中国第二轮"严打"终于来了!目标改变总体战正式打响

荐史
2026-05-03 13:48:04
高盛CEO所罗门谈人工智能:当前市场贪婪多于恐慌

高盛CEO所罗门谈人工智能:当前市场贪婪多于恐慌

IT之家
2026-06-03 10:57:44
6人通铺!前国足主帅李铁狱中生活曝光,每晚还要值班2小时

6人通铺!前国足主帅李铁狱中生活曝光,每晚还要值班2小时

十点体坛
2026-06-02 21:20:28
我飞北京动手术,想在亲姐姐家借住3天被拒,我二话不说,当晚就停了帮她还了2年的房贷

我飞北京动手术,想在亲姐姐家借住3天被拒,我二话不说,当晚就停了帮她还了2年的房贷

感觉会火
2026-04-16 18:21:45
完了!总决赛主裁判是他!这轮真悬了!

完了!总决赛主裁判是他!这轮真悬了!

柚子说球
2026-06-03 16:46:32
2026-06-04 05:15:00
人人都是产品经理社区 incentive-icons
人人都是产品经理社区
想要成为大牛先从学做产品开始
64780文章数 311628关注度
往期回顾 全部

科技要闻

传DeepSeek融资意向500亿:腾讯投100亿

头条要闻

男子不想上班辞职后上武当山当道士 8个月后选择下山

头条要闻

男子不想上班辞职后上武当山当道士 8个月后选择下山

体育要闻

选择中国品牌的库里,和他们的巨大野心

娱乐要闻

官方痛批乱象 刘涛郑恺等艺人遭点名

财经要闻

AI,开始偷懒了?

汽车要闻

专访蒋平:安全不做高低配 长安要让安全技术普惠

态度原创

旅游
数码
本地
艺术
公开课

旅游要闻

昆明郊野公园“无尽夏”绣球花展迎来盛花期

数码要闻

高通CEO安蒙:“2026年是智能体之年”,Token成AI新货币

本地新闻

用杨柳青年画的方式,打开天津

艺术要闻

二十年前割麦的场景

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版