本发明涉及区块链电子钱包点对点终端收付款技术领域,尤其涉及一种基于区块链点对点通信api服务接口及其使用方法。
背景技术:
现有技术的电子钱包去中心化收付款系统在点对点交易过程中,付款方需通过近场通信如扫码等手段获取收款方的收款地址或账号才能顺利完成付款,这种付款方式会使收款方的收款地址或账号处于公开状态,容易造成收款方收款地址或账号信息处于不安全的状态并受到入侵风险。
随着加密数字货币的兴起,由于加密数字货币使用密码学使得数字货币不可增加,不可篡改,整个流通过程都可监控,具有交易安全性能更高的特点,因而得到了网络电子支付区块链领域技术人员的高度重视,如何确保网络电子支付的安全一直是区块链技术人员的研究课题。
技术实现要素:
针对现有技术的不足,本发明所解决的技术问题是如何避免收款方的收款地址或账号公开,确保收款方的信息安全。
为解决上述技术问题,本发明采用的技术方案是一种基于区块链点对点通信api服务接口,包括获取功能模块及广播功能模块,所述获取功能模块及广播功能模块通过通迅协议进行信息连接,其中:所述获取功能模块,具有paymentrequest/api/showpos/getpaymentrequest功能作用,所述广播功能模块,具有广播tx/api/showpos/broadcasttx功能作用,其与第三方通过api交互加密协议进行信息连接,具体步骤如下:
(1)请求参数[data]转成json字符串并进行base64encode编码;
(2)拼接加密字符串,格式数据字符串 请求时间 6到8位随机数;
(3)获取签名[sign]值,默认为sha256算法模式,最终签名值转小写字母;
(4)发送最终请求参数,转成json字符串格式。
为解决上述技术问题,本发明采用的另一个技术方案是一种基于区块链点对点通信api服务接口的使用方法,包括以下具体步骤:
(1)付款方生成自己的支付二维码,收款方对付款方的二维码进行扫码,得到的二维码值是walletserverwalletpubkey_timestamp;
所述二维码值指付款方服务器api和付款方公钥加时间的字串组合。
(2)收款方根据接收到的二维码信息,生成posoutput的json序列化字串;
(3)收款方将创建生成paymentrequest返回给付款方服务器,同时在收款方服务器上生成对应的订单信息;
(4)收款方服务器将订单信息发给付款方验证签名完整的交易,如果是大额则需用户手动确认以保证安全,之后将签名完成的tx组装的paymentrequest
返回给收款方服务器;
(5)收款方服务器收到交易之后广播,并且将结果通过paymentack反馈给支付方服务器,再由支付方服务器反馈给支付方,收款方服务器同时通知等待的收款方提示支付结果。
与现有技术相比,采用本发明的技术方案无需使收款方的收款地址或账号处于公开状态,确保了收款方信息安全。
附图说明
图1为本发明的api服务接口结构示意图;
图2为本发明的的使用方法流程图;
图3为获取功能模块获取paymentrequest过程图;
图4为广播功能模块广播tx过程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的说明,但不是对本发明的限定。
图1示出了一种基于区块链点对点通信api服务接口10,包括获取功能模块101及广播功能模块102,所述获取功能模块101及广播功能模块102通过通迅协议进行信息连接;
所述获取功能模块101,具有获取paymentrequest/api/showpos/getpaymentrequest功能作用,
例:获取paymentrequest如图3所示;
所述广播功能模块102,具有广播tx/api/showpos/broadcasttx功能作用,例:广播tx如图4所示;
本发明与第三方通过api交互加密协议进行信息连接,具体步骤如下:
(1)请求参数[data]转成json字符串并进行base64encode编码;例:datastr=tojson(object)->base64str=tobase64encode(jsonstr);
(2)拼接加密字符串,格式数据字符串 请求时间 6到8位随机数;例:sigstr=sig_str.append(datastr).append(time).append(nonce);
(3)获取签名[sign]值,默认为sha256算法模式,最终签名值转小写字母;例:
sign=sha256(sigstr)
在线匹配:http://tool.oschina.net/encrypt?type=2
参考值:sha256("123456")=8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92;
(4)发送最终请求参数,转成json字符串格式。
show请求示例:
{"nonce":"1186471493442207744","time":1571711822268,"data":"eyj3ywxszxrfa2v5ijoid2fsbgv0xzeyin0=","sign":"76337e0a0ceaa288455b4ad48453b2b20c10017ccc634bbb5dac73cdc2e1de23"}
响应数据示例:
测试/正式请求实施例:
测试地址:http://127.0.0.1
请求示例:
响应示例:
图2示出了一种基于区块链点对点通信api服务接口使用方法,包括以下具体步骤:
(1)付款方生成自己的支付二维码,收款方对付款方的二维码进行扫码,得到的二维码值是walletserverwalletpubkey_timestamp;
所述二维码值指付款方服务器api和付款方公钥加时间的字串组合。
(2)收款方根据接收到的二维码信息,生成posoutput的json序列化字串;
(3)收款方将创建生成paymentrequest返回给付款方服务器,同时在收款方服务器上生成对应的订单信息;
(4)收款方服务器将订单信息发给付款方验证签名完整的交易,如果是大额则需用户手动确认以保证安全,之后将签名完成的tx组装的paymentrequest
返回给收款方服务器;
(5)收款方服务器收到交易之后广播,并且将结果通过paymentack反馈给支付方服务器,再由支付方服务器反馈给支付方,收款方服务器同时通知等待的收款方提示支付结果。
与现有技术相比,采用本发明的技术方案无需使收款方的收款地址或账号处于公开状态,确保了收款方信息安全。
以上结合附图对本发明的实施方式做出了详细说明,但本发明不局限于所描述的实施方式。对于本领域技术人员而言,在不脱离本发明的原理和精神的情况下,对这些实施方式进行各种变化、修改、替换和变型仍落入本发明的保护范围内。
1.一种基于区块链点对点通信api服务接口,其特征在于,包括获取功能模块及广播功能模块,所述获取功能模块及广播功能模块通过通迅协议进行信息连接,其中:所述获取功能模块,具有paymentrequest/api/showpos/getpaymentrequest功能作用,所述广播功能模块,具有广播tx/api/showpos/broadcasttx功能作用,其与第三方通过api交互加密协议进行信息连接,具体步骤如下:
(1)请求参数[data]转成json字符串并进行base64encode编码;
(2)拼接加密字符串,格式数据字符串 请求时间 6到8位随机数;
(3)获取签名[sign]值,默认为sha256算法模式,最终签名值转小写字母;
(4)发送最终请求参数,转成json字符串格式。
2.一种如权利要求1所述的基于区块链点对点通信api服务接口的使用方法,其特征在于,包括以下具体步骤:
(1)付款方生成自己的支付二维码,收款方对付款方的二维码进行扫码;
(2)收款方根据接收到的二维码信息,生成posoutput的json序列化字串;
(3)收款方将创建生成paymentrequest返回给付款方服务器,同时在收款方服务器上生成对应的订单信息;
(4)收款方服务器将订单信息发给付款方验证签名完整的交易,如果是大额则需用户手动确认以保证安全,之后将签名完成的tx组装的paymentrequest
返回给收款方服务器;
(5)收款方服务器收到交易之后广播,并且将结果通过paymentack反馈给支付方服务器,再由支付方服务器反馈给支付方,收款方服务器同时通知等待的收款方提示支付结果。
3.一种如权利要求2所述的基于区块链点对点通信api服务接口的使用方法,其特征在于,步骤(1)中,所述二维码值指付款方服务器api和付款方公钥加时间的字串组合,所述二维码值是walletserverwalletpubkey_timestamp。
技术总结