首页 > 其他分享 >系统之间的一致性问题 -- 支付成功显示未支付

系统之间的一致性问题 -- 支付成功显示未支付

时间:2024-04-28 12:55:48浏览次数:11  
标签:-- 系统 查询 重试 如果 支付 一致性 第三方

系统之间的一致性问题 -- 支付成功显示未支付:

接入第三方系统的支付接口,支付成功后,却显示未支付。

这种一般是系统之间的状态不一致导致的。

问题分析:

先查看第三方系统的支付状态。

如果第三方系统的支付状态也是未支付,那么说明第三方系统的状态有问题。

如果第三方系统的支付状态是支付成功,那么说明系统之间存在不一致性。

解决方法:

  • 主动查询:

支付后,一般是通过回调来获取支付结果的。如果第三方系统没有回调,那么当前系统可以主动查询第三方系统的支付状态。

  • 延时查询/定时查询:

服务端可以重试,做延时查询的。

支付之后,主动查询,如果查询到的支付状态是未支付,那么服务端可以把订单放到延时队列中,1秒后再次查询,如果1秒后还是未支付,再次放入延时队列。根据业务需要,调整后续的时间间隔。

如果系统的数据量不大,也可以直接用定时任务,扫描数据表中未支付的订单,再查询第三方系统。

  • 客户端重试:

服务端可以做重试,但是没法在重试后刷新页面,如果是客户端重试,可以让用户尽快看到最新的支付结果。

客户端重试,不需要做太多次,可以每隔一秒查询一次支付结果,如果是未支付就继续查询,最多三次。

一般三秒内如果还是查不到支付成功的结果,那么就没必要在客户端继续重试了。

  • 页面展示中间状态:

用户支付之后,如果第三方系统的支付状态还是未支付,当前系统可以展示 为 "支付中" 。

如果付款之后,展示 "未支付", 用户可能会投诉,但是如果 付款之后,展示的是 "支付中", 用户或许会主动刷新页面,等待最新的支付结果。

其他业务的一致性

不止是 支付,其他业务如果存在一致性问题,也可以如上处理。

标签:--,系统,查询,重试,如果,支付,一致性,第三方
From: https://www.cnblogs.com/expiator/p/18163521

相关文章

  • Linux: Desktop Environment DE GUI
     Checkwhichdesktopenvironmentyouareusingecho$XDG_CURRENT_DESKTOP FROMGUI gnome-shell--version gdm3--version DisplayManagerVSDisplayServer CheckwhetherWaylandorXorgisinuse(DisplayServer)必须使用GUIte......
  • 阿里云短信服务
    publicstaticcom.aliyun.dysmsapi20170525.ClientcreateClient(StringaccessKeyId,StringaccessKeySecret)throwsException{//创建短信服务客户端并返回//创建一个配置对象com.aliyun.teaopenapi.models.Configconfig=newcom.aliyun.teaopenapi.mo......
  • 各大银行账号开头是:
    各大银行账号开头是:436742中国建设银行VISA龙卡借记卡   436745中国建设银行VISA龙卡贷记卡   622280中国建设银行支付宝龙卡借记卡  458123 交通银行VISA普通卡  521899交通银行MC信用卡普通卡  622260交通银行太平洋卡借记卡  402674上海......
  • Util 应用框架 UI 全新升级
    UtilUI已经开发多年,并在多家公司的项目使用.不过一直以来,UtilUI存在一些缺陷,始终未能解决.最近几个月,Util团队下定决心,终于彻底解决了所有已知缺陷.Util应用框架UI介绍Util应用框架UI建立在Angular,Ng-Zorro,Ng-Alain基础之上,用于开发企业中后台.......
  • ClubSphere项目主要风险和典型用户
    一.项目风险分析机会风险一、市场风险:1.市场接受度:市场对于我们软件的接受时间不确定,对我们的软件可能表现出较低的接受度。2.市场发展趋势:市场未来发展不确定,对于社团软件需求可能下降。3.市场知名度与拓展:软件前期在市场的知名度不高影响不大,极有可能被市场淘汰。4.市场宣......
  • 脚本语言系列之Python | python练习题最全题库(1)
    脚本语言系列之Python|python练习题最全题库(1)脚本语言系列之Python|python练习题最全题库(1) 精选python语言基础的填空题400+,并附有答案,初学者一定要刷一遍。刷题前,可以先看一遍基础知识点,已梳理好,移步:测试allen说:脚本语言系列之Python|系列文章传送门这......
  • 一键启动的AI离线知识库,无需复杂环境依赖,小白都能上手了
    https://www.cnblogs.com/xuzeyu/p/18161896 简介在人工智能技术飞速发展的今天,我们经常面临一个挑战:如何快速、简便地部署和使用AI技术?AntSK项目,一个开源的AI知识库和智能体,就是为了解决这一问题而诞生的。现在,我们自豪地宣布,AntSK已经实现了无需复杂部署的一键启动功能,让每......
  • 实验三——软件测试
    一、实验题目:软件测试二、实验目的1、熟悉开发环境下的自动化测试工具;1、利用自动化测试工具进行自动化单元测试。三、实验内容1、选择开发环境,IDEA或PYCHARM任选其一;2、基于所选择的开发环境实现对输入的n个整数进行排序的代码;3、对所编写代码设计测试用例;4、基于所选择......
  • 开源相机管理库Aravis例程学习(五)——camera-api
    目录简介例程代码函数说明arv_camera_get_regionarv_camera_get_pixel_format_as_stringarv_camera_get_pixel_formatARV_PIXEL_FORMAT_BIT_PER_PIXEL简介本文针对官方例程中的:03-camera-api做简单的讲解。并介绍其中调用的arv_camera_get_region,arv_camera_get_pixel_format_as......
  • 汇编基础
    CPU结构和指令集CPU是名称为中央处理单元,简称处理器,主要的作用是从内存中读取指令,然后解码和执行。CPU架构就是CPU内部设计的结构,是一堆硬件组成,用于实现指令集所规定的操作指令集包含了一系列的操作码(opcode),以及特定的CPU执行的基本命令。如果想要设计CPU,就得先解决使用什么样......