首页 / 专利库 / 银行与财务事项 / 电子钱包 / 基于数字货币的交易处理方法及装置和电子设备

基于数字货币的交易处理方法及装置和电子设备

阅读:414发布:2020-05-11

专利汇可以提供基于数字货币的交易处理方法及装置和电子设备专利检索,专利查询,专利分析的服务。并且本 说明书 实施例 提供一种基于 数字 货币 的交易处理方法及装置和 电子 设备。所述方法包括:接收客户端发送的与 数字货币 相关的交易 请求 ;其中,所述交易请求包括数字货币的交易金额;以及,用户的数字货币钱包持有的数字货币列表的标识;响应于所述交易请求,从 数据库 中存储的与所述数字货币列表的标识对应的数字货币列表中,选中与所述交易金额匹配的数字货币组合,并检查所述数字货币组合的总金额与所述交易金额是否一致;如果所述数字货币组合的总金额与所述交易金额一致,基于选中的数字货币组合执行进一步的交易处理。,下面是基于数字货币的交易处理方法及装置和电子设备专利的具体信息内容。

1.一种基于数字货币的交易处理方法,所述方法包括:
接收客户端发送的与数字货币相关的交易请求;其中,所述交易请求包括数字货币的交易金额;以及,用户的数字货币钱包持有的数字货币列表的标识;
响应于所述交易请求,从数据库中存储的与所述数字货币列表的标识对应的数字货币列表中,选中与所述交易金额匹配的数字货币组合,并检查所述数字货币组合的总金额与所述交易金额是否一致;
如果所述数字货币组合的总金额与所述交易金额一致,基于选中的数字货币组合执行进一步的交易处理。
2.根据权利要求1所述的方法,所述响应于所述交易请求,从数据库中存储的与所述数字货币列表的标识对应的数字货币列表中,选中与所述交易金额匹配的数字货币组合,还包括:
响应于所述交易请求,对所述交易请求进行校验处理;如果校验通过,针对所述交易请求执行交易记账,并在交易记账成功后,向所述客户端返回交易执行成功的提示;
响应于所述交易请求的记账结果,从数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中,选中与所述记账结果中的交易金额匹配的数字货币组合。
3.根据权利要求2所述的方法,所述交易请求为数字货币兑换交易请求;
所述检查所述数字货币组合的总金额与所述交易金额是否一致,包括:
检查所述数字货币组合的总金额与所述交易请求中的交易金额;以及,与针对所述交易请求的记账结果中的交易金额是否均一致;如果是,确定所述数字货币组合的总金额与所述交易金额一致;反之,确定所述数字货币组合的总金额与所述交易金额不一致。
4.根据权利要求2所述的方法,所述交易请求为数字货币转账交易请求;所述交易金额包括收款方交易金额和付款方交易金额;
所述检查所述数字货币组合的总金额与所述交易金额是否一致,包括:
检查所述数字货币组合的总金额与所述交易请求中的交易金额、与针对所述交易请求的记账结果中的交易金额、以及所述记账结果中的收款方交易金额和付款方交易金额是否均一致;如果是,确定所述数字货币组合的总金额与所述交易金额一致;反之,确定所述数字货币组合的总金额与所述交易金额不一致。
5.根据权利要求1所述的方法,还包括:
接收客户端发送的针对所述交易请求的查询请求;
响应于所述查询请求,确定所述交易处理是否完成;
如果是,向所述客户端返回所述交易请求的交易处理结果;
如果否,向所述客户端返回所述交易请求对应的交易未处理完成的提示消息。
6.根据权利要求2所述的方法,所述从数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中,选中与所述记账结果中的交易金额匹配的数字货币组合,包括:
遍历数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中的数字货币,对遍历到的数字货币组合的金额进行累加求和,得到累加金额;
确定所述累加金额是否大于所述记账结果中的交易金额;
如果所述累加金额大于所述交易金额,从所述数字货币组合中的指定数字货币中拆分出目标数字货币,并选中所述目标数字货币和所述数字货币组合中除了所述指定数字货币以外的其它数字货币;其中,所述目标数字货币和所述其它数字货币的总金额等于所述交易金额。
7.根据权利要求6所述的方法,还包括:
如果所述累加金额等于所述记账结果中的交易金额,则选中遍历到的数字货币组合。
8.根据权利要求6所述的方法,还包括:
如果所述累加金额小于所述交易金额,进一步确定遍历到的数字货币组合中的数字货币的数量是否大于预设阈值;如果是,对遍历到的数字货币组合中的数字货币进行合并;其中,合并后的数字货币的金额等于所述数字货币组合中的数字货币的总金额。
9.一种基于数字货币的交易处理装置,所述装置包括:
接收单元,接收客户端发送的与数字货币相关的交易请求;其中,所述交易请求包括数字货币的交易金额;以及,用户的数字货币钱包持有的数字货币列表的标识;
响应单元,响应于所述交易请求,从数据库中存储的与所述数字货币列表的标识对应的数字货币列表中,选中与所述交易金额匹配的数字货币组合,并检查所述数字货币组合的总金额与所述交易金额是否一致;
执行单元,如果所述数字货币组合的总金额与所述交易金额一致,基于选中的数字货币组合执行进一步的交易处理。
10.根据权利要求9所述的装置,所述响应单元中响应于所述交易请求,从数据库中存储的与所述数字货币列表的标识对应的数字货币列表中,选中与所述交易金额匹配的数字货币组合,还包括:
响应于所述交易请求,对所述交易请求进行校验处理;如果校验通过,针对所述交易请求执行交易记账,并在交易记账成功后,向所述客户端返回交易执行成功的提示;
响应于所述交易请求的记账结果,从数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中,选中与所述记账结果中的交易金额匹配的数字货币组合。
11.根据权利要求10所述的装置,所述交易请求为数字货币兑换交易请求;
所述响应单元中检查所述数字货币组合的总金额与所述交易金额是否一致,包括:
检查所述数字货币组合的总金额与所述交易请求中的交易金额;以及,与针对所述交易请求的记账结果中的交易金额是否均一致;如果是,确定所述数字货币组合的总金额与所述交易金额一致;反之,确定所述数字货币组合的总金额与所述交易金额不一致。
12.根据权利要求10所述的装置,所述交易请求为数字货币转账交易请求;所述交易金额包括收款方交易金额和付款方交易金额;
所述响应单元中检查所述数字货币组合的总金额与所述交易金额是否一致,包括:
检查所述数字货币组合的总金额与所述交易请求中的交易金额、与针对所述交易请求的记账结果中的交易金额、以及所述记账结果中的收款方交易金额和付款方交易金额是否均一致;如果是,确定所述数字货币组合的总金额与所述交易金额一致;反之,确定所述数字货币组合的总金额与所述交易金额不一致。
13.根据权利要求9所述的装置,所述接收单元还包括:
接收客户端发送的针对所述交易请求的查询请求;
所述装置还包括:
确定单元,响应于所述查询请求,确定所述交易处理是否完成;如果是,向所述客户端返回所述交易请求的交易处理结果;如果否,向所述客户端返回所述交易请求对应的交易未处理完成的提示消息。
14.根据权利要求10所述的装置,所述响应单元中从数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中,选中与所述记账结果中的交易金额匹配的数字货币组合,包括:
遍历数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中的数字货币,对遍历到的数字货币组合的金额进行累加求和,得到累加金额;
确定所述累加金额是否大于所述记账结果中的交易金额;
如果所述累加金额大于所述交易金额,从所述数字货币组合中的指定数字货币中拆分出目标数字货币,并选中所述目标数字货币和所述数字货币组合中除了所述指定数字货币以外的其它数字货币;其中,所述目标数字货币和所述其它数字货币的总金额等于所述交易金额。
15.根据权利要求14所述的装置,所述响应单元还包括:
如果所述累加金额等于所述记账结果中的交易金额,则选中遍历到的数字货币组合。
16.根据权利要求14所述的方法,所述响应单元还包括:
如果所述累加金额小于所述交易金额,进一步确定遍历到的数字货币组合中的数字货币的数量是否大于预设阈值;如果是,对遍历到的数字货币组合中的数字货币进行合并;其中,合并后的数字货币的金额等于所述数字货币组合中的数字货币的总金额。
17.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器
其中,所述处理器被配置为上述权利要求1-8中任一项所述的方法。

说明书全文

基于数字货币的交易处理方法及装置和电子设备

技术领域

[0001] 本说明书实施例涉及互联网技术领域,尤其涉及一种基于数字货币的交易处理方法及装置和电子设备。

背景技术

[0002] 目前,基于电子账户实现的移动支付已经十分普遍,然而这种支付方式本质上还只是一种支付工具,是一种对现有法定货币的信息化过程,还不能称作严格意义上的数字货币。
[0003] 而所谓数字货币(Digital Currency Electronic Payment,简称DCEP),通常是由中央行发行或中央银行授权发行的,以密码学技术作为技术支撑,以代表具体金额的加密数字串为表现形式的法定货币。与传统的移动支付相比,数据货币其本身就是法定货币,也可以不再需要与电子账户相关联,因此数字货币已经不仅仅只是支付工具。
[0004] 基于数字货币现有的发行制度,通常遵循从中央银行到运营机构的双层投放体系;其中,运营机构通常是指中央银行许可的诸如商业银行、第三方支付机构(比如Alipay)等拥有发行数字货币的权利的机构。运营机构可以向中央银行申请数字货币的发行额度,并基于申请到的发行额度通过中央银行部署在运营机构的前置加密机来“发行”数字货币,然后再基于“发行”的数字货币面向普通用户提供与数据货币相关的兑换服务;比如,普通用户可以选择将个人的电子账户余额兑换为数字货币,或者将持有的数字货币兑换为电子账户余额。发明内容
[0005] 本说明书实施例提供的一种基于数字货币的交易处理方法及装置和电子设备。
[0006] 根据本说明书实施例的第一方面,提供一种基于数字货币的交易处理方法,所述方法包括:
[0007] 接收客户端发送的与数字货币相关的交易请求;其中,所述交易请求包括数字货币的交易金额;以及,用户的数字货币钱包持有的数字货币列表的标识;
[0008] 响应于所述交易请求,从数据库中存储的与所述数字货币列表的标识对应的数字货币列表中,选中与所述交易金额匹配的数字货币组合,并检查所述数字货币组合的总金额与所述交易金额是否一致;
[0009] 如果所述数字货币组合的总金额与所述交易金额一致,基于选中的数字货币组合执行进一步的交易处理。
[0010] 可选的,所述响应于所述交易请求,从数据库中存储的与所述数字货币列表的标识对应的数字货币列表中,选中与所述交易金额匹配的数字货币组合,还包括:
[0011] 响应于所述交易请求,对所述交易请求进行校验处理;如果校验通过,针对所述交易请求执行交易记账,并在交易记账成功后,向所述客户端返回交易执行成功的提示;
[0012] 响应于所述交易请求的记账结果,从数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中,选中与所述记账结果中的交易金额匹配的数字货币组合。
[0013] 可选的,所述交易请求为数字货币兑换交易请求;
[0014] 所述检查所述数字货币组合的总金额与所述交易金额是否一致,包括:
[0015] 检查所述数字货币组合的总金额与所述交易请求中的交易金额;以及,与针对所述交易请求的记账结果中的交易金额是否均一致;如果是,确定所述数字货币组合的总金额与所述交易金额一致;反之,确定所述数字货币组合的总金额与所述交易金额不一致。
[0016] 可选的,所述交易请求为数字货币转账交易请求;所述交易金额包括收款方交易金额和付款方交易金额;
[0017] 所述检查所述数字货币组合的总金额与所述交易金额是否一致,包括:
[0018] 检查所述数字货币组合的总金额与所述交易请求中的交易金额、与针对所述交易请求的记账结果中的交易金额、以及所述记账结果中的收款方交易金额和付款方交易金额是否均一致;如果是,确定所述数字货币组合的总金额与所述交易金额一致;反之,确定所述数字货币组合的总金额与所述交易金额不一致。
[0019] 可选的,还包括:
[0020] 接收客户端发送的针对所述交易请求的查询请求;
[0021] 响应于所述查询请求,确定所述交易处理是否完成;
[0022] 如果是,向所述客户端返回所述交易请求的交易处理结果;
[0023] 如果否,向所述客户端返回所述交易请求对应的交易未处理完成的提示消息。
[0024] 可选的,所述从数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中,选中与所述记账结果中的交易金额匹配的数字货币组合,包括:
[0025] 遍历数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中的数字货币,对遍历到的数字货币组合的金额进行累加求和,得到累加金额;
[0026] 确定所述累加金额是否大于所述记账结果中的交易金额;
[0027] 如果所述累加金额大于所述交易金额,从所述数字货币组合中的指定数字货币中拆分出目标数字货币,并选中所述目标数字货币和所述数字货币组合中除了所述指定数字货币以外的其它数字货币;其中,所述目标数字货币和所述其它数字货币的总金额等于所述交易金额。
[0028] 可选的,还包括:
[0029] 如果所述累加金额等于所述记账结果中的交易金额,则选中遍历到的数字货币组合。
[0030] 可选的,还包括:
[0031] 如果所述累加金额小于所述交易金额,进一步确定遍历到的数字货币组合中的数字货币的数量是否大于预设阈值;如果是,对遍历到的数字货币组合中的数字货币进行合并;其中,合并后的数字货币的金额等于所述数字货币组合中的数字货币的总金额。
[0032] 根据本说明书实施例的第二方面,提供一种基于数字货币的交易处理装置,所述装置包括:
[0033] 接收单元,接收客户端发送的与数字货币相关的交易请求;其中,所述交易请求包括数字货币的交易金额;以及,用户的数字货币钱包持有的数字货币列表的标识;
[0034] 响应单元,响应于所述交易请求,从数据库中存储的与所述数字货币列表的标识对应的数字货币列表中,选中与所述交易金额匹配的数字货币组合,并检查所述数字货币组合的总金额与所述交易金额是否一致;
[0035] 执行单元,如果所述数字货币组合的总金额与所述交易金额一致,基于选中的数字货币组合执行进一步的交易处理。
[0036] 可选的,所述响应单元中响应于所述交易请求,从数据库中存储的与所述数字货币列表的标识对应的数字货币列表中,选中与所述交易金额匹配的数字货币组合,还包括:
[0037] 响应于所述交易请求,对所述交易请求进行校验处理;如果校验通过,针对所述交易请求执行交易记账,并在交易记账成功后,向所述客户端返回交易执行成功的提示;
[0038] 响应于所述交易请求的记账结果,从数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中,选中与所述记账结果中的交易金额匹配的数字货币组合。
[0039] 可选的,所述交易请求为数字货币兑换交易请求;
[0040] 所述响应单元中检查所述数字货币组合的总金额与所述交易金额是否一致,包括:
[0041] 检查所述数字货币组合的总金额与所述交易请求中的交易金额;以及,与针对所述交易请求的记账结果中的交易金额是否均一致;如果是,确定所述数字货币组合的总金额与所述交易金额一致;反之,确定所述数字货币组合的总金额与所述交易金额不一致。
[0042] 可选的,所述交易请求为数字货币转账交易请求;所述交易金额包括收款方交易金额和付款方交易金额;
[0043] 所述响应单元中检查所述数字货币组合的总金额与所述交易金额是否一致,包括:
[0044] 检查所述数字货币组合的总金额与所述交易请求中的交易金额、与针对所述交易请求的记账结果中的交易金额、以及所述记账结果中的收款方交易金额和付款方交易金额是否均一致;如果是,确定所述数字货币组合的总金额与所述交易金额一致;反之,确定所述数字货币组合的总金额与所述交易金额不一致。
[0045] 可选的,所述接收单元还包括:
[0046] 接收客户端发送的针对所述交易请求的查询请求;
[0047] 所述装置还包括:
[0048] 确定单元,响应于所述查询请求,确定所述交易处理是否完成;如果是,向所述客户端返回所述交易请求的交易处理结果;如果否,向所述客户端返回所述交易请求对应的交易未处理完成的提示消息。
[0049] 可选的,所述响应单元中从数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中,选中与所述记账结果中的交易金额匹配的数字货币组合,包括:
[0050] 遍历数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中的数字货币,对遍历到的数字货币组合的金额进行累加求和,得到累加金额;
[0051] 确定所述累加金额是否大于所述记账结果中的交易金额;
[0052] 如果所述累加金额大于所述交易金额,从所述数字货币组合中的指定数字货币中拆分出目标数字货币,并选中所述目标数字货币和所述数字货币组合中除了所述指定数字货币以外的其它数字货币;其中,所述目标数字货币和所述其它数字货币的总金额等于所述交易金额。
[0053] 可选的,所述响应单元还包括:
[0054] 如果所述累加金额等于所述记账结果中的交易金额,则选中遍历到的数字货币组合。
[0055] 可选的,所述响应单元还包括:
[0056] 如果所述累加金额小于所述交易金额,进一步确定遍历到的数字货币组合中的数字货币的数量是否大于预设阈值;如果是,对遍历到的数字货币组合中的数字货币进行合并;其中,合并后的数字货币的金额等于所述数字货币组合中的数字货币的总金额。
[0057] 根据本说明书实施例的第三方面,提供一种电子设备,包括:
[0058] 处理器;
[0059] 用于存储处理器可执行指令的存储器
[0060] 其中,所述处理器被配置为上述任一项基于数字货币的交易处理方法。附图说明
[0061] 图1为本说明书一实施例提供的一种发行数字货币的示意图;
[0062] 图2是本说明书一实施例提供的基于数字货币的交易处理方法的流程图
[0063] 图3是本说明书一实施例提供的数字货币与交易信息和账务信息对账的示意图;
[0064] 图4是本说明书一实施例提供的基于数字货币的交易处理装置的硬件结构图;
[0065] 图5是本说明书一实施例提供的基于数字货币的交易处理装置的模示意图。

具体实施方式

[0066] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
[0067] 在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0068] 应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0069] 首先介绍本说明书涉及到的一些技术概念:
[0070] 数字货币(Digital Currency Electronic Payment,简称DC/EP),通常是由中央银行发行或中央银行授权发行的,以密码学技术作为技术支撑;以代表具体金额的加密数字串为表现形式的法定货币。
[0071] 数字货币发行机构:所有DC/EP的发行机构均为中央银行。
[0072] 数字货币运营机构:DC/EP的运营机构通常为中央银行许可的具有发行DC/EP的权利的第三方运营机构;例如,商业银行,第三方支付平台等第三方运营机构,可以在中央银行的许可下,取得DC/EP的发行权利。
[0073] 请参见图1,图1为本说明书示出的一种发行数字货币(DC/EP)的示意图。
[0074] 基于DC/EP现有的发行制度,通常遵循从中央银行到运营机构的双层投放体系。所谓双层投放体系,是指中央银行将发行DC/EP的权利授权给运营机构,充分利用运营机构现有成熟的IT基础设施和服务体系,来面向广大用户群体发行和“投放”数字货币。
[0075] 如图1所示,在上述双层投放体系下,运营机构在取得中央银行的DC/EP发行许可后,可以向中央银行申请发行DC/EP的额度。而中央银行在审批通过后,可以向运营机构返回运营机构取得的发行额度的额度凭证;例如,中央银行返回的额度凭证,通常可以是一串加密的字符串。
[0076] 其中,运营机构所取得的DC/EP的发行额度,通常取决于运营机构在中央银行缴纳的准备金的额度。例如,采用双层投放体系,取得DC/EP的发行许可的运营机构,可以在中央银行开户准备金账户,并可以按照发行额度的100%向中央银行缴纳准备金。
[0077] 请继续参见图1,各个具有DC/EP发行权利的运营机构之间,可以通过中央银行部署的互联互通设备进行互联互通。除此之外,中央银行还可以在各个具有DC/EP发行权利的运营机构,部署前置加密机;例如,中央银行可以将前置加密机部署在各个运营机构的机房中。
[0078] 其中,上述前置加密机,具体用于进行与数字货币相关的加密操作。运营机构可以通过调用该前置加密机,将中央银行下发的额度凭证作为调用参数提交给前置加密机,来将运营机构取得的DC/EP的发行额度,“兑换”成大额的DC/EP;
[0079] 例如,运营机构在将额度凭证提交给前置加密机之后,前置加密机可以对运营机构提交的额度凭证进行校验,并在校验通过后,由前置加密机为该运营机构创建与该运营机构的发行额度匹配的DC/EP,并将创建的DC/EP返回给运营机构。
[0080] 需要说明的是,上述前置加密机的具体形态可以是一台搭载的安全运算环境的硬件设备;在该硬件设备搭载的安全运算环境中,可以维护中央银行的公私钥对等数据,该安全运算环境可以承担DC/EP发行过程中所涉及的一些列的加密操作。
[0081] 当然,在实际应用中,上述前置加密机具体也可以是由中央银行开发完成的加密软件,在本说明书中不进行特别限定;也即,本说明书中描述的前置加密机,具体可以是一台硬件设备,也可以是一台逻辑设备。
[0082] 当运营机构在将取得的DC/EP的发行额度,“兑换”成大额的DC/EP之后,可以将该大额的DC/EP在运营机构的数据库中进行存储,并基于数据库中存储的该大额的DC/EP,面向普通用户提供与数据货币相关的兑换服务;比如,普通用户可以选择将个人的电子账户余额兑换为数字货币,或者将持有的数字货币兑换为电子账户余额。
[0083] 请继续参见图1,对于普通用户而言,可以在运营机构可以开通数字货币钱包,并可以将个人的电子账户余额兑换成为数字货币,在数字货币钱包中进行维护。
[0084] 假设运营机构的数据库中存储的大额DC/EP的金额为1万元,用户使用电子账户余额发起兑换1000元DC/EP的操作;此时运营机构可以调用中央银行部署的前置加密机,并将1万元的DC/EP,以及需要置换的金额1000元和9000元作为调用参数,提交给前置加密机。
[0085] 前置加密机则可以向运营机构返回两张金额分别为1000元和9000元的DC/EP。而运营机构在收到前置加密机返回的两张DC/EP后,可以将数据库中存储的原有的1万元DC/EP相关的数据记录删除,并在数据库中重新插入一张面额为9000元的DC/EP的数据记录,同时将面额为1000元的DC/EP记录到该用户的名下。
[0086] 其中,用户名下的数字货币,通常是以数字货币列表的形式存储在运营机构的数据库中;而用户在运营机构开通的数字货币钱包中,可以仅维护该数字货币列表的标识;例如,在一个例子中,用户名下的数字货币,可以以用户资产列表的形式存储在运营机构的数据库中;而在用户的数字货币钱包中可以仅维护该用户资产列表的asset-ID。
[0087] 在实际应用中,用户可以通过客户端向运营机构的服务端发送与DC/EP相关的交易请求,与运营机构的服务端进行交互,来完成与DC/EP相关的交易;
[0088] 例如,与DC/EP相关的交易,可以包括将个人的电子账户余额兑换为DC/EP的交易、将持有的DC/EP兑换为电子账户余额、或者向其它用户转账DC/EP的交易,等等。
[0089] 然而,在实际应用中,用户的DC/EP钱包中持有的DC/EP列表中,可能并不存在总金额与用户指定的交易金额完全匹配的DC/EP;因此,在这种情况下,在从DC/EP列表中选中与交易金额完全匹配的DC/EP,可能需要调用前置加密机对DC/EP列表中的DC/EP进行进一步的拆分等操作;而如果前置加密机出现异常,导致拆分出的DC/EP出现错误,就会导致交易过程中的DC/EP数量与交易金额不一致。
[0090] 基于此,本说明书提供了一种与交易请求同步进行的针对参与交易的数字货币进行检查的技术方案。
[0091] 本说明书提供了一种基于数字货币的交易处理方法,以下可以参考图2所示的例子介绍,所述方法可以包括以下步骤:
[0092] 步骤210:接收客户端发送的与数字货币相关的交易请求;其中,所述交易请求包括数字货币的交易金额;以及,用户的数字货币钱包持有的数字货币列表的标识;
[0093] 步骤220:响应于所述交易请求,从数据库中存储的与所述数字货币列表的标识对应的数字货币列表中,选中与所述交易金额匹配的数字货币组合,并检查所述数字货币组合的总金额与所述交易金额是否一致;
[0094] 步骤230:如果所述数字货币组合的总金额与所述交易金额一致,基于选中的数字货币组合执行进一步的交易处理。
[0095] 在实现时,用户通过客户端向运营机构的服务端发送的交易请求中,可以携带用户指定的DC/EP的交易金额;以及,用户的DC/EP钱包持有的DC/EP列表的标识。
[0096] 当运营机构的服务端接收到客户端发送的上述交易请求后,可以响应于上述交易请求,从数据库中存储的与所述数字货币列表的标识对应的数字货币列表中,选中与所述交易金额匹配的数字货币组合,并检查所述数字货币组合的总金额与所述交易金额是否一致;如果所述数字货币组合的总金额与所述交易金额一致,基于选中的数字货币组合执行进一步的交易处理。
[0097] 在以上技术方案中,将对数字货币检查的过程与交易处理同步执行,由于在交易处理过程中就对参与交易的数字货币进行检查,可以在发现参与交易的数字货币的总金额与交易金额不一致时,中止数字货币交易的执行;这样就可以及时阻止错误交易的发生,避免产生交易资损。
[0098] 本说明书还提供了一种与交易请求异步进行的针对参与交易的数字货币进行检查的技术方案。具体地,先对交易请求进行交易记账,再根据记账结果异步对参与交易的数字货币进行检查,在检查通过后进行交易处理的技术方案。
[0099] 在实现时,用户通过客户端向运营机构的服务端发送的交易请求中,可以携带用户指定的DC/EP的交易金额;以及,用户的DC/EP钱包持有的DC/EP列表的标识。
[0100] 当运营机构的服务端接收到客户端发送的上述交易请求后,可以响应于上述交易请求,对所述交易请求进行校验处理;如果校验通过,针对所述交易请求执行交易记账,并在交易记账成功后,向所述客户端返回交易执行成功的提示;
[0101] 当交易记账成功后,运营机构的服务端可以获取记账结果,从数据库中存储的与该记账结果中的数字货币列表的标识对应的数字货币列表中,选中与该记账结果中的交易金额匹配的数字货币组合,然后检查所述数字货币组合的总金额与所述交易金额是否一致;如果所述数字货币组合的总金额与所述交易金额一致,就可以基于选中的数字货币组合执行进一步的异步交易处理。
[0102] 在以上技术方案中,由于在与数字货币相关的交易的执行过程中,可以先对交易请求进行交易记账,然后再根据记账结果来异步的对参与交易的数字货币组合的总金额与交易请求的交易金额、记账结果的交易金额进行校验;在均一致时对参与交易的数字货币进行交易处理;因此可以将对交易请求的实时处理操作,和对参与交易的数字货币的校验以及交易处理操作进行解耦;
[0103] 一方面,可以避免对参与交易的数字货币的交易处理操作,对实时的交易处理过程造成影响,因此可以提高交易处理效率;
[0104] 另一方面,由于对于发起交易的用户而言,将不再感知对参与交易的数字货币的校验以及交易处理过程;当交易请求校验通过后,用户就能收到交易执行成功的提示;因此可以降低交易的感知延时,提升用户的交易体验。
[0105] 具体地,在上述图2所示实施例的基础上,所述步骤220中响应于所述交易请求,从数据库中存储的与所述数字货币列表的标识对应的数字货币列表中,选中与所述交易金额匹配的数字货币组合,还包括:
[0106] 响应于所述交易请求,对所述交易请求进行校验处理;如果校验通过,针对所述交易请求执行交易记账,并在交易记账成功后,向所述客户端返回交易执行成功的提示;
[0107] 响应于所述交易请求的记账结果,从数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中,选中与所述记账结果中的交易金额匹配的数字货币组合。
[0108] 在本说明书中,用户可以通过客户端向运营机构的服务端发送与DC/EP相关交易请求,与运营机构的服务端进行交互,来完成与DC/EP相关的交易;
[0109] 其中,与DC/EP相关的交易,具体可以包括将个人的电子账户余额兑换为DC/EP的交易、将持有的DC/EP兑换为电子账户余额、或者向其它用户转账DC/EP的交易,等等。在上述交易请求中,具体可以包括用户指定的需要参与交易的DC/EP的交易金额;以及,用户的DC/EP钱包持有的DC/EP列表的标识等信息。
[0110] 运营机构的服务端在收到客户端发送的交易请求后,可以获取该交易请求中携带的交易金额和DC/EP列表的标识,并基于该DC/EP列表的标识在数据库中查询与该标识对应的DC/EP列表,然后从该DC/EP列表中选中与上述交易金额匹配的DC/EP列表,来执行进一步的交易处理。
[0111] 在本说明书中,运营机构的服务端具体可以包括业务系统和DC/EP处理系统。
[0112] 其中,业务系统,用于对用户通过客户端发送的交易请求进行基本的业务校验处理;DC/EP处理系统,则用于按照服务端接收到的交易请求中携带的交易金额,针对用户的DC/EP列表中的DC/EP执行相关的处理操作。
[0113] 在示出的一种实施方式中,当运营机构的服务端收到用户通过客户端发送的交易请求后,可以将该交易请求提交给上述业务系统,由上述业务系统对该交易请求进行校验处理;
[0114] 其中,对交易请求进行校验处理所执行的校验处理逻辑,在本说明书中不进行特别限定;
[0115] 例如,在实际应用中,对交易请求的校验处理,具体可以包括,对交易请求进行的合法性校验、对交易双方用户的用户状态、钱包状态余额状态,等等基础的校验逻辑。
[0116] 其中,需要说明的是,在相关技术中,当业务系统对上述交易请求校验完成后,如果上述交易请求校验通过,通常会将该交易请求进行提交给上述DC/EP处理系统,由上述DC/EP处理系统进一步按照该交易请求中携带的交易金额,针对用户的DC/EP列表中的DC/EP执行相关的处理操作,并业务系统收到上述DC/EP处理系统的处理结果后,再针对上述交易请求执行交易记账,以完成该笔交易。
[0117] 其中,所谓交易记账是指基于交易执行结果针对交易参与方完成相应的交易登记;例如,以上述交易请求为DC/EP的转账交易为例,在这种场景下进行交易记账时,通常是指对转账方和收款方的DC/EP钱包持有的DC/EP余额变更情况在数据库中进行登记的过程。
[0118] 而在本说明书中,当业务系统对上述交易请求校验完成后,如果上述交易请求校验通过,此时上述业务系统可以立即针对上述交易请求执行交易记账;
[0119] 也即,在本说明书中,业务系统与DC/EP处理系统将实现解耦,业务系统在对交易请求校验通过后,可以立即针对上述交易请求执行记账,而不再需要等待上述DC/EP处理系统返回的进一步处理结果,
[0120] 当业务系统在针对上述交易请求记账成功后,即可以直接向客户端返回交易执行成功的提示。
[0121] 通过这种方式,对于发起交易的用户而言,将不再感知上述DC/EP处理系统对参与交易的DC/EP的进一步的交易处理过程;当交易请求校验通过后,用户就能收到交易执行成功的提示;因此可以降低交易的感知延时,提升用户的交易体验。
[0122] 在本说明书中,上述DC/EP处理系统而言,对用户的DC/EP列表中的DC/EP执行的相关的处理操作,将采用异步处理的方式。
[0123] 例如,可以在上述DC/EP处理系统中运营一个异步处理线程,通过该异步处理线程,来对用户的DC/EP列表中的DC/EP执行的相关的处理操作。
[0124] 在实现时,当业务系统在针对上述交易请求记账成功后,上述DC/EP处理系统可以获取上述业务系统的记账结果;
[0125] 其中,上述DC/EP处理系统在获取上述业务系统的记账结果时,可以从业务系统的数据库中读取记账结果,也可以由业务系统在记账成功后,将相关的记账结果主动的发送给上述DC/EP处理系统,在本说明书中不进行限定。
[0126] 当上述DC/EP处理系统可以获取上述业务系统针对上述交易请求的记账结果之后,可以获取记账结果中的交易金额,和用户的DC/EP列表的标识,然后从数据库中存储的与该DC/EP列表的标识对应的DC/EP列表中,选中与该交易金额匹配的DC/EP组合,并检查所述数字货币组合的总金额与所述交易金额是否一致,如果所述数字货币组合的总金额与所述交易金额一致,基于选中的数字货币组合执行进一步的交易处理。
[0127] 在示出的一种实施方式中,上述DC/EP处理系统按照上述记账结果中的交易金额,针对用户的DC/EP列表中的DC/EP执行相关的处理操作,通常可以包括针对用户的DC/EP列表中的DC/EP的基础操作,和在业务层面针对用户的DC/EP列表中的DC/EP的交易处理操作。
[0128] 其中,针对用户的DC/EP列表中的DC/EP的基础操作,通常可以包括针对用户的DC/EP列表中的DC/EP的遍历、选中、拆分、合并等基础操作。而在业务层面针对用户的DC/EP列表中的DC/EP的交易处理操作所包括的具体内容,则通常取决于具体的业务场景。
[0129] 在示出的一种实施方式中,由于与DC/EP相关的交易通常都会涉及对参与交易的DC/EP进行转移和确权,因此在业务层面针对用户的DC/EP列表中的DC/EP的交易处理操作,通常可以包括按照交易金额,对参与交易的DC/EP进行转账和确权处理操作。
[0130] 在一实施例中,以上述交易请求为数字货币兑换交易请求。所述数字货币兑换可以是指用户通过客户端发起的将个人的电子账户余额兑换为DC/EP;或者,持有的DC/EP兑换为电子账户余额。
[0131] 在这种业务场景下,上述DC/EP处理系统针对用户的DC/EP列表中的DC/EP的按照交易请求中的交易金额,对用户兑换的DC/EP进行校验,以及在校验通过后进行重新确权的处理操作。
[0132] 进一步的,所述步骤220中检查所述数字货币组合的总金额与所述交易金额是否一致,包括:
[0133] 检查所述数字货币组合的总金额与所述交易请求中的交易金额;以及,与针对所述交易请求的记账结果中的交易金额是否均一致;如果是,确定所述数字货币组合的总金额与所述交易金额一致;反之,确定所述数字货币组合的总金额与所述交易金额不一致。
[0134] 在一实施例中,以上述交易请求为数字货币转账交易请求;所述交易金额包括收款方交易金额和付款方交易金额;
[0135] 在这种业务场景下,上述DC/EP处理系统针对用户的DC/EP列表中的DC/EP的交易处理操作,则可以包括按照交易请求中的交易金额,对参与转账的DC/EP进行校验,以及对用户兑换的DC/EP进行重新确权的处理操作。
[0136] 进一步的,所述步骤220中检查所述数字货币组合的总金额与所述交易金额是否一致,包括:
[0137] 检查所述数字货币组合的总金额与所述交易请求中的交易金额、与针对所述交易请求的记账结果中的交易金额、以及所述记账结果中的收款方交易金额和付款方交易金额是否均一致;如果是,确定所述数字货币组合的总金额与所述交易金额一致;反之,确定所述数字货币组合的总金额与所述交易金额不一致。
[0138] 一般的,在数字货币交易中,付款方付款的数字货币可能存在一个或者多个,并且这一个或者多个的数字货币面值之和需要和交易请求、记账结果中的交易金额额度相同。
[0139] 举例说明,某个交易中付款方需要支付给收款方5元,如果付款方数字货币钱包中存在一张面值为5元的数字货币,那么可以将这个面值5元的数字货币标记为参与交易;
[0140] 如果付款方数字货币钱包中没有1个面值为5元的数字货币,也可以用多个面值之和为5元的数字货币,例如用一个面值为2元,一个面值为3元的这2个数字货币进行付款,那么可以将这2个面值2元和3元的数字货币标记为参与交易。
[0141] 如果付款方数字货币钱包中数字货币面值均大于5元,也可以将任一面值大于5元的数字货币拆分为一个5元面值的数字货币以及剩余面值的数字货币。例如,面值10元的数字货币可以拆分为2个面值为5元的数字货币,那么可以将其中1个面值为5元的数字货币标记为参与交易。
[0142] 同样地,收款方收款的数字货币也可能存在一个或者多个,并且这一个或者多个的数字货币面值之和需要和该收款方待收款金额的额度相同。
[0143] 举例说明,某个交易中付款方需要支付给收款方5元,如果付款方付款的数字货币为1个,即1个5元面值的数字货币,那么收款方可以选择收取这个5元面值的数字货币,也可以选择将这个面值5元的数字货币拆分成多个面值之和为5元的数字货币,例如拆分为1个2元,1个3元的数字货币;
[0144] 如果付款方付款的数字货币为多个,例如1个2元,1个3元的2个数字货币,那么收款方即可以选择收取这2个数字货币,也可以选择收取1个整的数字货币即1个5元的数字货币。
[0145] 在检查所述数字货币组合的总金额与所述交易金额是否一致时,需要检查付款方的数字货币组合的总金额与交易请求中的付款方交易金额、记账结果中的付款方交易金额是否一致;
[0146] 还需要检查收款方的数字货币组合的总金额与交易请求中的收款方交易金额、记账结果中的收款方交易金额是否一致;
[0147] 以及,检测记账结果中的收款方交易金额和付款方交易金额是否一致;
[0148] 只有在所有检测结果均一致时,确定所述数字货币组合的总金额与所述交易金额一致;反之,确定所述数字货币组合的总金额与所述交易金额不一致。
[0149] 在确定了所有数字货币组合的总金额与所述交易金额一致时,基于选中的数字货币组合执行进一步的交易处理。
[0150] 在本说明书中,DC/EP处理系统的处理程序中可以包括,针对用户的DC/EP列表中的DC/EP的基础操作相关的DC/EP处理方法,和在业务层面针对用户的DC/EP列表中的DC/EP的交易处理操作相关的交易处理方法;
[0151] 其中,需要说明的是,在实现时,上述DC/EP处理方法和上述检查方法、交易处理方法,都可以是由开发人员开发完成的执行代码。
[0152] 由于DC/EP处理系统,针对用户的DC/EP列表中的DC/EP的基础操作,和在业务层面针对用户的DC/EP列表中的DC/EP的交易处理操作,都涉及对上述数据库中存储的数据进行操作;因此,为了确保上述基础操作和交易处理操作在业务层面的完整性,可以利用上述数据库的事务机制,将与上述基础操作相关的DC/EP处理方法和与上述交易处理操作相关的交易处理方法,纳入到同一个交易处理事务中;从而,可以利用事务的特性,使得DC/EP处理系统可以通过调用该交易处理事务,将上述DC/EP处理方法和上述交易处理方法作为一个整体进行执行。进一步的,虽然上述DC/EP处理方法和上述交易处理方法在业务层面是一个整体,但DC/EP处理系统在运行上述DC/EP处理方法和上述交易处理方法,针对用户的DC/EP列表中的DC/EP执行相关的处理操作时,上述DC/EP处理方法和上述交易处理方法之间仍然可能互相影响;
[0153] 例如,上述DC/EP处理方法由于需要遍历DC/EP列表中的DC/EP,因此需要较长的处理时延;因此,将上述DC/EP处理方法和上述交易处理方法纳入同一个交易处理事务中进行执行,可能会出现由于上述DC/EP处理方法的处理时延较长,导致该交易处理事务超时。而一旦该交易处理事务超时,通常会进行事务回滚,则上述交易处理事务中的上述交易处理方法和上述DC/EP处理方法都需要重新执行。
[0154] 因此,为了避免上述DC/EP处理方法和上述交易处理方法之间互相影响,对整体的业务流程造成负面影响,可以采用“事务嵌套”的方式,将上述交易处理事务中的上述DC/EP处理方法和上述交易处理方法,在不同的事务中进行隔离执行。
[0155] 例如,可以将上述交易处理事务中的处理时延较长的上述DC/EP处理方法,在上述交易处理事务中“嵌套”的一个新建事务中进行执行,在执行完毕后由该新建事务将执行结果返回给上述交易处理事务,在上述交易处理事务中继续执行上述交易处理方法;从而,通过这种方式,既可以将上述交易处理方法和上述DC/EP处理方法作为一个整体来执行,又可以避免处理时延较长的上述DC/EP处理方法,对上述交易处理方法造成负面影响。
[0156] 在示出的一种实施方式中,上述交易处理方法的执行逻辑,除了可以包括针对用户的DC/EP列表中的DC/EP的基础操作相关的执行逻辑以外,还可以包括为上述交易处理事务中的DC/EP处理方法创建DC/EP处理事务的执行逻辑;
[0157] 在这种情况下,上述DC/EP处理系统在按照交易金额,针对用户的DC/EP列表中的DC/EP执行相关的处理操作时,首先可以调用上述交易处理事务,在该交易处理事务中执行上述交易处理方法,为上述DC/EP处理方法创建DC/EP处理事务;
[0158] 其中,需要说明的是,上述数据库具体可以是关系型数据库;在基于该数据库的事务机制,来实现“事务嵌套”的具体实现方式,通常取决于上述数据库采用的数据库架构。
[0159] 在示出的一种实施方式中,上述数据库具体可以是采用spring架构的数据库。基于spring架构的数据库支持的事务机制中,定义了一种名为REQUERES_NEW的事务属性。该REQUERES_NEW事务属性表明不管业务方法是否已经存在事务,都会为自己发起一个新的事务。如果业务方法已经运行在一个事务中,则原有的事务会被挂起,新的事务会被创建,直到该业务方法在新的事务中执行结束,原先的事务才会恢复执行。
[0160] 因此,在采用spring架构的数据库中,可以将DC/EP处理方法的事务属性设置为REQUIRES_NEW;当上述DC/EP处理系统在调用上述交易处理事务,在该交易处理事务中执行上述交易处理方法,为上述DC/EP处理方法创建DC/EP处理事务时,可以获取上述DC/EP处理方法的事务属性,并确定获取到的事务属性的具体类型;如果获取到的上述DC/EP处理方法的事务属性为REQUIRES_NEW,此时可以触发为上述DC/EP处理方法创建一个DC/EP处理事务。
[0161] 进一步的,当为上述DC/EP处理方法创建了DC/EP处理事务之后,可以在该DC/EP处理事务中执行上述DC/EP处理方法,执行针对用户的DC/EP列表中的DC/EP的基础操作,从上述DC/EP列表中选中与上述交易金额匹配的DC/EP组合。
[0162] 在上述DC/EP处理事务中执行了上述DC/EP处理方法之后,可以遍历上述DC/EP列表中的DC/EP,并对遍历到的DC/EP组合的金额进行累加求和,得到累加金额;
[0163] 其中,在一种实现方式中,为了避免对上述DC/EP列表中的DC/EP执行并发处理,在遍历上述DC/EP列表中的DC/EP之前,还可以对上述DC/EP列表进行加处理。
[0164] 其中,上述DC/EP处理系统对上述DC/EP列表中的DC/EP进行遍历的顺序,在本说明书不进行特别限定;例如,在实现时,可以从所述DC/EP列表中的首个DC/EP开始,按照上述DC/EP列表中的DC/EP的顺序进行遍历。
[0165] 在示出的一种实施方式中,在上述DC/EP处理系统对上述DC/EP列表中的DC/EP进行遍历之前,还可以按照金额对上述DC/EP列表中的DC/EP进行排序;
[0166] 其中,在一种实现方式中,按照金额对上述DC/EP列表中的DC/EP进行排序的具体方式,可以与对上述DC/EP列表中的DC/EP进行遍历的顺序相适应;
[0167] 例如,在实现时,如果采用的是从所述DC/EP列表中的首个DC/EP开始,按照上述DC/EP列表中的DC/EP的顺序进行遍历的方式,则在对上述DC/EP列表中的DC/EP进行排序时,可以采用金额从小到大的顺序,对上述DC/EP列表中的DC/EP进行排序。
[0168] 进一步的,上述DC/EP处理可以将遍历过程中,通过累加求和计算得到的累加金额,与上述交易请求中的交易金额进行比较,来确定上述累加金额是否大于上述交易金额;
[0169] 一方面,如果上述累加金额大于上述交易金额,表明上述DC/EP列表中可能并不存在总金额等于上述交易金额的DC/EP组合;在这种情况下,可以从遍历到的DC/EP组合中的指定DC/EP中拆分出目标DC/EP;
[0170] 其中,对上述DC/EP列表中的DC/EP进行拆分,是指将被拆分的DC/EP从上述DC/EP列表中删除,以及将重新创建的拆分出的DC/EP存储至上述DC/EP列表的过程。而拆分出的该目标DC/EP,与该遍历到的DC/EP组合中除了该指定DC/EP以外的其它DC/EP的总金额,等于上述交易金额。
[0171] 需要说明的是,上述指定DC/EP,可以是遍历到的DC/EP组合中的任意一个DC/EP;上述目标DC/EP的金额,可以根据遍历到的DC/EP组合中的DC/EP的总金额,和上述交易金额的差值来确定。
[0172] 例如,在示出的一种实施方式中,可以默认从遍历到的DC/EP组合中的最后一个DC/EP中拆分出目标DC/EP;相应的,在这种情况下,上述其它DC/EP,包括遍历到的DC/EP组合中的最后一个DC/EP之前的所有DC/EP。
[0173] 另外,还需要强调的是,由于上述指定DC/EP可能拆分出包含上述目标DC/EP在内的多个DC/EP;因此,上述其它DC/EP中,将不包含上述多个DC/EP中除了上述目标DC/EP以外的其它拆分出的DC/EP。
[0174] 在一个例子中,假设上述DC/EP列表中的DC/EP为[3,3,3,3,3];上述交易请求中的交易金额为10元;也即,上述DC/EP处理系统需要从上述DC/EP列表中选中总金额为10元的DC/EP组合。
[0175] 在这种情况下,可以遍历上述DC/EP列表中的DC/EP,并对遍历到的DC/EP组合的金额进行累加求和,得到累加金额;当遍历到上述DC/EP列表中的前4张DC/EP时,计算出的累加金额为12元;此时累加金额大于上述交易金额,可以对遍历到的这4张DC/EP中的最后一张DC/EP进行拆分处理。这4张DC/EP中的最后一张DC/EP的面额为3,可以拆分为1元和2元两张DC/EP;其中,拆分出的该1元的DC/EP,即为上述目标DC/EP。完成拆分后的上述DC/EP列表为[3,3,3,1,2,3]。此时可以选中拆分出的该1元的DC/EP,以及DC/EP之前的前3张DC/EP,最终选中的DC/EP组合的总金额为10元。
[0176] 当从遍历到的DC/EP组合中的指定DC/EP中拆分出目标DC/EP之后,可以选中拆分出的该目标DC/EP,与该遍历到的DC/EP组合中除了该指定DC/EP以外的其它DC/EP,然后基于选中的DC/EP组合执行进一步的交易处理;
[0177] 在实现时,上述DC/EP处理事务可以将选中的DC/EP的冠字号(即DC/EP的标识)返回给上述交易处理事务,并继续调用上述交易处理事务,在该交易处理事务中执行上述交易处理方法,基于上述DC/EP列表中与返回的冠字号对应的DC/EP执行进一步的交易处理。
[0178] 另一方面,如果上述累加金额等于上述交易金额,表明上述DC/EP列表中可能存在总金额等于上述交易金额的DC/EP组合;此时可以直接选中遍历到的DC/EP组合,并基于选中的DC/EP组合执行进一步的交易处理。
[0179] 第三方面,如果上述累加金额小于上述交易金额,此时还可以进一步确定遍历到的DC/EP组合中的DC/EP的数量是否大于预设阈值;如果是,此时可以对遍历到的DC/EP组合中的DC/EP进行合并;
[0180] 其中,对上述DC/EP列表中的DC/EP进行合并,是指将被合并的多个DC/EP从上述DC/EP列表中删除,以及将重新创建的合并后的DC/EP存储至上述DC/EP列表的过程。而合并后的DC/EP的金额,为遍历到的DC/EP组合(即被合并的多个DC/EP)的总金额。
[0181] 通过这种方式,可以通过在上述DC/EP处理事务中执行上述DC/EP处理方法,自动对上述DC/EP列表中数量过大的DC/EP进行合并,从而达到控制上述DC/EP列表中的DC/EP数量的目的,可以提升在遍历上述DC/EP列表中的DC/EP时的遍历效率。
[0182] 在示出的一种实施方式中,在上述交易请求中,还可以包括用户指定的DC/EP的交易面额;也即,用户可以在上述交易请求中指定需要参与交易的DC/EP的交易面额;
[0183] 例如,以与DC/EP相关的交易,为将个人的电子账户余额兑换为DC/EP的交易为例,在这种情况下,用户可以通过在上述交易请求中指定DC/EP的面额,来向运营机构兑换特定面额的DC/EP。
[0184] 在这种情况下,上述DC/EP处理事务在将选中的DC/EP的冠字号(即DC/EP的标识)返回给上述交易处理事务,由上述交易处理事务基于选中的DC/EP执行进一步的交易处理之前,可以确定选中的DC/EP的金额是否匹配用户指定的DC/EP的交易面额;如果不匹配,可以按照上述交易面额对选中的DC/EP进行合并或者拆分,使得最终选中的DC/EP的金额,能够符合用户对参与交易的DC/EP的金额的要求;然后,可以重新选中合并或者拆分后得到的DC/EP,基于重新选中的DC/EP执行进一步的交易处理。
[0185] 在一种实现方式中,当通过在上述DC/EP处理事务中执行上述DC/EP处理方法,选中了上述DC/EP列表中的DC/EP之后,此时还可以针对上述DC/EP列表进行解锁处理。
[0186] 上述交易处理事务在收到上述DC/EP处理事务返回的选中的DC/EP的冠字号,基于选中的DC/EP执行进一步的交易处理之前,也可以对上述DC/EP列表中,与这些返回冠字号对应的DC/EP进行加锁处理,然后基于这些选中的DC/EP执行进一步的业务处理。当基于选中的DC/EP执行进一步的交易处理之后,再对上述DC/EP列表中与这些返回冠字号对应的DC/EP进行解锁处理。
[0187] 在示出的一种实施方式中,当用户通过客户端收到上述业务系统返回的交易执行成功的提示之后,还可以通过客户端向上述业务系统发送针对上述交易请求的查询请求;而上述业务系统收到了上述查询请求后,业务系统与上述DC/EP处理系统进行交互,来确认上述DC/EP处理系统是是否完成了以上的异步交易处理过程;如果是,可以直接向上述客户端返回上述交易请求的交易处理结果;如果否,则可以向上述客户端返回上述交易请求对应的交易未处理完成的提示消息。
[0188] 例如,在一个例子中,以上述交易请求为DC/EP的转账请求为例,上述业务系统返回给客户端的交易执行成功的提示信息,具体可以是一条“您收到了XX向您转账XX元”的文本提示;而业务选听向上述客户端返回上述交易请求对应的交易未处理完成的提示消息,则具体可以是一条“您收到的DC/EP正在进行转账处理,请稍后”的文本提示。
[0189] 以下如图3所示的数字货币与交易信息和账务信息对账的示意图:
[0190] 1、交易记账:接收交易请求,交易记账;
[0191] 具体地,响应于所述交易请求,对所述交易请求进行校验处理;如果校验通过,针对所述交易请求执行交易记账,并在交易记账成功后,向所述客户端返回交易执行成功的提示。
[0192] 2、付款方数字货币钱包处理及对账部分:
[0193] 根据记账结果,计算每个付款方需要付款的金额;
[0194] 每个付款方准备出与其需要付款的金额等额的数字货币;
[0195] 将准备出的数字货币标记为参与交易状态;
[0196] 检查每个付款方提供付款的数字货币面值之和与交易前后减少的数字货币面值是否一致;
[0197] 若是,检查每个付款方提供付款的数字货币面值之和与所述记账结果中每个付款方待付款的金额是否一致。
[0198] 3、收款方数字货币钱包处理及对账部分:
[0199] 若是,根据账务信息,计算每个收款方需要收款的金额;
[0200] 将参与交易的数字货币处理成一份或多份,每份包含的数字货币面值之和与收款方需要收款的金额等额;
[0201] 将每份数字货币分别归属给对应的收款方;
[0202] 检查每个收款方收款的数字货币面值之和与交易前后增加的数字货币面值是否一致;
[0203] 若是,检查每个收款方收款的数字货币面值之和与所述数字货币交易对应的记账结果中每个付款方待付款的金额是否一致;
[0204] 4、单笔交易收付款方数字货币面值对账部分:
[0205] 若是,检查每个收款方收款的数字货币与对应付款方付款的数字货币是否一致。
[0206] 若是,完成交易。即基于选中的数字货币组合执行进一步的交易处理。
[0207] 5、日终交易收付款方数字货币对账部分:
[0208] 日终检查所有数字货币交易中付款的数字货币面值总和对应的记账结果中的付款总额是否一致;
[0209] 若是,日终检查所有数字货币交易中收款的数字货币面值总和对应的记账结果中的收款总额是否一致;
[0210] 若是,日终检查所有数字货币交易中付款的数字货币面值总和收款的数字货币面值总和是否一致;
[0211] 若是,确定所有数字货币交易处理与记账结果一致。
[0212] 该示例中,在上述所有检查均一致的情况下,完成所述数字货币交易。
[0213] 值得一提的是,在任一项检查结果为不一致时,说明数字货币与账务信息对应不上,存在资金险,需要进行风险预警,中止所述数字货币交易。
[0214] 本说明书还提供了周期性检查,不同于上述针对单个数字货币交易的检查,周期性检查指在一个预设周期结束后,针对该预设周期内发生的所有数字货币交易,检查所述所有数字货币交易处理与对应的账务信息是否一致。
[0215] 所述预设周期可以是预先设置的一个经验值。一般的,可以设置为1天,即日终检查。
[0216] 所述针对该预设周期内发生的所有数字货币交易,检查所述所有数字货币交易处理与对应的账务信息是否一致,具体可以包括:
[0217] 检查所有数字货币交易中付款的数字货币面值总和对应的账务信息中的付款总额是否一致;
[0218] 在所有数字货币交易中付款的数字货币面值总和对应的账务信息中的付款总额一致时,检查所有数字货币交易中收款的数字货币面值总和对应的账务信息中的收款总额是否一致;
[0219] 在所有数字货币交易中收款的数字货币面值总和对应的账务信息中的收款总额一致时,检查所有数字货币交易中付款的数字货币面值总和收款的数字货币面值总和是否一致;
[0220] 在所有数字货币交易中付款的数字货币面值总和收款的数字货币面值总和一致时,确定所述预设周期内发生的所有数字货币交易处理与账务信息一致。
[0221] 通过检测周期内所有数字货币交易中用于付款的数字货币面值总和与这些交易对应账务信息中的付款总额,以确定各个付款方支付的数字货币是否与账务信息中付款总额一致;
[0222] 通过检测周期内所有数字货币交易中用于收款的数字货币面值总和与这些交易对应账务信息中的收款总额,以确定各个收款方收取的数字货币是否与账务信息中收款总额一致;
[0223] 通过检测周期内所有数字货币交易中用于收款的数字货币面值总和与用于付款的数字货币面值总和,以确定各个收款方收取的数字货币是否与各个付款方支付的数字货币一致。
[0224] 在上述三种检查均一致是,可以确保这个周期内所有交易的数字货币与账务信息是一致的。
[0225] 在上述三种检查中任意一个检查没有通过时,则可以人工介入排查问题,及时追账不涨降低资损风险。
[0226] 与前述基于数字货币的交易处理方法实施例相对应,本说明书还提供了基于数字货币的交易处理装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机业务程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书基于数字货币的交易处理装置所在设备的一种硬件结构图,除了图4所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据基于数字货币的交易处理实际功能,还可以包括其他硬件,对此不再赘述。
[0227] 请参见图5,为本说明书一实施例提供的基于数字货币的交易处理装置的模块图,所述装置对应了图2所示实施例,所述装置包括:
[0228] 接收单元310,接收客户端发送的与数字货币相关的交易请求;其中,所述交易请求包括数字货币的交易金额;以及,用户的数字货币钱包持有的数字货币列表的标识;
[0229] 响应单元320,响应于所述交易请求,从数据库中存储的与所述数字货币列表的标识对应的数字货币列表中,选中与所述交易金额匹配的数字货币组合,并检查所述数字货币组合的总金额与所述交易金额是否一致;
[0230] 执行单元330,如果所述数字货币组合的总金额与所述交易金额一致,基于选中的数字货币组合执行进一步的交易处理。
[0231] 可选的,所述响应单元320中响应于所述交易请求,从数据库中存储的与所述数字货币列表的标识对应的数字货币列表中,选中与所述交易金额匹配的数字货币组合,还包括:
[0232] 响应于所述交易请求,对所述交易请求进行校验处理;如果校验通过,针对所述交易请求执行交易记账,并在交易记账成功后,向所述客户端返回交易执行成功的提示;
[0233] 响应于所述交易请求的记账结果,从数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中,选中与所述记账结果中的交易金额匹配的数字货币组合。
[0234] 可选的,所述交易请求为数字货币兑换交易请求;
[0235] 所述响应单元320中检查所述数字货币组合的总金额与所述交易金额是否一致,包括:
[0236] 检查所述数字货币组合的总金额与所述交易请求中的交易金额;以及,与针对所述交易请求的记账结果中的交易金额是否均一致;如果是,确定所述数字货币组合的总金额与所述交易金额一致;反之,确定所述数字货币组合的总金额与所述交易金额不一致。
[0237] 可选的,所述交易请求为数字货币转账交易请求;所述交易金额包括收款方交易金额和付款方交易金额;
[0238] 所述响应单元320中检查所述数字货币组合的总金额与所述交易金额是否一致,包括:
[0239] 检查所述数字货币组合的总金额与所述交易请求中的交易金额、与针对所述交易请求的记账结果中的交易金额、以及所述记账结果中的收款方交易金额和付款方交易金额是否均一致;如果是,确定所述数字货币组合的总金额与所述交易金额一致;反之,确定所述数字货币组合的总金额与所述交易金额不一致。
[0240] 可选的,所述接收单元310还包括:
[0241] 接收客户端发送的针对所述交易请求的查询请求;
[0242] 所述装置还包括:
[0243] 确定单元,响应于所述查询请求,确定所述交易处理是否完成;如果是,向所述客户端返回所述交易请求的交易处理结果;如果否,向所述客户端返回所述交易请求对应的交易未处理完成的提示消息。
[0244] 可选的,所述响应单元320中从数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中,选中与所述记账结果中的交易金额匹配的数字货币组合,包括:
[0245] 遍历数据库中存储的与所述记账结果中的数字货币列表的标识对应的数字货币列表中的数字货币,对遍历到的数字货币组合的金额进行累加求和,得到累加金额;
[0246] 确定所述累加金额是否大于所述记账结果中的交易金额;
[0247] 如果所述累加金额大于所述交易金额,从所述数字货币组合中的指定数字货币中拆分出目标数字货币,并选中所述目标数字货币和所述数字货币组合中除了所述指定数字货币以外的其它数字货币;其中,所述目标数字货币和所述其它数字货币的总金额等于所述交易金额。
[0248] 可选的,所述响应单元320还包括:
[0249] 如果所述累加金额等于所述记账结果中的交易金额,则选中遍历到的数字货币组合。
[0250] 可选的,所述响应单元320还包括:
[0251] 如果所述累加金额小于所述交易金额,进一步确定遍历到的数字货币组合中的数字货币的数量是否大于预设阈值;如果是,对遍历到的数字货币组合中的数字货币进行合并;其中,合并后的数字货币的金额等于所述数字货币组合中的数字货币的总金额。
[0252] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
[0253] 上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0254] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0255] 以上图5描述了基于数字货币的交易处理装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
[0256] 处理器;
[0257] 用于存储处理器可执行指令的存储器;
[0258] 其中,所述处理器被配置为:
[0259] 接收客户端发送的与数字货币相关的交易请求;其中,所述交易请求包括数字货币的交易金额;以及,用户的数字货币钱包持有的数字货币列表的标识;
[0260] 响应于所述交易请求,从数据库中存储的与所述数字货币列表的标识对应的数字货币列表中,选中与所述交易金额匹配的数字货币组合,并检查所述数字货币组合的总金额与所述交易金额是否一致;
[0261] 如果所述数字货币组合的总金额与所述交易金额一致,基于选中的数字货币组合执行进一步的交易处理。
[0262] 在上述电子设备的实施例中,应理解,该处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:
Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-only memory,缩写:
ROM)、随机存取存储器(英文:random access memory,简称:RAM)、快闪存储器、硬盘或者固态硬盘。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0263] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0264] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
[0265] 应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈