CN113919834A - 一种支付方法、装置、计算机设备和存储介质 - Google Patents

一种支付方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN113919834A
CN113919834A CN202111346468.2A CN202111346468A CN113919834A CN 113919834 A CN113919834 A CN 113919834A CN 202111346468 A CN202111346468 A CN 202111346468A CN 113919834 A CN113919834 A CN 113919834A
Authority
CN
China
Prior art keywords
payment
target
parameter
application program
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111346468.2A
Other languages
English (en)
Inventor
宋立军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gaotu Yunji Education Technology Co Ltd
Original Assignee
Beijing Gaotu Yunji Education Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Gaotu Yunji Education Technology Co Ltd filed Critical Beijing Gaotu Yunji Education Technology Co Ltd
Priority to CN202111346468.2A priority Critical patent/CN113919834A/zh
Publication of CN113919834A publication Critical patent/CN113919834A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种支付方法、装置、计算机设备和存储介质,其中,该方法包括:确定初始支付参数的值和用户选择的目标支付方式;基于目标支付方式中目标支付参数与初始支付参数的映射关系,以及初始支付参数的值,确定目标支付参数的值;其中,预先设置有初始支付参数与多个预设支付方式中每个预设支付方式的支付参数的映射关系;将目标支付参数的值发送给目标支付方式对应的目标应用程序,以使目标应用程序利用目标支付参数进行支付操作;获取目标应用程序执行支付操作后的支付结果。本公开实施例能够实现利用较少的时间完成对多种支付方式的集成,降低代码开发的难度和成本。

Description

一种支付方法、装置、计算机设备和存储介质
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种支付方法、装置、计算机设备和存储介质。
背景技术
互联网支付因其安全可靠,方便快捷吸引了大量用户,因此,相继出现了多种支付方式。对于提供支付业务的产品而言,所能提供的支付方式越多,用户使用该产品进行支付的过程中,能够选择的支付方式也就越多,从而,能够有效提升用户的使用体验。
但是,不同支付方式对应的支付参数可能各不相同且相互独立,如果提供支付业务的产品需要集成较可能多的支付方式,就需要产品开发人员针对不同的支付方式制定不同的支付代码,从而,增加了开发难度和成本,以及代码维护的成本。并且,当支付方式包括多种的情况下,开发多套代码,需要耗费大量的时间,降低了开发效率。
发明内容
本公开实施例至少提供一种支付方法、装置、计算机设备和存储介质,以实现利用较少的时间完成对多种支付方式的集成,降低代码开发的难度和成本。
第一方面,本公开实施例提供了一种支付方法,包括:
确定初始支付参数的值和用户选择的目标支付方式;
基于目标支付方式中目标支付参数与初始支付参数的映射关系,以及所述初始支付参数的值,确定目标支付参数的值;其中,预先设置有初始支付参数与多个预设支付方式中每个预设支付方式的支付参数的映射关系;
将所述目标支付参数的值发送给所述目标支付方式对应的目标应用程序,以使所述目标应用程序利用所述目标支付参数进行支付操作;
获取所述目标应用程序执行支付操作后的支付结果。
在一种可能的实施方式中,所述将所述目标支付参数的值发送给所述目标支付方式对应的目标应用程序,包括:
基于所述目标支付方式的支付类型和集成了至少一种类型的支付方式的支付软件开发工具包,确定与所述支付类型对应的目标支付方式的目标应用程序接口;所述支付软件开发工具包包括所述至少一种类型的支付方式对应的应用程序接口;
基于所述目标应用程序接口,将所述目标支付参数的值发送给所述目标支付方式对应的目标应用程序。
在一种可能的实施方式中,所述基于所述应用程序接口,将所述目标支付参数的值发送给所述目标支付方式对应的目标应用程序,包括:
基于所述目标应用程序接口,利用预设方法,初始化所述目标应用程序接口对应的目标应用程序,以与所述目标应用程序解耦;
将所述目标支付参数的值发送给所述初始化后的目标应用程序。
在一种可能的实施方式中,所述获取所述目标应用程序执行支付操作后的支付结果,包括:
确定所述目标支付方式的支付结果回调方式;
基于所述支付结果回调方式,获取所述目标应用程序执行支付操作后的支付结果。
在一种可能的实施方式中,所述支付结果回调方式包括代理回调方式;所述基于所述支付结果回调方式,获取所述目标应用程序执行支付操作后支付结果,包括:
在利用所述代理回调方式对所述目标应用程序的支付结果进行回调的过程中,利用预设的支付结果处理方式获取所述目标应用程序执行支付操作后支付结果,并将所述支付结果作为结果获取参数的值;
基于结果获取参数的值,获取所述目标应用程序对应的支付结果。
在一种可能的实施方式中,所述在利用所述代理回调方式对所述目标应用程序的支付结果进行回调的过程中,利用预设的支付结果处理方式获取所述目标应用程序执行支付操作后支付结果,包括:
在利用所述代理回调方式对所述目标应用程序的支付结果进行回调的过程中,在确定所述目标应用程序执行支付操作的过程中存在跳转到该目标应用程序对应的支付页面的情况下,确定所述目标应用程序是否调用了所述预设的支付结果处理方式;
若是,利用预设的支付结果处理方式获取所述目标应用程序执行支付操作后支付结果。
在一种可能的实施方式中,所述支付结果回调方式包括参数回调方式;
所述基于所述支付结果回调方式,获取所述目标应用程序执行支付操作后的支付结果,包括:
确定所述参数回调方式的目标获取参数的值;
在利用所述参数回调方式对所述目标应用程序的支付结果进行回调的过程中,基于所述目标获取参数,确定结果获取参数的值;
基于结果获取参数的值,获取所述目标应用程序对应的支付结果。
第二方面,本公开实施例还提供一种支付装置,包括:
第一确定模块,用于确定初始支付参数的值和用户选择的目标支付方式;
第二确定模块,用于基于目标支付方式中目标支付参数与初始支付参数的映射关系,以及所述初始支付参数的值,确定目标支付参数的值;其中,预先设置有初始支付参数与多个预设支付方式中每个预设支付方式的支付参数的映射关系;
发送模块,用于将所述目标支付参数的值发送给所述目标支付方式对应的目标应用程序,以使所述目标应用程序利用所述目标支付参数进行支付操作;
获取模块,用于获取所述目标应用程序执行支付操作后的支付结果。
在一种可能的实施方式中,所述发送模块,用于基于所述目标支付方式的支付类型和集成了至少一种类型的支付方式的支付软件开发工具包,确定与所述支付类型对应的目标支付方式的目标应用程序接口;所述支付软件开发工具包包括所述至少一种类型的支付方式对应的应用程序接口;
基于所述目标应用程序接口,将所述目标支付参数的值发送给所述目标支付方式对应的目标应用程序。
在一种可能的实施方式中,所述发送模块,用于基于所述目标应用程序接口,利用预设方法,初始化所述目标应用程序接口对应的目标应用程序,以与所述目标应用程序解耦;
将所述目标支付参数的值发送给所述初始化后的目标应用程序。
在一种可能的实施方式中,所述获取模块,用于确定所述目标支付方式的支付结果回调方式;
基于所述支付结果回调方式,获取所述目标应用程序执行支付操作后的支付结果。
在一种可能的实施方式中,所述支付结果回调方式包括代理回调方式;
所述获取模块,用于在利用所述代理回调方式对所述目标应用程序的支付结果进行回调的过程中,利用预设的支付结果处理方式获取所述目标应用程序执行支付操作后支付结果,并将所述支付结果作为结果获取参数的值;
基于结果获取参数的值,获取所述目标应用程序对应的支付结果。
在一种可能的实施方式中,所述获取模块,用于在利用所述代理回调方式对所述目标应用程序的支付结果进行回调的过程中,在确定所述目标应用程序执行支付操作的过程中存在跳转到该目标应用程序对应的支付页面的情况下,确定所述目标应用程序是否调用了所述预设的支付结果处理方式;
若是,利用预设的支付结果处理方式获取所述目标应用程序执行支付操作后支付结果。
在一种可能的实施方式中,所述支付结果回调方式包括参数回调方式;
所述获取模块,用于确定所述参数回调方式的目标获取参数的值;
在利用所述参数回调方式对所述目标应用程序的支付结果进行回调的过程中,基于所述目标获取参数,确定结果获取参数的值;
基于结果获取参数的值,获取所述目标应用程序对应的支付结果。
第三方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述支付装置、计算机设备、及计算机可读存储介质的效果描述参见上述支付方法的说明,这里不再赘述。
本公开实施例提供的支付方法、装置、计算机设备和存储介质,基于建立的初始支付参数与多个预设支付方式中每个预设支付方式的支付参数的映射关系,实现了对多种预设支付方式的集成,开发人员只需要对集成后的支付方式对应的代码进行开发,就能够很方便地实现对多种支付方式的应用,从而,降低代码开发的难度和成本,提升了集成多种支付方式的速度和效率。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种支付方法的流程图;
图2示出了本公开实施例所提供的一种获取支付结果的方法的流程图;
图3示出了本公开实施例所提供的一种获取目标支付方式对应的支付结果的具体实施流程图;
图4示出了本公开实施例所提供的一种支付装置的示意图;
图5示出了本公开实施例所提供的一种计算机设备结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
经研究发现,互联网支付因其安全可靠,方便快捷吸引了大量用户,因此,相继出现了多种支付方式。对于提供支付业务的产品而言,所能提供的支付方式越多,用户使用该产品进行支付的过程中,能够选择的支付方式也就越多,从而,能够有效提升用户的使用体验。但是,不同支付方式对应的支付参数可能各不相同且相互独立,如果提供支付业务的产品需要集成较可能多的支付方式,就需要产品开发人员针对不同的支付方式制定不同的支付代码,从而,增加了开发难度和成本,以及代码维护的成本。并且,当支付方式包括多种的情况下,开发多套代码,需要耗费大量的时间,降低了开发效率。
基于上述研究,本公开提供了一种支付方法、装置、计算机设备和存储介质,基于建立的初始支付参数与多个预设支付方式中每个预设支付方式的支付参数的映射关系,实现了对多种预设支付方式的集成,开发人员只需要对集成后的支付方式对应的代码进行开发,就能够很方便地实现对多种支付方式的应用,从而,降低代码开发的难度和成本,提升了集成多种支付方式的速度和效率。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,本公开实施例中所提到的特定名词包括:
objc_msgSend方法:为某个类对象发送消息,并返回一个值。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种支付方法进行详细介绍,本公开实施例所提供的支付方法的执行主体一般为具有一定计算能力的计算机设备,在一些可能的实现方式中,该支付方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为计算机设备为例对本公开实施例提供的支付方法加以说明。
如图1所示,为本公开实施例提供的一种支付方法的流程图,可以包括以下步骤:
S101:确定初始支付参数的值和用户选择的目标支付方式。
这里,不同的支付参数具有不同的参数名称,支付参数可以包括支付类型、支付金额、支付订单号、预设支付方式的版本信息和支付描述等参数,一次支付可以对应于一个支付订单号。目标支付方式为多个预设支付方式中的一个,一个预设支付方式对应于唯一的支付类型。
例如,预设支付方式可以包括支付宝支付、银联支付、微信支付等。在预设支付方式为支付宝支付的情况下,支付类型可以为支付宝支付类型;在预设支付方式为微信支付的情况下,支付类型可以为微信支付类型;在支付方式为银联支付的情况下,支付类型可以为银联支付类型。
本公开实施例所提供的方法可以应用于在线教育技术领域,具体实施时,可以应用于在线教育支付产品,例如,在线英语学习产品、在线数学学习产品等,对此不作赘述。
当用户使用在线教育支付产品进行支付的过程中,可以点击支付产品中的支付按钮,发起支付流程。然后,初始化该支付方法中的支付参数类。将用户选择的预设支付方式作为目标支付方式,并确定目标支付方式的支付类型。根据用户的支付目的,可以确定用户的支付金额,以及生成此次支付的支付订单号和支付描述等,从而,可以确定初始支付参数的值。其中,支付参数类包括支付方法对应的支付参数。
进而,可以调起该支付方法对应的支付应用程序接口API,根据该API,将确定的上述支付参数赋值给该支付方法中初始化后的支付参数,从而,得到初始支付参数的值。
S102:基于目标支付方式中目标支付参数与初始支付参数的映射关系,以及初始支付参数的值,确定目标支付参数的值。
其中,预先设置有初始支付参数与多个预设支付方式中每个预设支付方式的支付参数的映射关系。
本步骤中,每种预设支付方式包括该预设支付方式对应的支付参数,不同的支付方式对应的支付参数之间存在差别,每种预设支付方式的参数名称也可能各不相同。
每种预设支付方式的支付参数可以是预先根据该预设支付方式对应的支付开发文档确定的,不同预设支付方式对应的支付开发文档中包括该预设支付方式的使用信息,使用信息可以包括支付参数、支付结果回调方式、支付结果回调位置、预设支付方式的API等。
初始支付参数可以是预先根据多个预设支付方式对应的支付参数确定的,在确定预设支付参数之后,可以建立初始支付参数与各个支付方式对应的支付参数的映射关系,也即,可以建立与不同的预设支付方式的映射关系。
基于用户选择的目标支付方式,可以确定该目标支付方式对应的目标支付参数,根据预先设置的初始支付参数与多个预设支付方式中每个预设支付方式的支付参数的映射关系,可以确定初始支付参数与目标支付方式对应的目标支付参数之间的映射关系。进而,可以基于该映射关系以及初始支付参数的值,确定目标支付参数的值。
具体实施时,产品开发人员可以根据本公开实施例所提供的支付方法对应的支付开发文档,以及需要集成的预设支付方式,建立该支付方法的初始支付参数与需要集成的预设支付方式中的每个预设支付方式对应的映射关系,完成该支付方法的代码开发。产品开发人员不需要再根据需要集成的预设支付方式,以及需要集成的每种预设支付方式对应的支付开发文档,分别开发不同预设支付方式对应的支付代码,这样,减少了代码开发难度和成本。另外,由于只需要开发该支付方法的支付代码,因此,只需要维护一套支付代码,降低了代码维护的难度和成本。
S103:将目标支付参数的值发送给目标支付方式对应的目标应用程序,以使目标应用程序利用目标支付参数进行支付操作。
不同的预设支付方式对应于不同的API,以及对应于不同的应用程序。目标支付方式对应于目标API,以及目标应用程序。
本步骤中,在确定目标支付参数的值之后,可以利用objc_msgSend方法调用set方法,将目标支付参数的值发送给目标支付方式对应的目标应用程序,并为目标支付方式对应的目标支付参数进行赋值。之后,可以利用objc_msgSend方法调用目标API,以使目标API对应的目标应用程序,利用赋值后的目标支付参数进行支付操作。
S104:获取目标应用程序执行支付操作后的支付结果。
这里,支付结果可以包括支付成功、支付失败、已知的支付错误、未知的支付错误、错误描述等。
本步骤中,在确定目标应用程序利用赋值后的目标支付参数完成支付操作之后,可以获取目标应用程序执行支付操作后的支付结果。之后,可以将支付结果展示给用户,以使用户基于展示的支付结果执行操作。
这里,基于建立的初始支付参数与多个预设支付方式中每个预设支付方式的支付参数的映射关系,实现了对多种预设支付方式的集成,开发人员只需要对集成后的支付方式对应的代码进行开发,就能够很方便地实现对多种支付方式的应用,从而,降低代码开发的难度和成本,提升了集成多种支付方式的速度和效率。
在一种实施例中,针对S103,可以按照以下步骤将目标支付参数的值发送给目标支付方式对应的目标应用程序:
步骤一、基于目标支付方式的支付类型和集成了至少一种类型的支付方式的支付软件开发工具包,确定与支付类型对应的目标支付方式的目标应用程序接口,支付软件开发工具包包括至少一种类型的支付方式对应的应用程序接口。
这里,不同的支付方式对应的支付类型可以是预先确定的,例如,可以预先定义不同预设支付方式对应的type(类型)枚举值。具体实施时,该支付方法对应于一个集成了至少一种类型的支付方式的支付软件开发工具包SDK,支付SDK中可以包括至少一种类型的支付方式对应的API。
具体实施时,基于用户选择的目标支付方式,可以确定目标支付方式对应的支付类型,然后可以基于集成了至少一种类型的支付方式的支付SDK和确定的支付类型,从支付SDK包中确定出该支付类型对应的API,将该API作为目标支付方式对应的目标API。
步骤二、基于目标应用程序接口,将目标支付参数的值发送给目标支付方式对应的目标应用程序。
具体实施时,可以利用objc_msgSend方法调用set方法,将目标支付参数的值发送给目标API对应的目标应用程序。
在一种实施例中,针对步骤二,在确定目标应用程序接口之后,可以先利用目标应用程序接口,确定目标API对应的目标应用程序,然后可以初始化目标应用程序。然后,可以将目标支付参数的值发送给目标API对应的目标应用程序
具体实施时,可以利用预设方法,初始化目标应用程序。具体的,预设方法可以是运行时runtime方法。利用runtime方法初始化目标应用程序,这样,在用户选择目标支付方式进行支付之后,利用runtime方法对目标支付方式对应的目标应用程序进行初始化,可以使目标应用程序和该支付方法对应的应用程序解耦,保证每个预设支付方式对应的应用程序在执行支付操作的过程中,和该支付方法对应的应用程序之间不存在相互影响的情况,从而,保证在利用每个应用程序执行支付操作之后,获取的支付结果的准确性。并且,由于利用runtime方法实现了每个预设支付方式对应的应用程序和该支付方法对应的应用程序解耦,产品开发人员可以根据产品的具体需求,只需要在支付SDK包中保留需要使用的预设支付方式,不需要使用的预设支付方式可以直接删除,从而,可以防止产品中存在无用的预设支付方式对应的代码,避免代码体积过大的问题。
在一种实施例中,针对S104,可以按照以下步骤获取目标应用程序执行支付操作后的支付结果:
步骤一、确定目标支付方式的支付结果回调方式。
这里,由上述实施例可知,不同的预设支付方式对应于不同的支付结果回调方式。利用支付结果回调方式可以将应用程序完成支付操作之后确定的支付结果回调到该应用程序对应的支付结果回调位置。支付结果回调方式可以包括代理回调方式和参数回调方式。其中,代理回调方式的本质为:设置一个支付方式作为当前支付方式的代理,然后让设置的代理去执行当前支付方式预设好的代理方法,这样,可以实现将当前支付方式的支付结果传递到当前支付方式的代理对应支付方式中。参数回调方式即为block回调方式。block可以作为该支付方法对应的获取参数,作用在该支付方法的作用域,获取参数可以用于获取支付结果。
具体实施时,在确定用户选择的目标支付方式之后,可以确定目标支付方式对应的支付结果回调方式。
步骤二、基于支付结果回调方式,获取目标应用程序执行支付操作后的支付结果。
具体实施时,本公开实施例所提供的支付方法对应的支付SDK包中可以包括与不同的支付结果回调方式对应的预设的支付结果处理方式,基于确定的支付结果回调方式,确定与该支付结果回调方式对应的支付结果处理方式,利用该支付结果处理方式,获取目标应用程序执行支付操作后的支付结果。
预设的支付结果处理方式中包括预先设置的全局block,支付方法对应于一个支付block,在确定目标支付方式对应的支付结果回调方式之后,可以利用支付结果回调方式预先设置的全局block以及支付block,获取目标应用程序执行支付操作后的支付结果。其中,全局block可以作为该支付方法对应的结果获取参数,用于统一回调各种预设支付方式对应的支付结果。具体实施时,预设的支付结果处理方式可以为handlePayResult方式。
在一种实施例中,支付结果回调方式包括代理回调方式。
在目标支付方式对应的支付结果回调方式包括代理回调方式的情况下,目标应用程序完成支付操作,确定支付结果后,将利用代理回调方式将确定的支付结果进行回调,以将支付结果回调到支付结果回调位置。
针对步骤二、基于支付结果回调方式,获取目标应用程序执行支付操作后的支付结果。
具体实施时,可以先确定代理回调方式对应的预设的支付结果处理方式,然后,可以将预设的支付结果处理方式作为目标支付方式对应的代理。在目标应用程序利用代理回调方式对目标应用程序的支付结果进行回调的过程中,调用目标支付方式对应的代理(即预设的支付结果处理方式)中的全局block,利用全局block执行目标支付方式预设好的代理方法,之后,全局block可以获取目标应用程序执行支付操作后支付结果,并将支付结果作为全局block对应的结果获取参数的值。
然后,可以基于结果获取参数的值,获取目标应用程序对应的支付结果。
全局block和支付block均可以作为该支付方法对应的获取参数,全局block和支付block可以作用在该支付方法的作用域,其中,全局block可以作用在全局范围内。
具体实施时,可以将支付block赋值给全局block,也即,可以确定结果获取参数的值,然后在确定结果获取参数的值后,可以将结果获取参数的值回调给支付block对应的获取参数,这样,实现了在全局block获取支付结果后,利用全局block将支付结果回调到支付block。从而,可以获取到目标应用程序对应的支付结果,并将其展示给用户。
在一种实施例中,可以按照以下步骤获取目标应用程序执行支付操作后支付结果:
步骤一、在利用代理回调方式对所述目标应用程序的支付结果进行回调的过程中,在确定目标应用程序执行支付操作的过程中存在跳转到该目标应用程序对应的支付页面的情况下,确定目标应用程序是否调用了预设的支付结果处理方式。
步骤二、若是,利用预设的支付结果处理方式获取目标应用程序执行支付操作后支付结果。
这里,在利用本公开实施例提供的支付方法进行支付操作时,由于需要调用目标支付方式对应的目标API,以使目标API对应的目标应用程序基于目标支付参数的值执行支付操作。在利用目标应用程序执行支付操作的过程中,可以存在需要跳转到该目标应用程序的支付页面的情况。
具体实施时,针对IOS支付,当确定存在需要跳转到目标应用程序的支付页面的情况下,根据IOS支付对应的应用程序的版本不同,需要利用不同的方法进行跳转并对支付结果进行回调。其中,如果IOS支付对应的应用程序的版本低于13版本,将使用handleOpenUrl方法进行支付结果的回调,如果IOS支付对应的应用程序的版本高于13版本,将使用handleOpenUniversalLink方法进行支付结果的回调。
因此,在利用预设的支付结果处理方式获取目标应用程序执行支付操作后支付结果的过程中,还需要监听是否存在跳转到目标支付方式对应的目标应用程序的支付页面的情况,如果否,则说明在利用目标应用程序执行支付操作的过程都是在本公开实施例提供的支付方法对应的应用程序中进行的,因此,可以利用上述实施例的方法获取支付结果。
如果是,则在利用handleOpenUrl方法或handleOpenUniversalLink方法进行支付结果的回调的过程中,需要确定目标应用程序是否调用了预设的支付结果处理方式,如果是,则可以利用预设的支付结果处理方式进行支付结果的回调,在回调的过程中,调用全局block以获取支付结果,之后,再利用全局block将支付结果回调到支付block。如果否,将无法获取目标应用程序的支付结果。
在一种实施例中,支付结果回调方式包括参数回调方式。
针对步骤二、基于支付结果回调方式,获取目标应用程序执行支付操作后的支付结果。
具体实施时,可以按照图2所示的方法获取支付结果,如图2所示,为本公开实施例所提供的一种获取支付结果的方法的流程图,可以包括以下步骤:
S201:确定参数回调方式的目标获取参数的值。
这里,目标获取参数为初始化的tempBlock(临时block)对应的获取参数。在确定的目标支付方式对应的支付结果回调方式为参数回调方式(block回调方式)的情况下,可以初始化一个临时block并确定该临时block的值,将该临时block作为目标支付方式对应的用于回调支付结果的block。
S202:在利用参数回调方式对目标应用程序的支付结果进行回调的过程中,基于目标获取参数,确定结果获取参数的值。
本步骤中,可以将初始化的临时block通过目标API传到目标应用程序中,在目标应用程序利用参数回调方式对目标应用程序的支付结果进行回调的过程中,也即,在目标应用程序利用临时block对目标应用程序的支付结果进行回调的过程中,利用临时block,调用全局block,利用临时block将支付结果传递给全局block,进而,全局block可以获取目标应用程序执行支付操作后支付结果,并将支付结果作为全局block对应的结果获取参数的值。
S203:基于结果获取参数的值,获取目标应用程序对应的支付结果。
具体实施时,可以将支付block赋值给全局block,也即,可以确定结果获取参数的值,然后在确定结果获取参数的值后,可以将结果获取参数的值回调给支付block对应的获取参数,这样,实现了在全局block获取支付结果后,利用全局block将支付结果回调到支付block。从而,可以获取到目标应用程序对应的支付结果,并将其展示给用户。
如图3所示,为本公开实施例所提供的一种获取目标支付方式对应的支付结果的具体实施流程图,可以包括以下步骤:
S301:初始化支付参数类。
S302:确定初始支付参数的值和用户选择的目标支付方式。
S303:调起支付方法对应的支付API,将确定的支付参数赋值给初始化后的支付参数。
S304:基于目标支付方式中目标支付参数与初始支付参数的映射关系,以及初始支付参数的值,确定目标支付参数的值。
S305:基于确定目标支付方式对应的支付类型,确定目标API。
S306:利用runtime方法初始化目标API对应的目标应用程序。
S307:利用objc_msgSend方法调用set方法,将确定的目标支付参数的值赋值给目标支付方式对应的目标支付参数。
S308:利用objc_msgSend方法调用目标API。
S309:确定目标支付方式对应的支付结果回调方式。
S310:基于支付结果回调方式,获取目标应用程序执行支付操作后的支付结果。
本步骤中,先将支付block赋值给全局block。
在确定支付结果回调方式为代理回调方式的情况下,在目标应用程序利用代理回调方式对目标应用程序的支付结果进行回调的过程中,调用全局block,进而,全局block可以获取目标应用程序执行支付操作后支付结果,然后,利用全局block调用支付block,将支付结果回调到支付block。
另外,针对在IOS支付,在确定支付结果回调方式为代理回调方式的情况下,还需要确定在利用目标应用程序执行支付操作的过程中,监听是否存在跳转到目标应用程序的支付页面的情况。如果是,则需要在利用handleOpenUrl方法或handleOpenUniversalLink方法进行支付结果的回调的过程中,确定目标应用程序是否调用了预设的支付结果处理方式,如果是,则可以利用预设的支付结果处理方式进行支付结果的回调,在回调的过程中,调用全局block以获取支付结果。然后,利用全局block调用支付block,将支付结果回调到支付block。
在另一种实施方式中,在确定支付结果回调方式为参数回调方式的情况下,初始化tempBlock,将初始化的tempBlock通过目标API传到目标应用程序中,在目标应用程序利用临时block对目标应用程序的支付结果进行回调的过程中,调用全局block,利用临时block将支付结果传递给全局block。然后,利用全局block调用支付block,将支付结果回调到支付block。
关于S301~S310的具体实施过程,可以参照上述实施例,这里不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与支付方法对应的支付装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述支付方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图4所示,为本公开实施例提供的一种支付装置的示意图,包括:
第一确定模块401,用于确定初始支付参数的值和用户选择的目标支付方式;
第二确定模块402,用于基于目标支付方式中目标支付参数与初始支付参数的映射关系,以及所述初始支付参数的值,确定目标支付参数的值;其中,预先设置有初始支付参数与多个预设支付方式中每个预设支付方式的支付参数的映射关系;
发送模块403,用于将所述目标支付参数的值发送给所述目标支付方式对应的目标应用程序,以使所述目标应用程序利用所述目标支付参数进行支付操作;
获取模块404,用于获取所述目标应用程序执行支付操作后的支付结果。
在一种可能的实施方式中,所述发送模块403,用于基于所述目标支付方式的支付类型和集成了至少一种类型的支付方式的支付软件开发工具包,确定与所述支付类型对应的目标支付方式的目标应用程序接口;所述支付软件开发工具包包括所述至少一种类型的支付方式对应的应用程序接口;
基于所述目标应用程序接口,将所述目标支付参数的值发送给所述目标支付方式对应的目标应用程序。
在一种可能的实施方式中,所述发送模块403,用于基于所述目标应用程序接口,利用预设方法,初始化所述目标应用程序接口对应的目标应用程序,以与所述目标应用程序解耦;
将所述目标支付参数的值发送给所述初始化后的目标应用程序。
在一种可能的实施方式中,所述获取模块404,用于确定所述目标支付方式的支付结果回调方式;
基于所述支付结果回调方式,获取所述目标应用程序执行支付操作后的支付结果。
在一种可能的实施方式中,所述支付结果回调方式包括代理回调方式;
所述获取模块404,用于在利用所述代理回调方式对所述目标应用程序的支付结果进行回调的过程中,利用预设的支付结果处理方式获取所述目标应用程序执行支付操作后支付结果,并将所述支付结果作为结果获取参数的值;
基于结果获取参数的值,获取所述目标应用程序对应的支付结果。
在一种可能的实施方式中,所述获取模块404,用于在利用所述代理回调方式对所述目标应用程序的支付结果进行回调的过程中,在确定所述目标应用程序执行支付操作的过程中存在跳转到该目标应用程序对应的支付页面的情况下,确定所述目标应用程序是否调用了所述预设的支付结果处理方式;
若是,利用预设的支付结果处理方式获取所述目标应用程序执行支付操作后支付结果。
在一种可能的实施方式中,所述支付结果回调方式包括参数回调方式;
所述获取模块404,用于确定所述参数回调方式的目标获取参数的值;
在利用所述参数回调方式对所述目标应用程序的支付结果进行回调的过程中,基于所述目标获取参数,确定结果获取参数的值;
基于结果获取参数的值,获取所述目标应用程序对应的支付结果。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本公开实施例还提供了一种计算机设备,如图5所示,为本公开实施例提供的一种计算机设备结构示意图,包括:
处理器51和存储器52;所述存储器52存储有处理器51可执行的机器可读指令,处理器51用于执行存储器52中存储的机器可读指令,所述机器可读指令被处理器51执行时,处理器51执行下述步骤:S101:确定初始支付参数的值和用户选择的目标支付方式;S102:基于目标支付方式中目标支付参数与初始支付参数的映射关系,以及初始支付参数的值,确定目标支付参数的值;S103:将目标支付参数的值发送给目标支付方式对应的目标应用程序,以使目标应用程序利用目标支付参数进行支付操作以及S104:获取目标应用程序执行支付操作后的支付结果。
上述存储器52包括内存521和外部存储器522;这里的内存521也称内存储器,用于暂时存放处理器51中的运算数据,以及与硬盘等外部存储器522交换的数据,处理器51通过内存521与外部存储器522进行数据交换。
上述指令的具体执行过程可以参考本公开实施例中所述的支付方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的支付方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的支付方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的支付方法的步骤,具体可参见上述方法实施例,在此不再赘述。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种支付方法,其特征在于,包括:
确定初始支付参数的值和用户选择的目标支付方式;
基于目标支付方式中目标支付参数与初始支付参数的映射关系,以及所述初始支付参数的值,确定目标支付参数的值;其中,预先设置有初始支付参数与多个预设支付方式中每个预设支付方式的支付参数的映射关系;
将所述目标支付参数的值发送给所述目标支付方式对应的目标应用程序,以使所述目标应用程序利用所述目标支付参数进行支付操作;
获取所述目标应用程序执行支付操作后的支付结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标支付参数的值发送给所述目标支付方式对应的目标应用程序,包括:
基于所述目标支付方式的支付类型和集成了至少一种类型的支付方式的支付软件开发工具包,确定与所述支付类型对应的目标支付方式的目标应用程序接口;所述支付软件开发工具包包括所述至少一种类型的支付方式对应的应用程序接口;
基于所述目标应用程序接口,将所述目标支付参数的值发送给所述目标支付方式对应的目标应用程序。
3.根据权利要求2所述的方法,其特征在于,所述基于所述应用程序接口,将所述目标支付参数的值发送给所述目标支付方式对应的目标应用程序,包括:
基于所述目标应用程序接口,利用预设方法,初始化所述目标应用程序接口对应的目标应用程序,以与所述目标应用程序解耦;
将所述目标支付参数的值发送给所述初始化后的目标应用程序。
4.根据权利要求2所述的方法,其特征在于,所述获取所述目标应用程序执行支付操作后的支付结果,包括:
确定所述目标支付方式的支付结果回调方式;
基于所述支付结果回调方式,获取所述目标应用程序执行支付操作后的支付结果。
5.根据权利要求4所述的方法,其特征在于,所述支付结果回调方式包括代理回调方式;
所述基于所述支付结果回调方式,获取所述目标应用程序执行支付操作后支付结果,包括:
在利用所述代理回调方式对所述目标应用程序的支付结果进行回调的过程中,利用预设的支付结果处理方式获取所述目标应用程序执行支付操作后支付结果,并将所述支付结果作为结果获取参数的值;
基于结果获取参数的值,获取所述目标应用程序对应的支付结果。
6.根据权利要求5所述的方法,其特征在于,所述在利用所述代理回调方式对所述目标应用程序的支付结果进行回调的过程中,利用预设的支付结果处理方式获取所述目标应用程序执行支付操作后支付结果,包括:
在利用所述代理回调方式对所述目标应用程序的支付结果进行回调的过程中,在确定所述目标应用程序执行支付操作的过程中存在跳转到该目标应用程序对应的支付页面的情况下,确定所述目标应用程序是否调用了所述预设的支付结果处理方式;
若是,利用预设的支付结果处理方式获取所述目标应用程序执行支付操作后支付结果。
7.根据权利要求4所述的方法,其特征在于,所述支付结果回调方式包括参数回调方式;
所述基于所述支付结果回调方式,获取所述目标应用程序执行支付操作后的支付结果,包括:
确定所述参数回调方式的目标获取参数的值;
在利用所述参数回调方式对所述目标应用程序的支付结果进行回调的过程中,基于所述目标获取参数,确定结果获取参数的值;
基于结果获取参数的值,获取所述目标应用程序对应的支付结果。
8.一种支付装置,其特征在于,包括:
第一确定模块,用于确定初始支付参数的值和用户选择的目标支付方式;
第二确定模块,用于基于目标支付方式中目标支付参数与初始支付参数的映射关系,以及所述初始支付参数的值,确定目标支付参数的值;其中,预先设置有初始支付参数与多个预设支付方式中每个预设支付方式的支付参数的映射关系;
发送模块,用于将所述目标支付参数的值发送给所述目标支付方式对应的目标应用程序,以使所述目标应用程序利用所述目标支付参数进行支付操作;
获取模块,用于获取所述目标应用程序执行支付操作后的支付结果。
9.一种计算机设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述处理器执行如权利要求1至7任意一项所述的支付方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机设备运行时,所述计算机设备执行如权利要求1至7任意一项所述的支付方法的步骤。
CN202111346468.2A 2021-11-15 2021-11-15 一种支付方法、装置、计算机设备和存储介质 Pending CN113919834A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111346468.2A CN113919834A (zh) 2021-11-15 2021-11-15 一种支付方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111346468.2A CN113919834A (zh) 2021-11-15 2021-11-15 一种支付方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN113919834A true CN113919834A (zh) 2022-01-11

Family

ID=79246485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111346468.2A Pending CN113919834A (zh) 2021-11-15 2021-11-15 一种支付方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN113919834A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100268665A1 (en) * 2009-04-20 2010-10-21 Lutnick Howard W Cash flow rating system
CN109447609A (zh) * 2018-09-25 2019-03-08 平安科技(深圳)有限公司 支付方法、装置、计算机设备和存储介质
CN110717748A (zh) * 2018-07-11 2020-01-21 武汉斗鱼网络科技有限公司 一种网络支付的方法以及相关设备
US20200134756A1 (en) * 2018-10-31 2020-04-30 Opendoor Labs Inc. Address based parameter estimation
CN111190750A (zh) * 2019-12-25 2020-05-22 天津幸福生命科技有限公司 一种数据处理方法以及系统
CN111461698A (zh) * 2020-06-18 2020-07-28 北京云迹科技有限公司 一种支付方法、装置、存储介质和设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100268665A1 (en) * 2009-04-20 2010-10-21 Lutnick Howard W Cash flow rating system
CN110717748A (zh) * 2018-07-11 2020-01-21 武汉斗鱼网络科技有限公司 一种网络支付的方法以及相关设备
CN109447609A (zh) * 2018-09-25 2019-03-08 平安科技(深圳)有限公司 支付方法、装置、计算机设备和存储介质
US20200134756A1 (en) * 2018-10-31 2020-04-30 Opendoor Labs Inc. Address based parameter estimation
CN111190750A (zh) * 2019-12-25 2020-05-22 天津幸福生命科技有限公司 一种数据处理方法以及系统
CN111461698A (zh) * 2020-06-18 2020-07-28 北京云迹科技有限公司 一种支付方法、装置、存储介质和设备

Similar Documents

Publication Publication Date Title
CN1838089B (zh) 在应用主机环境中执行单元测试的方法和装置
CN110083455B (zh) 图计算处理方法、装置、介质及电子设备
CN105677452B (zh) 任务平台任务处理方法和装置
CN110955409B (zh) 在云平台上创建资源的方法和装置
CN110442502B (zh) 一种埋点的方法、装置、设备及存储介质
CN110673924A (zh) 一种多架构容器云镜像选择方法、装置、设备及存储介质
CN107341106A (zh) 应用程序兼容性检测方法、开发终端及存储介质
CN111507676A (zh) 业务订单流程创建和实现方法、装置、存储介质和系统
CN112965794A (zh) 算法调用方法、电子设备及存储介质
CN116205697A (zh) 用于虚拟公有云的资源推荐方法和资源推荐装置
CN111951114B (zh) 一种任务执行方法、装置、电子设备及可读存储介质
CN113919834A (zh) 一种支付方法、装置、计算机设备和存储介质
CN114090434A (zh) 一种代码调试方法、装置、计算机设备和存储介质
CN114217927A (zh) 一种线程调用方法、装置、计算机设备及存储介质
CN112052051A (zh) 插件处理方法、装置、设备及存储介质
CN114003457A (zh) 数据获取方法和装置、存储介质及电子设备
CN111949296A (zh) 一种数据更新方法及装置
CN111782196A (zh) 基于mvp架构的开发方法及装置
CN112486465A (zh) 一种代码更新方法及装置
CN113986379A (zh) 一种应用启动方法、装置、计算机设备和存储介质
CN105677453B (zh) 任务平台任务处理方法和装置
CN111782282B (zh) 启动程序加载方法和装置、电子设备和存储介质
CN113467861B (zh) 文件调用方法和装置、存储介质及电子设备
CN111324368A (zh) 一种数据共享方法及服务器
CN111708711B (zh) Ab测试方法及装置、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination