本发明属于电子商务技术领域,具体涉及支付回调处理方法、系统及存储介质。
背景技术:
现有的电商平台都会接入各种第三方支付软件来实现支付的功能,如:支付宝、微信、银联等等。电商平台在完成支付的同时,结合自己平台的支付场景会有很多种支付回调的情况,例如订单支付、用户升级、订单退款等等。支付回调的方式能够及时地反映用户的支付情况。
但是现有技术中缺乏对这些支付回调进行有效处理的方法。
技术实现要素:
针对现有技术中的缺陷,本发明提供支付回调处理方法、系统及存储介质,能够及时地、准确地处理支付回调。
第一方面,一种支付回调处理方法,包括以下步骤:
接收支付平台发起的回调请求;
判断所述回调请求是否是重复回调;
如果是,定义所述回调请求为回调异常;
如果不是,对回调请求进行回调处理;如果回调处理失败,定义该回调请求为回调异常;如果回调处理成功,生成回调成功指令,返回给支付平台。
优选地,所述对回调请求进行回调处理具体包括:
利用预存的回调业务处理文件和回调方法对回调请求进行回调处理;
所述回调业务处理文件和回调方法存储在数据库中对应支付数据的callback字段中。
优选地,所述利用预存的回调业务处理文件和回调方法对回调请求进行回调处理具体包括:
配置各业务或支付平台的回调地址;
根据所述回调请求获得回调的支付数据;
根据预设的数据格式调整所述回调的支付数据的格式,使得支付数据调整后的格式与预设的数据格式一致;
根据调整后的支付数据获得对应的回调地址;
从所述回调地址中读取对应的调业务处理文件和回调方法对所述支付数据进行回调处理。
优选地,该方法在所述对回调请求进行回调处理之后,还包括:
接收自动任务上传的回调延迟记录;
解析所述回调延迟记录,获得回调延迟记录中的支付数据,定义所述支付数据为异常数据。
第二方面,一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行第一方面所述的方法。
第三方面,一种支付回调处理系统,包括
支付平台:用于接收用户的支付数据,根据支付数据生成回调请求,发送给支付服务器;支付平台还用于接收回调成功指令;
支付服务器:用于判断来自支付平台的回调请求是否是重复回调;如果是,定义所述回调请求为回调异常;如果不是,对回调请求进行回调处理;如果回调处理失败,定义该回调请求为回调异常;如果回调处理成功,生成回调成功指令,返回给支付平台。
优选地,所述支付服务器为一台独立服务器;支付服务器上的代码文件与外部业务服务器的代码文件同步;所述支付服务器还设有独立的域名。
优选地,所述支付服务器具体用于:
利用预存的回调业务处理文件和回调方法对回调请求进行回调处理;
所述回调业务处理文件和回调方法存储在数据库中对应支付记录的callback字段中。
优选地,所述支付服务器具体用于:
配置各业务或支付平台的回调地址;
根据所述回调请求获得回调的支付数据;
根据预设的数据格式调整所述回调的支付数据的格式,使得支付数据调整后的格式与预设的数据格式一致;
根据调整后的支付数据获得对应的回调地址;
从所述回调地址中读取对应的调业务处理文件和回调方法对所述支付数据进行回调处理。
优选地,还包括:
自动任务:用于当预设的监控时间间隔到达时,获取已支付未回调的支付数据,根据所述支付数据生成回调延迟记录,上传给所述支付服务器;
支付服务器还用于接收自动任务上传的回调延迟记录;解析所述回调延迟记录,获得回调延迟记录中的支付数据,定义所述支付数据为异常数据。
由上述技术方案可知,本发明提供的支付回调处理方法、系统及存储介质,对回调场景进行统一管理,并且对一些异常数据(重复支付、回调延迟、回调失败等)进行实时监控预警,保证支付回调能够及时准确地被处理。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为实施例一提供的支付回调处理方法的流程图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
实施例一:
一种支付回调处理方法,参见图1,包括以下步骤:
s1:接收支付平台发起的回调请求;
s2:判断所述回调请求是否是重复回调;
s3:如果是,定义所述回调请求为回调异常;
s4:如果不是,对回调请求进行回调处理;如果回调处理失败,定义该回调请求为回调异常;如果回调处理成功,生成回调成功指令,返回给支付平台。
具体地,如果本次支付数据对应的回调请求是重复回调,说明该支付数据之前已经发起过回调请求,则认为本次回调请求是回调异常,不对本次回调请求进行处理。如果本次支付数据对应的回调请求不是重复回调,说明该支付数据是第一次发起回调请求,对该回调请求进行回调处理。在回调处理过程中,出现的一切异常情况导致回调无法正常处理的,都判定为回调异常。
其中重复回调可以通过以下方法进行判断:本地短时间内缓存接收到的每个回调请求,当接收到新的回调请求时,判断本地是否缓存有相同的回调请求,如果是,说明是重复回调。
该方法对回调场景进行统一管理,并且对一些异常数据(重复支付、回调失败等)进行实时监控预警,保证数据的准确性,保证支付回调能够及时准确地被处理,同时也保证了用户的支付能够准确地被处理。
优选地,所述对回调请求进行回调处理具体包括:
利用预存的回调业务处理文件和回调方法对回调请求进行回调处理;
所述回调业务处理文件和回调方法存储在数据库中对应支付数据的callback字段中,例如:join/paid、order/paid、pingtuan/paid。
具体地,该方法对回调场景进行统一管理,方面后期的扩展,且不易出错。支付回调的回调业务处理文件和回调方法记录到数据库对应支付数据的callback字段,所有的回调业务处理入口唯一,支付数据通过不同的支付平台校验签名后,调用指定的业务方法进行回调处理。
优选地,所述利用预存的回调业务处理文件和回调方法对回调请求进行回调处理具体包括:
s11:配置各业务或支付平台的回调地址;
s12:根据所述回调请求获得回调的支付数据;
s13:根据预设的数据格式调整所述回调的支付数据的格式,使得支付数据调整后的格式与预设的数据格式一致,这样保证了数据的字段一致。
s14:根据调整后的支付数据获得对应的回调地址;
s15:从所述回调地址中读取对应的调业务处理文件和回调方法对所述支付数据进行回调处理。
该方法对回调场景进行统一管理,方面后期的扩展,且不易出错。
优选地,该方法在所述对回调请求进行回调处理之后,还包括:
接收自动任务上传的回调延迟记录;
解析所述回调延迟记录,获得回调延迟记录中的支付数据,定义所述支付数据为异常数据。
具体地,回调延迟记录中包括了支付超时未回调的支付数据。该方法具有异常监控功能,能够对重复支付、回调失败、回调延迟的支付数据进行实时监控,当出现异常数据时,还可以采用短信预警,方便相关工作人员第一时间进行跟进处理。
实施例二:
一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述的方法。
所述计算机可读存储介质可以是前述任一实施例所述的终端的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本发明实施例所提供的介质,为简要描述,实施例部分未提及之处,可参考前述方法实施例中相应内容。
实施例三:
一种支付回调处理系统,包括
支付平台:用于接收用户的支付数据,根据支付数据生成回调请求,发送给支付服务器;支付平台还用于接收回调成功指令;
支付服务器:用于判断来自支付平台的回调请求是否是重复回调;如果是,定义所述回调请求为回调异常;如果不是,对回调请求进行回调处理;如果回调处理失败,定义该回调请求为回调异常;如果回调处理成功,生成回调成功指令,返回给支付平台。
优选地,所述支付服务器为一台独立服务器;支付服务器上的代码文件与外部业务服务器的代码文件同步;所述支付服务器还设有独立的域名。
具体地,该系统设置独立一台独立服务器来进行支付回调业务的处理,将代码文件对于支付回调的影响降到最低。支付服务器上的代码文件与外部业务服务器的代码文件同步,避免在处理支付回调的同时,处理与支付回调不相关的业务代码文件导致回调处理异常。
优选地,所述支付服务器具体用于:
利用预存的回调业务处理文件和回调方法对回调请求进行回调处理;
所述回调业务处理文件和回调方法存储在数据库中对应支付记录的callback字段中。
优选地,所述支付服务器具体用于:
配置各业务或支付平台的回调地址;
根据所述回调请求获得回调的支付数据;
根据预设的数据格式调整所述回调的支付数据的格式,使得支付数据调整后的格式与预设的数据格式一致;
根据调整后的支付数据获得对应的回调地址;
从所述回调地址中读取对应的调业务处理文件和回调方法对所述支付数据进行回调处理。
优选地,还包括:
自动任务:用于当预设的监控时间间隔到达时,获取已支付未回调的支付数据,根据所述支付数据生成回调延迟记录,上传给所述支付服务器;
支付服务器还用于接收自动任务上传的回调延迟记录;解析所述回调延迟记录,获得回调延迟记录中的支付数据,定义所述支付数据为异常数据。
具体地,例如:如果监控时间间隔设置为30s,自动任务每30s获取一次15分钟前(该参数由用户根据具体情况确定)已支付未回调的支付数据,生成一条回调延迟记录,发送给支付服务器。由支付服务器进行预警并通知相关工作人员。
该系统对回调场景进行统一管理,并且对一些异常数据(重复支付、回调延迟、回调失败等)进行实时监控预警,保证支付回调能够及时准确地被处理。
本发明实施例所提供的系统,为简要描述,实施例部分未提及之处,可参考前述方法实施例中相应内容。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。