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

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

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.14亿!阿森纳夏窗要买4大强援 下赛季剑指双冠王

狂砸3.14亿!阿森纳夏窗要买4大强援 下赛季剑指双冠王

球事百科吖
2026-06-03 12:28:49
婆婆当众骂我二手货,我笑问公公:你养了29年的儿子到底真亲生吗

婆婆当众骂我二手货,我笑问公公:你养了29年的儿子到底真亲生吗

枫红染山径
2026-06-03 09:05:50
中方收到投名状!印尼砸下31亿,抢购中方退役导弹艇,西方不解

中方收到投名状!印尼砸下31亿,抢购中方退役导弹艇,西方不解

安之若憟
2026-06-03 12:48:24
中方严肃定性,16国加入联合军团,共同围剿俄罗斯,日本已经介入

中方严肃定性,16国加入联合军团,共同围剿俄罗斯,日本已经介入

影孖看世界
2026-06-01 23:22:26
现役最佳射手因“叛国”落选?伊朗公布世界杯参赛名单

现役最佳射手因“叛国”落选?伊朗公布世界杯参赛名单

湖报体育
2026-06-02 19:20:43
香港偶遇46岁容祖儿 弯腰驼背走路肚子只剩一张皮 鞋跟高都有20cm

香港偶遇46岁容祖儿 弯腰驼背走路肚子只剩一张皮 鞋跟高都有20cm

科学发掘
2026-06-01 06:03:49
徐帆回应离婚几个月后,68岁冯小刚再惹争议,养女徐朵成导火索!

徐帆回应离婚几个月后,68岁冯小刚再惹争议,养女徐朵成导火索!

乡野小珥
2026-05-18 08:58:28
斯科蒂·皮蓬23岁儿子崩溃自白:15岁那年,同学用Future的歌羞辱我

斯科蒂·皮蓬23岁儿子崩溃自白:15岁那年,同学用Future的歌羞辱我

绿茵狂热者
2026-06-03 01:55:51
微星宣布NVIDIA RTX Spark迷你主机EdgeMesa N AI+

微星宣布NVIDIA RTX Spark迷你主机EdgeMesa N AI+

IT之家
2026-06-02 08:51:08
左手通胀右手衰退,欧美当下的困局

左手通胀右手衰退,欧美当下的困局

米筐投资
2026-06-03 07:07:13
中央5台直播女排时间表:6月3日CCTV5直播中国女排!世联赛赛程表

中央5台直播女排时间表:6月3日CCTV5直播中国女排!世联赛赛程表

等等talk
2026-06-03 12:05:12
谌旭彬:百姓躺平摆烂,食税群体怎么办?

谌旭彬:百姓躺平摆烂,食税群体怎么办?

老郭在学习
2026-06-01 17:12:48
烈日当头下,和尚躬身收麦!坚守祖训的白马寺,打了多少假僧脸?

烈日当头下,和尚躬身收麦!坚守祖训的白马寺,打了多少假僧脸?

削桐作琴
2026-06-02 15:27:07
善恶有报!许家印刚认罪1天,子女近况曝光,大儿子的安排全白费

善恶有报!许家印刚认罪1天,子女近况曝光,大儿子的安排全白费

历史伟人录
2026-05-10 22:06:40
印度抵制中国制造空调,却偷取技术

印度抵制中国制造空调,却偷取技术

郭蛹包工头
2026-06-03 00:21:04
贵州大学道歉开了很坏的头,以后市级医院想招到博士就更难了

贵州大学道歉开了很坏的头,以后市级医院想招到博士就更难了

金水路7号站
2026-06-03 08:19:18
情况有变!我国海警巡航台岛,两岸军机激烈对峙,解放军点名警告

情况有变!我国海警巡航台岛,两岸军机激烈对峙,解放军点名警告

谛听骨语本尊
2026-06-03 13:33:52
印度最高种姓“婆罗门”到底有多牛?永享一项特权,出生就是贵族

印度最高种姓“婆罗门”到底有多牛?永享一项特权,出生就是贵族

网络易不易
2026-06-02 06:00:35
曝魏宗万去世细节!3月进入医院疗养,后辈演员曝其三大暖心举动

曝魏宗万去世细节!3月进入医院疗养,后辈演员曝其三大暖心举动

法老不说教
2026-06-03 13:53:30
网友称山姆鹌鹑蛋两个装很尴尬,特别是分享男同事的时候

网友称山姆鹌鹑蛋两个装很尴尬,特别是分享男同事的时候

映射生活的身影
2026-06-01 22:00:15
2026-06-03 14:40:49
人人都是产品经理社区 incentive-icons
人人都是产品经理社区
想要成为大牛先从学做产品开始
64777文章数 311628关注度
往期回顾 全部

科技要闻

员工抗议键鼠追踪,Meta让步:可暂停30分钟

头条要闻

女子称凌晨入睡后银行卡多次被转账损失42万 银行回应

头条要闻

女子称凌晨入睡后银行卡多次被转账损失42万 银行回应

体育要闻

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

娱乐要闻

著名演员魏宗万去世!曾演活司马懿

财经要闻

左手通胀右手衰退,欧美当下的困局

汽车要闻

依托全域辅助驾驶布局 千里浩瀚助推吉利5月市场大热

态度原创

数码
家居
房产
手机
军事航空

数码要闻

搞内容创作需配多大内存?Puget实测16/32/64GB性能差异

家居要闻

江畔轻奢 观云大宅

房产要闻

突发!254亩调规,海口江东的超级学校真的快来了!

手机要闻

谷歌扩大Quick Share与AirDrop互传适配范围 覆盖更多安卓机型

军事要闻

美伊互袭波及多国 过去一夜中东局势骤然升级

无障碍浏览 进入关怀版