接口设计之应答码方案升级研究

来源 :科学与生活 | 被引量 : 0次 | 上传用户:zfh115101
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:对于支付系统,需要以接口形式提供给商户接入。系统设计中涉及接口调用,就有应答码,应答码方案不同,给接入方的开发工作有很大的影响性,层级分明的应答码方案可以给接入方和接口提供方带来事半功倍的效果。本文从常见的应答码方案论证演变,推出一种新的应答码方案。
  关键词:接口设计;应答码;交易结果
  1.前言
  本文以支付系统为背景,阐述接口应答码设计的方案演变研究。支付系统有前台和后台两种模式的接口,前台是指通过跳转到支付系統的页面来采集支付要素,后台交易是指通过后台服务器直接发起交易,不跳转到接口提供方的页面处理要素采集,在接入方页面自行采集。前台交易只有明确成功的时候才通知接入方,失败不发通知;后台交易明确成功和明确失败时都发通知;处理中都不发通知。
  同时,支付系统为了提高响应,减少服务器资源占用,采用异步应答方式,即返回同步应答仅表示受理结果,异步通知才表示处理结果。另外,在实际接入过成功,接入方的系统实现是不一致的,由于开发难度等因素,要求支付系统能够同时提供同步接口,即满足同步返回处理结果。
  接口设计处理哪些问题?请求和应答要素,应答的同步应答、异步通知要素,交易结果查询要素,以及接口提供方希望接入方怎么识别交易成功与否,接入方怎么清晰地定位交易结果?关于交易结果,从明确到不确定,可以分为:明确成功,明确失败,交易处理中(含交易结果未知状态),那么采用任何一种应答方案,基本原则是要能让接入方识别这三种状态。如果识别机制简单易懂,可见即可得,那么不失为一种良好的设计方案。本文从这个基本点出发,渐进演变,阐述了三种应答码方案。另外,这三种方案,有一个共同的前提,就是应答报文都会返回具体应答码respCode和应答消息respMsg,respCode定义为两位字符,respMsg为具体中文描述。
  2. 应答码方案
  2.1方案一:只返回具体应答码
  优点:系统设计简单,系统提供方只需要按照自己的规则返回应答。
  缺点:接入复杂,需要清楚各种应答码的具体意义。
  方案一:非查询交易返回respCode,查询交易返回respCode+origResp Code,如下表所示:
  接入方需要区分交易的异步应答、交易的同步应答、交易查询应答,按照前台交易、后台交易、查询交易、同步和异步,可以分为以下场景:
  从上面的场景可以看出,这种设计有二义性的问题。具体地,第一,同一个应答码00在异步版的同步应答和异步通知代表的是不同的意义,00接入方在处理同步应答时需要当做受理成功处理,需要继续查询或着等异步通知;但是00在异步通知的场景表示处理成功。二义性的设计就会给接入带来一些沟通成本,增加处理逻辑。第二,在查询的时候,同一个应答码,接入方也是要区分对待的,区分前台交易还是后台交易;由于本文讨论的支付系统包括前台交易和后台交易两种模式,前台只有成功一个终态,其他都是处理中,当前查询失败也不算订单失败,因为持卡人还可以跳转到支付系统的页面换卡重新支付,直到支付成功,当然这个问题可以通过设置支付超时时间来解决,就是在请求报文中设置一个超时时间,到达这个时间支付系统设置为终态,持卡人再发起支付会返回超过时间限制,避免接入方一直等待支付结果。第三,查询的时候是有两层应答码的,一个是原交易的应答码,一个表示查询本身的应答码,而查询交易更关注原交易的应答码,两层结构增加了解析的复杂性。第四,签名验签这些错误,对于查询交易,是查询本身失败,不代表原交易的状态。
  另外一方面,这种应答码设计将应答的状态与应答码合并表达,系统一旦发布,处理中的应答码不可以增加,否则接口口径需要同步变更,商户的接入也有依赖,可能需要同步修改。
  2.2方案二:增加应答码归类
  优点:结构清晰,业务逻辑透明
  缺点:系统设计冗余,接入复杂,并没有解决根本问题
  方案二:非查询交易应答码返回result+respCode,查询交易返回result+ respCode+origResult+OrigRespCode,如下表所示:
  在方案一的基础上,提出一种改进方案,将应答码回归到反应具体错误信息,增加一个应答要素——交易结果状态status(SUCCESS:成功,FAILURE:失败,UNKNOWN:未知,PROCESSING:处理中),也就是将应答码分类,接入方不再关注每个应答码是什么状态,只需要关心result。那么,方案一中的问题1可以通过返回status=处理中识别同步受理成功,返回status=成功来定位处理成功,其他问题是否能够迎刃而解呢?再三推演,本系统有查询交易,查询交易返回status=SUCCESS到底表示查询成功还是原交易成功,这就引入了新的问题。按照将应答码respCode弱化接入感知性,增加交易结果status变量的设计思路,必须再增加一个origStatus,显然接口设计复杂而无明显改进。另外,陷入了查询交易和原交易两层的绝对区分,而查询交易本身的状态接入方是不关心的,接入方更关心原交易的状态。
  2.3方案三:在应答码归类的基础上增加交易状态
  优点:解析简单,业务逻辑清晰
  方案三:非查询交易返回returnCode+respCode,查询交易返回status+ returnCode+respCode,异步通知返回status+respCode,如下表所示:
  天下武功唯快不破,所有的方案,如果能够可见即可得,快速接入那么不失为好设计。前面两个方案,无法解决接入方识别是查询本身的状态还是被查询的原交易的状态的判断,沿着方案二的思路又有过度设计的弊端。追根溯源,接口应答码需要解决的问题是什么?第一,容易识别交易状态,但是又不需要关心应答码respCode的变化;第二,能够区分查询错误还是原交易错误,第三,接入简单。   沿着这个思路,我们把应答码设计分两层,第一层是返回大的归类,解决应答码分类的问题,第二层解决返回具体应答码,业务逻辑透明,接入方不需要识别所有应答码来做业务逻辑判断。第一层就是增加一个变量——返回码,表示此次交易请求的业务结果,查询交易表示查询操作的业务结果,具体交易结果,以交易状态码为准,可以清晰区分同步受理结果和异步处理结果,解决了方案一中的問题1。另外,编码采用工整的6位字符,而不是具有语义的英文单词,没有二义性,也解决了方案二中到底是查询成功还是原交易成功的问题,表示本次交易的状态,如果是查询交易,RT1000就表示查询成功了,具体被查询交易的状态以对应的状态码来识别,这里也需要引入第二个业务强相关的变量——交易状态,status(SUCCESS:交易成功,PROCESSING:交易处理中,UNKNOWN:交易结果未知,FAILURE:交易失败,REFUNDED:已退货),仅查询交易返回这个status。
  返回码按照常见应答归类定义为以下值:
  按照方案三,我们可以提供一致的方案展示方案一种各个场景应答码解释。
  非查询交易,不论同步版还是异步版:
  查询交易,接入方不需要区分前台交易和后台交易的差别处理,因为应答的时候前台交易不会出现原交易失败的状态,所以对接入方透明,不感知。
  对于异步通知,同样,不区分前台交易和后台交易,前台交易不会出现失败的状态,因为支付系统设计在前言中已经陈述过,前台交易只有明确成功才发通知。而且后台交易的异步通知,原交易明确成功过或者明确失败都会发,作为应答结果的一种接口,其作用跟查询交易成功的结果一致的,所以不会出现冗余的returnCode=RT1000,只需要识别交易状态status。
  3. 结语
  方案三的设计层级分明,解除了接入方对具体应答码的依赖关系,同时,引入了两层应答码,返回码returnCode做一层交易状态归类,让应答码respCode在查询和非查询交易中,都一致地代表具体应答信息,不需要增加origRespCode这样的变量。另外查询交易增加应答status来识别原交易的状态,做到一致性的同时具有完备性,完整地表达应答一支交易的处理状态。
  作者简介
  刘丹(出生年月:1984.10.20),性别:女,民族:汉族,籍贯(省市):湖北孝感,职称:开发工程师,学历:硕士研究生,单位:中国银联股份有限公司,研究方向:计算机软件。
其他文献
摘要:本文从《理想国》和《乌托邦》政治思想的异同出发,以两种思想的社会背景、国家治理思想和金钱观三个切入点进一步论述两种思想的共通之处,并分别阐释了两种思想在社会等级划分、公有制实施范围、家庭观以及女性公共事务参与权等方面的差异。最后,对两种思想的先进性和落后性进行辩证性的评价。  关键词:理想国;乌托邦;社会动荡;公有制;哲学王  《理想国》一书是柏拉图的一篇重要对话录,对话录里柏拉图以苏格拉底
期刊
摘要:随着思想政治教育理论学科的探索,形成了独特的思想政治教学方法,也注意到载体的重要性。思想政治教育者使用各种载体传导思想政治教育信息,而受众在接受信息的同时便在被进行思想政治教育,媒体学科理论和思想政治教育学科体系因此结合,其成果对往后的思想政治教育活动发挥着重要的指导作用。但随着时代、环境等诸多条件的变化,思想政治教学方法的与时俱进便成为思想政治教育者们的研究方向,各种不同的创新视角百花齐放
期刊
摘要:新冠肺炎疫情暴发以来,“抗疫精神”作为中国精神的具体体现,其本身具有的内生逻辑、时代内涵以及价值意蕴是“抗疫精神”的三重向度。“抗疫精神”作为历史、理论与实践三逻辑的共生,是随时代不断发展和进步的,其赋予了中国精神新的时代内涵,即:价值理念、家国情怀、务实精神、团结意识、使命担当。概而言之,“抗疫精神”厚植于中华民族伟大复兴的肥沃土壤中,为中国精神的发展指明了新方向,为中国精神的创新赋予以新
期刊
摘要:为确保电子信息工程运行质量效果得以深化加强,行业内部研究人员主动立足于电子信息工程建设实际情况,对影响电子信息工程运行安全以及稳定性能的因素进行了重点研究与分析。其中,行业内部研究人员主张利用软件测试方法实现对电子信息工程运行安全性以及稳定性能情况的动态检测与分析,提高电子信息工程运行质量与效率。本文主要立足于电子信息工程建设实况,对软件测试在电子信息工程建设中的应用方法进行总结与归纳。  
期刊
摘要:近年来,汽轮机是电力生产的主要机组设备,在电力企业中,汽轮机主要发挥着电能转换的作用,其运行状况直接影响着电力的供应以及城市居民的生产与生活用电。因此,汽轮机的正常、稳定运行显得尤為重要。而在实际运转过程中,汽轮机不可避免地都会发生故障,特别是汽轮机中的油系统,其故障发生率尤为突出。这就需要电力企业加强对汽轮机中油系统的检修与保养工作,在检修过程中及时对故障进行排除,以确保汽轮机得以安全、稳
期刊
摘要:汽车在使用的过程当中,由于汽车零部件或者使用过程不当,容易发生各种故障问题,汽车最常发生的故障主要是机械故障,机械故障会导致汽车的安全性出现问题,为了保障汽车用户行驶安全,需要加强对于汽车机械故障原因的研究,分析和防范汽车机械故障事件发生。  关键词:汽车;机械故障;防范措施  近年来我国经济的快速增长带动了居民家庭收入的提高,为了方便出行,越来越多的居民购买了车辆,原本车辆在我国是收入水平
期刊
摘要:伴随着我国国民经济体系的不断完善,人们的生产生活质量有着显著提高,市政园林工程作为城市建设的基础条件,对改善人们的生产生活环境有着极其重要的作用。但是,园林绿化工程与其它工程施工有所不同,所面临的问题也相对较为复杂,所以在园林绿化工程施工管理的时候,经常会遇到一些难点,并且这些难点如果不及时的处理,园林绿化工程施工达不到理想的效果。因此,在园林绿化工程施工管理的时候,需要了解和掌握其中存在的
期刊
摘要:垃圾桶作为人类生活中的必需品,伴随人类走过了一个又一个时代。随着生活水平的提高,人们对生活品质更为关注,以及响应国家合理分类垃圾的号召智能垃圾桶应运而生。  本文详细论述智能垃圾桶的主要功能,对智能垃圾桶可行性进行分析,研究智能垃圾桶的市场特征及分类。  關键词:节能环保;自动化;无线连网通信;主要功能  引言  现行办法中主要有两种用于垃圾分类:对大批量的垃圾在垃圾场集中分类,但是这样做很
期刊
摘要:改革开放以来,我国的能源需求日益增加,煤炭作为重要能源,其开采安全受到了社会各界的广泛关注,在此背景下,完善煤矿安全生产标准化建设具有重要意义。煤矿行业属于高危行业,井下环境复杂恶劣,对人员的生命健康有不良影响,相关人员需明确安全生产标准化建设的意义,梳理现有问题,有针对性的制定解决方案,尽可能提升生产安全性,提高煤矿安全生产标准化建设水平。  关键词:煤矿;安全生产标准化;建设措施  引言
期刊
摘要:现代信息通信随着通信卫星的发射成功,无线通信互联网时代的到来,已经令信息通信网络宛若空气一样,深入到了人们生活与工作的方方面面,成为了社会发展与进步的巨大推动力量。然而随着人类社会的不断发展与进步,信息通信技术的深度内涵与可持续未来发展趋势,仍旧需要进一步的探讨与研究,在推动信息通信全智能、全空间发展的过程中,不断注入新鲜元素以保证信息通信网络的可持续未来发展。  关键词:通信信息工程;传输
期刊