基于区块链的缴费代扣签约方法及装置、电子设备
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的缴费代扣签约方法及装置、电子设备。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种基于区块链的缴费代扣签约方法及装置、电子设备、存储介质。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种基于区块链的缴费代扣签约方法,应用于区块链节点;所述方法包括:
接收用户提交的签约交易,所述签约交易用于授权支付系统为所述用户提供针对缴费订单的缴费代扣服务;所述缴费订单为该用户在第三方业务系统中的缴费订单;所述签约交易包含所述用户提交的三方协议签约信息;
响应于所述签约交易,调用发布在区块链上的第一智能合约中声明的代扣校验逻辑,校验所述区块链中是否存证了所述支付系统与所述第三方业务系统之间签订的代扣协议;
如果是,基于所述三方协议签约信息,创建授权所述支付系统为所述用户提供针对所述缴费订单的缴费代扣服务的三方协议,并将所述三方协议发布至所述区块链进行存证。
可选的,所述校验所述区块链中是否存证了所述支付系统与所述第三方业务系统之间签订的代扣协议,包括:
校验所述区块链中是否存证了所述代扣协议;
如果是,进一步校验所述代扣协议是否有效。
可选的,所述基于所述三方协议签约信息,创建授权所述支付系统为所述用户提供针对所述缴费订单的缴费代扣服务的三方协议,并将所述三方协议发布至所述区块链进行存证,包括:
基于所述三方协议签约信息,创建所述三方协议;
将所述三方协议发布至所述区块链进行存证;以及,
创建与所述三方协议关联的第二智能合约,并向所述区块链发布所述第二智能合约;所述第二智能合约中声明有用于校验对应于所述用户的三方协议的三方校验逻辑。
可选的,还包括:
接收与所述区块链对接的支付系统发送的代扣交易,所述代扣交易包含所述用户在所述第三方业务系统中的缴费订单的代扣信息;
响应于所述代扣交易,调用所述第一智能合约中声明的条件校验逻辑,校验所述代扣信息是否符合所述代扣协议中制定的代扣限制条件;
如果是,进一步调用所述第二智能合约中声明的三方校验逻辑,校验是否存在对应于所述用户的三方协议,以使得所述支付系统在获取到校验结果为校验通过时,根据所述代扣信息对所述用户进行扣款处理。
可选的,
还包括:在创建所述三方协议之后,按照所述三方协议中记载的生效时间将所述三方协议标记为生效状态;
所述进一步调用所述第二智能合约中声明的三方校验逻辑,校验是否存在对应于所述用户的三方协议,包括:校验是否存在所述三方协议;如果是,进一步校验所述三方协议是否处于生效状态。
可选的,还包括:
接收所述用户提交的修改交易,所述修改交易包含针对对应于所述用户的三方协议的修改信息;
响应于所述修改交易,基于所述修改信息创建更新版三方协议;以及,
创建与所述更新版三方协议关联的第三智能合约,并向所述区块链发布所述第三智能合约,所述第三智能合约中声明有用于校验对应于所述用户的更新版三方协议的三方校验逻辑。
可选的,还包括:
接收所述用户提交的解约交易,所述解约交易包含针对对应于所述用户的三方协议的解约信息;
响应于所述解约交易,将对应于所述用户的三方协议标记为失效状态。
根据本说明书一个或多个实施例的第二方面,提出了一种基于区块链的缴费代扣签约装置,应用于区块链节点;所述装置包括:
签约接收单元,接收用户提交的签约交易,所述签约交易用于授权支付系统为所述用户提供针对缴费订单的缴费代扣服务;所述缴费订单为该用户在第三方业务系统中的缴费订单;所述签约交易包含所述用户提交的三方协议签约信息;
代扣校验单元,响应于所述签约交易,调用发布在区块链上的第一智能合约中声明的代扣校验逻辑,校验所述区块链中是否存证了所述支付系统与所述第三方业务系统之间签订的代扣协议;
创建单元,如果是,基于所述三方协议签约信息,创建授权所述支付系统为所述用户提供针对所述缴费订单的缴费代扣服务的三方协议,并将所述三方协议发布至所述区块链进行存证。
可选的,所述代扣校验单元具体用于:
校验所述区块链中是否存证了所述代扣协议;
如果是,进一步校验所述代扣协议是否有效。
可选的,所述创建单元具体用于:
基于所述三方协议签约信息,创建所述三方协议;
将所述三方协议发布至所述区块链进行存证;以及,
创建与所述三方协议关联的第二智能合约,并向所述区块链发布所述第二智能合约;所述第二智能合约中声明有用于校验对应于所述用户的三方协议的三方校验逻辑。
可选的,还包括:
代扣接收单元,接收与所述区块链对接的支付系统发送的代扣交易,所述代扣交易包含所述用户在所述第三方业务系统中的缴费订单的代扣信息;
条件校验单元,响应于所述代扣交易,调用所述第一智能合约中声明的条件校验逻辑,校验所述代扣信息是否符合所述代扣协议中制定的代扣限制条件;
三方校验单元,如果是,进一步调用所述第二智能合约中声明的三方校验逻辑,校验是否存在对应于所述用户的三方协议,以使得所述支付系统在获取到校验结果为校验通过时,根据所述代扣信息对所述用户进行扣款处理。
可选的,
还包括:生效标记单元,在创建所述三方协议之后,按照所述三方协议中记载的生效时间将所述三方协议标记为生效状态;
所述三方校验单元具体用于:校验是否存在所述三方协议;如果是,进一步校验所述三方协议是否处于生效状态。
可选的,还包括:
修改接收单元,接收所述用户提交的修改交易,所述修改交易包含针对对应于所述用户的三方协议的修改信息;
更新单元,响应于所述修改交易,基于所述修改信息创建更新版三方协议;以及,
创建与所述更新版三方协议关联的第三智能合约,并向所述区块链发布所述第三智能合约,所述第三智能合约中声明有用于校验对应于所述用户的更新版三方协议的三方校验逻辑。
可选的,还包括:
解约接收单元,接收所述用户提交的解约交易,所述解约交易包含针对对应于所述用户的三方协议的解约信息;
失效标记单元,响应于所述解约交易,将对应于所述用户的三方协议标记为失效状态。
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述任一实施例中所述的基于区块链的缴费代扣签约方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述实施例中任一所述基于区块链的缴费代扣签约的步骤。
由以上技术方案可见,在本说明书的缴费代扣签约方案中,基于区块链来实现用户与第三方业务系统、支付系统之间三方协议的签订,从而用户可通过签订三方协议来授权支付系统代替第三方业务系统对该用户进行扣款。一方面,通过将创建的三方协议发布至区块链进行存证,使得所包含的三方协议签约信息可溯源、防伪、防篡改。另一方面,通过在签订三方协议之前调用智能合约校验支付系统与第三方业务系统之间签订的代扣协议,可保证用户的授权操作在满足支付系统具备代替第三方业务系统进行扣款的前提下执行。
进一步的,基于签订的三方协议,当第三方业务系统与用户之间存在缴费订单时,第三方业务系统可在区块链上存证代扣请求,而支付系统在监听到该代扣请求后,可构建代扣交易来调用智能合约基于上述代扣协议和三方协议校验代扣是否合法,进而在合法的情况下对用户进行扣款处理,实现缴费代扣服务。
附图说明
图1是一示例性实施例提供的一种创建智能合约的示意图;
图2是一示例性实施例提供的调用智能合约的示意图;
图3是一示例性实施例提供的创建智能合约和调用智能合约的示意图;
图4是一示例性实施例提供的一种基于区块链的缴费代扣签约方法的流程图;
图5是一示例性实施例提供的一种基于区块链的缴费代扣签约方案的整体架构示意图;
图6是一示例性实施例提供的一种基于区块链的缴费代扣方法的流程图;
图7是一示例性实施例提供的另一种基于区块链的缴费代扣方法的流程图;
图8是一示例性实施例提供的一种基于区块链的缴费代扣方法的交互图;
图9是一示例性实施例提供的一种基于区块链的缴费代扣方法的交互图;
图10是一示例性实施例提供的一种设备的结构示意图;
图11是一示例性实施例提供的一种基于区块链的缴费代扣签约装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。
而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。
联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
不论是公有链、私有链还是联盟链,都可能提供智能合约(Smart contract)的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑,这是以太坊区别于比特币区块链技术的最大挑战。以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,这意味着可以通过它实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,虚拟机直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”)。部署在区块链上的智能合约可以是字节码的形式。
如图1所示,Bob将一个包含创建智能合约信息的交易(Transaction)发送到以太坊网络后,节点1的EVM可以执行这个交易并生成对应的合约实例。图中1中的“0x68e12cf284…”代表了这个合约的地址,交易的data字段保存的可以是字节码,交易的to字段为一个空的账户。节点间通过共识机制达成一致后,这个合约成功创建,后续用户可以调用这个合约。
合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址,合约代码和账户存储将保存在该合约账户中。智能合约的行为由合约代码控制,而智能合约的账户存储(Storage)则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和账户存储的虚拟账户。
前述提到,包含创建智能合约的交易的data字段保存的可以是该智能合约的字节码。字节码由一连串的字节组成,每一字节可以标识一个操作。基于开发效率、可读性等多方面考虑,开发者可以不直接书写字节码,而是选择一门高级语言编写智能合约代码。例如,采用诸如Solidity、Serpent、LLL语言等高级语言。对于采用高级语言编写的智能合约代码,可以经过编译器编译,生成可以部署到区块链上的字节码。
以Solidity语言为例,用其编写的合约与面向对象编程语言中的类(Class)很相似,在一个合约中可以声明多种成员,包括状态变量、函数、函数修改器、事件等。状态变量是永久存储在智能合约的账户存储中的值,用于保存合约的状态。
一般的,当一个智能合约部署在区块链后,智能合约的合约代码中的状态变量对应的存储状态是明文,任何人都可以看到其状态,无隐私保护的设置和能力。
如图2所示,仍以以太坊为例,Bob将一个包含调用智能合约信息的交易发送到以太坊网络后,节点1的EVM可以执行这个交易并生成对应的合约实例。图中2中交易的from字段是发起调用智能合约的账户的地址,to字段中的“0x692a70d2…”代表了被调用的智能合约的地址,value字段在以太坊中是以太币的值,交易的data字段保存的调用智能合约的方法和参数。调用智能合约后,balance的值可能改变。后续,某个客户端可以通过某一区块链节点(例如图2中的节点6)查看balance的当前值。
智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易完成后,区块链上就保存了无法篡改、不会丢失的交易凭证。
创建智能合约和调用智能合约的示意图如图3所示。以太坊中要创建一个智能合约,需要经过编写智能合约、变成字节码、部署到区块链等过程。以太坊中调用智能合约,是发起一笔指向智能合约地址的交易,智能合约代码分布式的运行在以太坊网络中每个节点的虚拟机中。
请参见图4,图4是一示例性实施例提供的一种基于区块链的缴费代扣签约方法的流程图。如图4所示,该方法应用于区块链节点,可以包括以下步骤:
步骤402,接收用户提交的签约交易,所述签约交易用于授权支付系统为所述用户提供针对缴费订单的缴费代扣服务;所述缴费订单为该用户在第三方业务系统中的缴费订单;所述签约交易包含所述用户提交的三方协议签约信息。
在本实施例中,用户可通过ISV(Independent Software Vendors,独立软件开发商)提供的签约页面入口发起签约,或者通过其他与区块链节点对接的客户端提供的签约页面入口发起签约。用户在签约页面填写三方协议签约信息,包括业务类型、户号、户名、生效时间等。ISV(或者其他客户端)再基于该三方协议签约信息构建签约交易。
步骤404,响应于所述签约交易,调用发布在区块链上的第一智能合约中声明的代扣校验逻辑,校验所述区块链中是否存证了所述支付系统与所述第三方业务系统之间签订的代扣协议。
在本实施例中,支付系统和第三方业务系统之间可预先制定代扣协议。例如,双方可在线下协商代扣协议具体的代扣规则和代扣限制条件,可包含以下至少之一:代扣金额处于预设金额范围内、代扣次数处于预设次数范围内、代扣时刻处于预设时间范围内等等。进一步的,在协商确定出代扣协议的具体内容后,可由第三方业务系统(或者由支付系统)将代扣协议发布至区块链上进行存证,并在区块链上部署与该代扣协议关联的第一智能合约。
作为一示例性实施例,上述区块链具体可以是一个联盟成员包括第三方业务系统和支付系统的联盟链。在该情况下,可在第一智能合约中声明用于校验区块链中是否存证了支付系统与第三方业务系统之间签订的代扣协议的代扣校验逻辑。在完成对第一智能合约的开发后,第三方业务系统(或者支付系统)可以通过联盟链中的任一节点设备将该智能合约发布至联盟链,并在该智能合约由该联盟链中的部分指定的成员节点设备(比如,联盟链中指定的若干个具有记账权限的权威节点设备)完成共识后,收录至该联盟链的分布式数据库(即分布式账本)。后续,用户可以通过接入任一节点设备的客户端,向区块链中收录的该智能合约提交交易(transaction),来发起对该智能合约的合约调用,触发在联盟链上来触发执行相关的业务逻辑。其中,联盟链中的成员节点设备在对发布至区块链的智能合约进行共识处理时,所采用的共识算法,以及具体的共识过程,在本说明书中不再进行详述,本领域技术人员在将本说明书记载的技术方案付诸实现时,可以参考相关技术中的记载。
例如,区块链节点在接收到签约交易后,可调用发布在区块链上的第一智能合约中声明的代扣校验逻辑,校验区块链中是否存证了与签约交易中记录的hash值对应的代扣协议。
在本实施例中,针对支付系统与第三方业务系统之间签订的代扣协议,还可进一步维护代扣协议的状态。其中,代扣协议可以包括生效状态、待生效状态和失效状态等。那么,在校验区块链中是否存证有代扣协议时,可先校验区块链中是否存证有该代扣协议,如果是,进一步校验代扣协议是否有效。比如,可根据代扣协议中记载的生效时间来判定该代扣协议是否有效。
步骤406,如果是,基于所述三方协议签约信息,创建授权所述支付系统为所述用户提供针对所述缴费订单的缴费代扣服务的三方协议,并将所述三方协议发布至所述区块链进行存证。
在本实施例中,除创建三方协议并发布至区块链进行存证之外,还可创建与该三方协议关联的第二智能合约,并向区块链发布该第二智能合约。其中,第二智能合约中声明有用于校验对应于该用户的三方协议的三方校验逻辑。例如,支付系统或者第三方业务系统可预先设置一用于创建第二智能合约的合约模板(比如发布至区块链上进行存证),该合约模板中记录有用于校验三方协议的通用逻辑。那么,在利用该合约模板创建智能合约时,可将所创建三方协议的hash值填入该通用逻辑,填入后的逻辑为用于校验与该hash值对应的三方协议的三方校验逻辑。
在本实施例中,在开发第一智能合约时,第三方业务系统(或支付系统)还可基于两者之间签订的代扣协议,将约定的代扣限制条件以条件校验逻辑的形式(即条件校验逻辑用于校验第三方业务系统提交的代扣信息是否符合代扣协议中制定的代扣限制条件)声明于第一智能合约中。基于上述发布第一智能合约与第二智能合约的过程,支付系统在第三方业务系统存在缴费代扣需求时,可向区块链节点发送相应的代扣交易(包含用户在第三方业务系统中的缴费订单的代扣信息),区块链节点在接收到该代扣交易后,响应于该代扣交易,调用第一智能合约中声明的条件校验逻辑,校验代扣信息是否符合代扣协议中制定的代扣限制条件;如果是,进一步调用第二智能合约中声明的三方校验逻辑,校验是否存在对应于该用户的三方协议,以使得支付系统在获取到校验结果为校验通过时,根据该代扣信息对该用户进行扣款处理。
类似的,针对用户与支付系统、第三方业务系统之间签订的三方协议,可进一步维护三方协议的状态。比如,可在创建三方协议之后,按照三方协议中记载的生效时间将该三方协议标记为生效状态。那么,在校验用户的三方协议时,可先校验是否存在与该用户对应的三方协议;如果是,进一步校验该三方协议是否处于生效状态。
在本实施例中,用户还可对已签订的三方协议进行修改,比如修改用户的户名、户号等账户信息。用户可通过ISV或者其他与区块链节点对接的客户端打包一笔修改交易(包含针对该用户的三方协议的修改信息),并向区块链节点发送该修改交易。那么,区块链节点在接收到该修改交易后,响应于该修改交易,基于修改信息创建更新版三方协议;以及,创建与更新版三方协议关联的第三智能合约(声明有用于校验对应于该用户的更新版三方协议的三方校验逻辑),并向区块链发布所述第三智能合约。
在本实施例中,用户还可对已签订的三方协议进行解约,比如将当前为生效状态的三方协议(由用户签订)修改为失效状态。用户可通过ISV或者其他与区块链节点对接的客户端打包一笔解约交易(包含针对该用户的三方协议的解约信息),并向区块链节点发送该解约交易。那么,区块链节点在接收到用户提交的解约交易后,响应于该解约交易,将对应于该用户的三方协议标记为失效状态。
图5是一示例性实施例提供的一种基于区块链的缴费代扣签约方案的整体架构示意图。如图5所示,用户50可以预先通过客户端51在服务器52处进行账号注册,得到与自身唯一对应的已注册账号。然后,用户50可以通过在客户端51上登录该已注册账号,而服务器52基于该已注册账号在客户端51上的登录信息,确定该已注册账号(对应于用户50)与客户端51之间建立了绑定关系。其中,该绑定关系为用户50的用户信息与客户端51的设备信息之间的绑定关系。基于该绑定关系,服务器52在接收到客户端51后续发送的签约交易时,可以确认该签约交易对应于用户50。服务器52上运行有区块链的客户端,使得该服务器52被配置为一区块链节点。用户50可在客户端51上登录已注册账号,并填写三方协议签约信息,以通过客户端51向服务器52发送包含该三方协议签约信息的签约交易。服务器52(作为区块链节点)在接收到该签约交易后执行上述校验代扣协议的步骤,并在校验通过后基于三方协议签约信息创建三方协议。
由以上技术方案可见,用户可通过向区块链节点提交一笔签约交易来实现与第三方业务系统、支付系统之间三方协议的签订。而基于签订的三方协议,当该用户在与之签订三方协议的第三方业务系统中产生缴费订单时,支付系统便可为该用户提供针对缴费订单的缴费代扣服务,也即可代替第三方业务系统针对缴费订单对用户进行扣款处理。下面分别从区块链节点以及与该区块链节点对接的支付系统两侧对代扣的过程进行说明。
请参见图6,图6是一示例性实施例提供的一种基于区块链的缴费代扣方法的流程图。如图6所示,该方法应用于与区块链对接的支付系统,可以包括以下步骤:
步骤602,监听区块链上存证的代扣请求,所述代扣请求包含代扣请求方针对目标账户的代扣信息。
在本实施例中,支付系统与区块链对接可理解为:支付系统以区块链作为数据源,基于区块链上存证的数据执行相关的业务逻辑。当第三方业务系统与用户之间产生缴费订单时,第三方业务系统可作为代扣请求方,基于区块链发起代扣请求。比如,第三方业务系统可将包含自身针对目标账户(即用户的账户)的代扣信息发布至区块链进行存证。基于代扣请求的上链,支付系统可通过定时任务监听区块链上存证的代扣请求。比如,以周期为2s监听区块链,当监听到有新的代扣请求存证在新的区块时,拉取该区块以获取新存证的代扣请求。
步骤604,响应于所述代扣请求,基于所述代扣信息构建代扣交易。
在本实施例中,支付系统在监听到代扣请求后,可先执行一些必要的业务校验。例如,可校验代扣请求方是否处于正常工作状态,代扣请求方的缴费服务是否可用等。然后,再基于代扣请求中包含的代扣信息构建代扣交易,以调用智能合约校验该代扣信息是否符合支付系统与代扣请求方之间针对目标账户的代扣规则。
步骤606,向区块链节点发送所述代扣交易,以使所述区块链节点响应于所述代扣交易,调用发布在所述区块链上的智能合约中声明的校验逻辑,校验所述代扣信息是否符合所述支付系统与所述代扣请求方之间针对所述目标账户的代扣规则。
步骤608,获取针对所述代扣信息的校验结果,如果校验通过,根据所述代扣信息对所述目标账户进行扣款处理。
在本实施例中,当支付系统获取到针对代扣信息的校验结果为校验通过时,说明支付系统有权代替代扣请求方对用户进行扣款处理,因此可根据代扣信息从用户的目标账户扣款至代扣请求方的指定账户。其中,该指定账户可在支付系统与第三方业务系统签订代扣协议的阶段,由第三方业务系统指定。
在本实施例中,在支付系统获取到针对代扣信息的校验结果为校验通过后,可生成对应于该代扣请求的代扣单据,并将代扣单据发布至区块链进行存证。而在扣款成功后,可将代扣结果发布至区块链与代扣单据进行关联存证,以使代扣请求方在监听到在区块链上存证的代扣结果后,确认目标账户缴费成功。进一步的,代扣请求方可根据确认出的缴费成功的结果生成销账结果(即对本次代扣请求的扣款结果进行销账),并将销账结果与监听到的代扣结果进行关联存证。
请参见图7,图7是一示例性实施例提供的另一种基于区块链的缴费代扣方法的流程图。如图7所示,该方法应用于区块链节点,可以包括以下步骤:
步骤702,接收与区块链对接的支付系统发送的代扣交易,所述代扣交易由所述支付系统在监听到所述区块链上存证的代扣请求时,基于所述代扣请求包含的代扣请求方针对目标账户的代扣信息构建。
步骤704,响应于所述代扣交易,调用发布在所述区块链上的智能合约中声明的校验逻辑,校验所述代扣信息是否符合所述支付系统与所述代扣请求方之间针对所述目标账户的代扣规则,以使得所述支付系统在获取到校验结果为校验通过时,根据所述代扣信息对所述目标账户进行扣款处理。
在本实施例中,基于第一智能合约与第二智能合约在区块链上的部署,在校验代扣信息时,可先调用发布在区块链上的第一智能合约中声明的条件校验逻辑,确定该代扣信息是否符合支付系统与代扣请求方(即第三方业务系统)之间签订的代扣协议中制定的代扣限制条件;如果是,进一步调用发布在区块链上的第二智能合约中声明的三方校验逻辑,确定是否存在对应于目标账户(与用户相对应)的三方协议,三方协议用于表明目标账户授权支付系统为目标账户提供针对缴费订单的缴费代扣服务,缴费订单为目标账户在代扣请求方中的缴费订单。
需要说明的是,接入区块链的用户在区块链上发起的请求的类型,具体可以是指传统的区块链中所采用的交易(transaction)。例如,接入区块链的用户可以通过在区块链中发起一笔用于签订三方协议的交易(即签约交易),来调用已发布在区块链中的智能合约来完成对三方协议签约信息的校验。当然,接入区块链的用户在区块链上发起的请求的类型,具体也可以是交易以外的,其它形式的具有标准的数据结构的指令、消息等,本说明书一个或多个实施例并不进行特别限定。在以下的各实施例中,将以接入区块链的用户在区块链上发起的请求为交易为例进行说明。
由以上技术方案可见,在本说明书的缴费代扣签约方案中,基于区块链来实现用户与第三方业务系统、支付系统之间三方协议的签订,从而用户可通过签订三方协议来授权支付系统代替第三方业务系统对该用户进行扣款。一方面,通过将创建的三方协议发布至区块链进行存证,使得所包含的三方协议签约信息可溯源、防伪、防篡改。另一方面,通过在签订三方协议之前调用智能合约校验支付系统与第三方业务系统之间签订的代扣协议,可保证用户的授权操作在满足支付系统具备代替第三方业务系统进行扣款的前提下执行。
进一步的,基于签订的三方协议,当第三方业务系统与用户之间存在缴费订单时,第三方业务系统可在区块链上存证代扣请求,而支付系统在监听到该代扣请求后,可构建代扣交易来调用智能合约基于上述代扣协议和三方协议校验代扣是否合法,进而在合法的情况下对用户进行扣款处理,实现缴费代扣服务。
为了便于理解,下面结合交互图对本说明书中的代扣签约方案和缴费代扣方案进行详细说明。
请参见图8,图8是一示例性实施例提供的一种基于区块链的缴费代扣方法的交互图。如图8所示,该交互过程可以包括以下步骤:
步骤802,客户端采集用户填写的三方协议签约信息。
在本实施例中,用户可通过ISV或者其他与区块链节点对接的客户端所提供的签约页面入口发起签约。用户在签约页面填写三方协议签约信息,可以包括业务类型、户号、户名、生效时间等。ISV(或者其他客户端)在采集到用户填写的三方协议签约信息后,将其打包成一笔签约交易发送至区块链节点以完成签约。例如,签约交易可为如下形式:<HASH_ID1,SIGN>;其中,HASH_ID1为支付系统与第三方业务系统之间签订的代扣协议的hash值,SIGN为三方协议签约信息,该三方协议签约信息由用户的私钥进行签名。ISV(或者其他客户端)在打包好签约交易后,再向区块链节点发送该签约交易,以表明用户授权支付系统为该用户提供针对缴费订单的缴费代扣服务。
步骤804,客户端向区块链节点提交签约交易。
步骤806,区块链节点调用第一智能合约校验代扣协议。
在本实施例中,支付系统和第三方业务系统之间可预先制定代扣协议。例如,双方可在线下协商代扣协议的具体内容:第三方业务系统的指定账户、代扣的金额范围限制、代扣的笔数限制、发起代扣的时间限制等。在协商完成代扣协议后,可由支付系统或者第三方业务系统将代扣协议发布至区块链上进行存证,并在区块链上部署与该代扣协议关联的第一智能合约。在一种情况下,可将代扣协议存储至区块中;在另一种情况下,可将代扣协议存储至第一智能合约的账户空间中。
基于所存证的代扣协议,可在第一智能合约中声明用于校验区块链中是否存证了支付系统与第三方业务系统之间签订的代扣协议的代扣校验逻辑。那么,区块链节点在接收到签约交易后,可调用第一智能合约中声明的代扣校验逻辑,校验区块链中是否存证了与签约交易中记录的hash值对应的代扣协议。
针对支付系统与第三方业务系统之间签订的代扣协议,还可维护代扣协议的状态。其中,代扣协议可以包括生效状态、待生效状态和失效状态等。那么,在校验区块链中是否存证有代扣协议时,可先校验区块链中是否存证有该代扣协议,如果是,进一步校验代扣协议是否有效。比如,可根据代扣协议中记载的生效时间来判定该代扣协议是否有效。
举例而言,假定代扣协议中记载的生效时间为2019年1月1日~2019年12月31日,存证该代扣协议的时间为2018年12月1日。那么,在时间段2018年12月1日~2018年12月31日内,该代扣协议为待生效状态;在时间段2019年1月1日~2019年12月31日内,该代扣协议为生效状态;在2019年12月31日以后,该代扣协议为失效状态。
进一步的,第三方业务系统(或支付系统)还可将上述代扣限制条件以条件校验逻辑的形式(即条件校验逻辑用于校验第三方业务系统提交的代扣信息是否符合代扣协议中制定的代扣限制条件)声明于第一智能合约中。其中,支付系统(或第三方业务系统)可预先设置一用于创建第一智能合约的合约模板(比如发布至区块链上进行存证),该合约模板中记录有用于校验代扣信息是否符合代扣限制条件的通用逻辑。比如,预先写好校验代扣信息是否满足代扣的金额范围限制、代扣的笔数限制、发起代扣的时间限制等判断逻辑;其中,具体的参数(比如,金额参数、笔数参数、时间参数)采用通用字段表示。那么,当需要发布第一智能合约时,直接引用该通用逻辑,将具体的参数数值填入通用字段即可。需要说明的是,利用该条件校验逻辑校验的过程在下文进行详述。
步骤808,区块链节点创建三方协议。
步骤810,区块链节点将三方协议发布至区块链进行存证。
步骤812,区块链节点发布与三方协议关联的第二智能合约。
在一种情况下,可将三方协议存储至区块中;在另一种情况下,可将代扣协议存储至第二智能合约的账户空间中。其中,第二智能合约中声明有用于校验对应于用户的三方协议的三方校验逻辑。例如,支付系统(或第三方业务系统)可预先设置一用于创建第二智能合约的合约模板(比如发布至区块链上进行存证),该合约模板中记录有用于校验三方协议的通用逻辑。那么,在利用该合约模板创建智能合约时,可将所创建三方协议的hash值填入该通用逻辑,填入后的逻辑为用于校验与该hash值对应的三方协议的三方校验逻辑。
类似的,同样可维护三方协议的状态。比如,可在创建三方协议之后,按照三方协议中记载的生效时间将该三方协议标记为生效状态。那么,在后续需要校验用户的三方协议时,可先校验是否存在与该用户对应的三方协议;如果是,进一步校验该三方协议是否处于生效状态。
步骤814,区块链节点向客户端返回签约成功的回执。
在本实施例中,用户还可对已签订的三方协议进行修改,比如修改用户的户名、户号等账户信息。用户可通过ISV或者其他与区块链节点对接的客户端打包一笔修改交易(包含针对该用户的三方协议的修改信息),并向区块链节点发送该修改交易。那么,区块链节点在接收到该修改交易后,响应于该修改交易,基于修改信息创建更新版三方协议;以及,创建与更新版三方协议关联的第三智能合约(声明有用于校验对应于该用户的更新版三方协议的三方校验逻辑),并向区块链发布所述第三智能合约。其中,该修改三方协议的过程与上述签约过程类似,在此不再赘述。
在本实施例中,用户还可对已签订的三方协议进行解约,比如将当前为生效状态的三方协议(由用户签订)修改为失效状态。用户可通过ISV或者其他与区块链节点对接的客户端打包一笔解约交易(包含针对该用户的三方协议的解约信息),并向区块链节点发送该解约交易。那么,区块链节点在接收到用户提交的解约交易后,响应于该解约交易,将对应于该用户的三方协议标记为失效状态。
基于签订的三方协议,当该用户在与之签订三方协议的第三方业务系统中产生缴费订单时,支付系统便可为该用户提供针对缴费订单的缴费代扣服务,也即可代替第三方业务系统针对缴费订单对用户进行扣款处理。请参见图9,图9是一示例性实施例提供的一种基于区块链的缴费代扣方法的交互图。如图9所示,该交互过程可以包括以下步骤:
步骤902,支付系统监听区块链上存证的代扣请求。
在本实施例中,当第三方业务系统与用户之间产生缴费订单时,第三方业务系统可作为代扣请求方,基于区块链发起代扣请求。比如,第三方业务系统可将包含自身针对目标账户(即用户的账户)的代扣信息发布至区块链进行存证。其中,代扣信息可以包括用户的户号、户名、账期、金额、账单有效时间等。举例而言,代扣请求的形式如下:<HASH_ID1,Deduct_Request>;其中HASH_ID1为代扣请求的hash值,由对代扣信息Deduct_Request进行hash计算得到。
基于代扣请求的上链,支付系统可通过定时任务监听区块链上存证的代扣请求。比如,以周期为2s监听区块链,当监听到有新的代扣请求存证在新的区块时,拉取该区块以获取新存证的代扣请求。
步骤904,支付系统构建代扣交易。
在本实施例中,支付系统在监听到代扣请求后,可先执行一些必要的业务校验。例如,可校验代扣请求方是否处于正常工作状态,代扣请求方的缴费服务是否可用等。然后,再基于代扣请求中包含的代扣信息打包一笔代扣交易;其中,该代扣交易中还包含第一智能合约和第二智能合约的合约地址,那么区块链节点在接收到该代扣交易后,可基于代扣交易中包含的合约地址来调用相应的智能合约执行相关的业务逻辑。
步骤906,支付系统向区块链节点发送代扣交易。
步骤908,区块链节点调用第一智能合约确定代扣信息是否符合代扣协议。
步骤910,区块链节点调用第二智能合约确定三方协议是否处于生效状态。
在本实施例中,区块链节点先调用第一智能合约中声明的条件校验逻辑,确定代扣交易中的代扣信息是否符合代扣协议中制定的代扣限制条件;如果是,进一步调用第二智能合约中声明的三方校验逻辑,确定是否存在对应于目标账户的三方协议,且该三方协议是否处于生效状态。
步骤912,支付系统获取校验结果。
在本实施例中,以以太坊为例,可利用以太坊的事件机制来实现智能节约与支付系统之间的交互。比如,在第二智能合约得到校验结果以后,可生成相应的校验通过事件,那么与以太坊对接的支付系统在监听到该校验通过事件时,可根据该校验通过事件获取到校验结果。
步骤914,支付系统生成代扣单据并发布至区块链进行存证。
步骤916,支付系统从目标账户扣款至指定账户。
步骤918,生成代扣结果并发布至区块链进行存证。
在本实施例中,在支付系统获取到针对代扣信息的校验结果为校验通过后,可生成对应于该代扣请求的代扣单据,并将代扣单据发布至区块链进行存证。而在扣款成功后,可将代扣结果发布至区块链与代扣单据进行关联存证,以使代扣请求方在监听到在区块链上存证的代扣结果后,确认目标账户缴费成功。进一步的,代扣请求方可根据确认出的缴费成功的结果生成销账结果(即对本次代扣请求的扣款结果进行销账),并将销账结果与监听到的代扣结果进行关联存证。
举例而言,可对代扣单据进行hash计算,将计算得到的hash值作为代扣单据的索引记录于代扣结果中;类似的,可对代扣结果进行hash计算,将计算得到的hash值作为代扣结果的索引记录于销账结果中。通过上述关联存证的方式,可形成一条代扣的链表,从而有利于提高区块链节点中各个节点设备查看整个代扣过程的效率。比如,ISV可以监听扣款结果存证新块(或者由支付系统通知),根据该链表获取本次代扣的完整过程,以用于日常运营、交易费用返佣结算等。
图10是一示例性实施例提供的一种设备的结构示意图。请参考图10,在硬件层面,该设备包括处理器1002、内部总线1004、网络接口1006、内存1008以及非易失性存储器1010,当然还可能包括其他业务所需要的硬件。处理器1002从非易失性存储器1010中读取对应的计算机程序到内存1008中然后运行,在逻辑层面上形成基于区块链的缴费代扣签约装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图11,在软件实施方式中,该基于区块链的缴费代扣签约装置可以包括:
签约接收单元1101,接收用户提交的签约交易,所述签约交易用于授权支付系统为所述用户提供针对缴费订单的缴费代扣服务;所述缴费订单为该用户在第三方业务系统中的缴费订单;所述签约交易包含所述用户提交的三方协议签约信息;
代扣校验单元1102,响应于所述签约交易,调用发布在区块链上的第一智能合约中声明的代扣校验逻辑,校验所述区块链中是否存证了所述支付系统与所述第三方业务系统之间签订的代扣协议;
创建单元1103,如果是,基于所述三方协议签约信息,创建授权所述支付系统为所述用户提供针对所述缴费订单的缴费代扣服务的三方协议,并将所述三方协议发布至所述区块链进行存证。
可选的,所述代扣校验单元1102具体用于:
校验所述区块链中是否存证了所述代扣协议;
如果是,进一步校验所述代扣协议是否有效。
可选的,所述创建单元1103具体用于:
基于所述三方协议签约信息,创建所述三方协议;
将所述三方协议发布至所述区块链进行存证;以及,
创建与所述三方协议关联的第二智能合约,并向所述区块链发布所述第二智能合约;所述第二智能合约中声明有用于校验对应于所述用户的三方协议的三方校验逻辑。
可选的,还包括:
代扣接收单元1104,接收与所述区块链对接的支付系统发送的代扣交易,所述代扣交易包含所述用户在所述第三方业务系统中的缴费订单的代扣信息;
条件校验单元1105,响应于所述代扣交易,调用所述第一智能合约中声明的条件校验逻辑,校验所述代扣信息是否符合所述代扣协议中制定的代扣限制条件;
三方校验单元1106,如果是,进一步调用所述第二智能合约中声明的三方校验逻辑,校验是否存在对应于所述用户的三方协议,以使得所述支付系统在获取到校验结果为校验通过时,根据所述代扣信息对所述用户进行扣款处理。
可选的,
还包括:生效标记单元1107,在创建所述三方协议之后,按照所述三方协议中记载的生效时间将所述三方协议标记为生效状态;
所述三方校验单元1106具体用于:校验是否存在所述三方协议;如果是,进一步校验所述三方协议是否处于生效状态。
可选的,还包括:
修改接收单元1108,接收所述用户提交的修改交易,所述修改交易包含针对对应于所述用户的三方协议的修改信息;
更新单元1109,响应于所述修改交易,基于所述修改信息创建更新版三方协议;以及,
创建与所述更新版三方协议关联的第三智能合约,并向所述区块链发布所述第三智能合约,所述第三智能合约中声明有用于校验对应于所述用户的更新版三方协议的三方校验逻辑。
可选的,还包括:
解约接收单元1110,接收所述用户提交的解约交易,所述解约交易包含针对对应于所述用户的三方协议的解约信息;
失效标记单元1111,响应于所述解约交易,将对应于所述用户的三方协议标记为失效状态。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。