前言
在实际开发中,我们经常需要对支付进行处理。对于支付流程的设计,虽然支付方式千差万别,但是在实现上都有共性的地方。支付通道(Payment Channel)是一种广泛用于移动支付和区块链支付等场景的方案。本文将介绍 npm 包 ilp-plugin-payment-channel-framework 如何使用来构建支付通道。
ilp-plugin-payment-channel-framework 简介
ilp-plugin-payment-channel-framework 是一个基于 Interledger 协议的支付通道框架。Interledger 是一个钱包无关的跨链协议,它允许任何两个支付和结算系统之间的交易。这个库只用于支持使用 Interledger 建立支付通道。
本库提供了一个使用缓存的支付通道实现。它允许双方安全地管理一个信任网络中的资金,使交易成本最小化。
ilp-plugin-payment-channel-framework 使用步骤
- 安装模块
使用 npm 安装模块:npm install ilp-plugin-payment-channel-framework
- 创建支付通道
const Plugin = require('ilp-plugin-payment-channel-framework') const plugin = new Plugin({ // options }) const info = await plugin.getInfo()
上面代码创建了一个 Interledger 地址,并与远端插件建立通信。
- 插件监听事件
plugin.on('incoming_prepare', async (transfer) => { // handle incoming transfer })
上面代码监听插件的 incoming_prepare 事件。插件在收到准备(prepare)订单时会触发该事件。
- 支付流程
Payee 方发起创建通道的请求并将通道创建信息通过 Interledger 网络发送给 Payer。在下面的示例中,Payer 执行:创建通道、发送通道信息给 Payee、发送第一笔付款给 Payee。收到第一笔付款的 Payee 也必须重新发送通道信息的有效性。
-- -------------------- ---- ------- ----- ----------- - --- -------- ----- -------- --- -- ----- ----------- - --- -------- ----- -------- --- -- ----- ------------------------------- ----------------- -- - -- ---- ----------- -- --- ----- -- ----- ----------- - ----- ---------- -- - ----- - ---------- ---------- - - ------------------ ----- ----------- - --- -------- ----- -------- --- -- ----- --------------------- ----- --------------------------- ---------- ----------- -------- ---------------- ---------- ------ --------- ------------------------- --------- ------------------------ -- ----- --- - ----- -------------------------- ------- ---------------- --- ------------------------- ---- ------------ -- - ---------------------------------- ------------
- 关闭通道
当通道余额为零时,支付通道关闭。Payee 第一次请求关闭通道并发送 Closing 消息。当 Payer 发送 tranfers 消息到 Payee 时,Payee 不再响应 any_messages 且返回 noop 而不是 transfer 消息。当 Payer 发送 tranfers 消息时,其 never_received 机制启动,这使得无法收到更小的支付,等待时间大于、小于 Payer 通过 getExpiry 方法获取的距离通道关闭的时间。
-- -------------------- ---- ------- --------------------------------- ----- --------- -- - ----- ------ - ----- ----------------------------------------- ----- -------------------------- ------- ---- ---- ----------- ------------ ------------------- --- ------------------------ -- -- ---------------------------------- ----- ---------- -- - -- ---------------- -- --- -- ------------------ -- ------------------------- - ----- -------------- - ------------------------------------------------------------- ----- ------ - ----- ------------------------------------------------ ----- ----------------------------------------- ------------------- - --
结束语
我们介绍了 ilp-plugin-payment-channel-framework 的基本使用,涉及到了支付通道的创建、流程和通道的关闭。本技术文章希望对读者的前端开发提供指导意义,同时也为读者带来更深入的学习体验。感谢读者的阅读。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056b5781e8991b448e550b