前言
随着电子货币的普及, 在线支付也变得越来越常见。而与之配套的软件产品也层出不穷。mxbitcore-payment-protocol 就是一个非常优秀的 npm 包,它可以帮助开发者很容易地构建一个基于比特币的支付协议。
概述
mxbitcore-payment-protocol 是 mxbitcore 团队推出的 npm 包,它是基于比特币网络的支付协议。
mxbitcore-payment-protocol 包含了两个部分:
- client - 发起支付请求的前端部分;
- server - 接收支付请求并 dispatch 待处理请求的服务端部分;
mxbitcore-payment-protocol 的使用非常简单,一个完整的支付请求流程被分为两步:
- 使用 mxbitcore-payment-protocol 的客户端部分构建支付请求数据并加签;
- 将构建好的支付请求发送至 mxbitcore-payment-protocol 的服务端部分让其去处理。
下面我们来详细介绍它的使用方法。
环境需求
在开始使用 mxbitcore-payment-protocol 之前,需要满足以下的环境需求:
- Nodejs v6+(建议使用 v8+ );
- npm 或 yarn 包管理工具。
安装
使用 npm
在命令行中输入以下命令来安装:
npm install mxbitcore-payment-protocol
使用 yarn
在命令行中输入以下命令来安装:
yarn add mxbitcore-payment-protocol
使用
客户端
在客户端使用 mxbitcore-payment-protocol 主要分为以下两步:
- 使用 PaymentRequest 类构建支付请求;
- 使用 Payment 类来发起支付请求。
PaymentRequest 构建支付请求
-- -------------------- ---- ------- ----- - -------------- - - -------------------------------------- ------ -- -- - ----- -------------- - --- ---------------- ------- ----- --------- ------ -------- ------------------------------------- ----- ----------- ----------- -------------------------------------------------------------------- --- --- - ----- ----------------- - ----- ------------------------ ------------------------------- - ----- --- - --------------- - -----
PaymentRequest 构造参数说明:
amount
: 支付金额,以最小单位为单位;currency
: 货币代码;address
: 收款人地址;memo
: 支付说明(可选);notificationUrl
: 支付回调地址(可选);paymentUrl
: 用于转移至付款页面的 URL (可选,仅适用于前端);refundAddress
: 退款地址(可选);reqParam
: 额外的请求参数(可选);
PaymentRequest 的类函数说明:
encode
: 对支付请求进行编码,返回编码后的支付请求 URL。
使用 Payment 类发起支付请求
-- -------------------- ---- ------- ----- - ------- - - -------------------------------------- ----- ------- - --- --------- -------- ---------- --- ----- ---------- - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------ -- -- - --- - ----- ------ - ----- -------------------------------- -------------------- - ----- --- - --------------- - -----
Payment 的构造参数说明:
network
: 货币网络类型,如mainnet
testnet
等(可选);
Payment 类函数说明:
sendPayment()
: 用于发起支付请求,输入参数为构造 PaymentRequest 类返回的支付请求 URI,并返回支付结果。
服务端
mxbitcore-payment-protocol 的服务端程序是用 NodeJS 编写的。在开发前,需要先配置运行环境。
mxbitcore-payment-protocol 的服务端部分包含了以下几个重要的类:
- Invoice - 发票类,用于生成支付请求的收据。
- Server - 服务端类,用于接收支付请求并转交至待处理的 PayPro 处理器上。
- PayPro - PayPro 协议类,处理支付请求的主要功能。
使用 Invoice 生成收据
-- -------------------- ---- ------- ----- - ------- - - -------------------------------------- ------ -- -- - ----- ------- - --- --------- -------- ------------------------------------- ------- ------ ----- ------------ ----------- ------------------------------------------------------------------- --- --- - ----- ----------- - ----- ------------------ ------------------------- - ----- --- - --------------- - -----
Invoice 构造参数说明:
address
: 收款地址;amount
: 支付金额,以最小单位为单位;memo
: 支付说明(可选);privateKey
: 商家私钥。
Invoice 类函数说明:
getData()
: 使用 Invoice 类构造函数传递的参数生成收据数据。
使用 Server 接收来自客户端的支付请求
-- -------------------- ---- ------- ----- - ------ - - -------------------------------------- ----- ------ - --- -------- -------- ---------- --- -------------------- ----- --------- -- - -- -------- -- ------ --------------------------- - -- ----------- ----------- ----- ------ - ----- ------------------------------------------ -- ---- - ---- - -- ------ ----- --- - ----- --------------------- -- ---- - --- ------------------- -- -- - ------------------- -------- ---
Server 构造参数说明:
network
: 货币网络类型,如mainnet
testnet
等(可选);options
: 与服务端相关的参数(可选);
Server 事件和函数说明:
request
: 触发当一个新的支付请求被建立时,这个请求会以 PayPro 接口实现的形式传递给 listener。listen()
: 为 Server 类实例添加一个事件监听器。
使用 PayPro 处理支付相关信息
-- -------------------- ---- ------- ----- - ------ - - -------------------------------------- ----- ------ - --- -------- ----------- --------------------------------------------- --- --- - ----- ------ - ----- -------------------- -------- ---------- --------- ------ --------- ------ ----- --------- ------------- ---- -- ---- - --------- ------------------ --------------------------------------------------------------------- ------------- - ------------------- -- --- -------------------- - ----- --- - --------------- -
PayPro 构造参数说明:
requestUrl
: PayPro 服务端地址;
PayPro 类函数说明:
sendPayment()
: 通过 MXBit SDK 向 PayPro 发送付款流程并返回结果。
示例代码
上述示例代码的集合版如下:
-- -------------------- ---- ------- ----- - -------------- - - -------------------------------------- ----- - ------- - - -------------------------------------- ----- - ------ - - -------------------------------------- ----- - ------ - - -------------------------------------- ----- - ------- - - -------------------------------------- ------ -- -- - -- -------------- ------ ----- -------------- - --- ---------------- ------- ----- --------- ------ -------- ------------------------------------- ----- ----------- ----------- -------------------------------------------------------------------- --- --- - ----- ----------------- - ----- ------------------------ ------------------------------- - ----- --- - --------------- - -- -- ------- ------- ----- ------- - --- --------- -------- ---------- --- ----- ---------- - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --- - ----- ------ - ----- -------------------------------- -------------------- - ----- --- - --------------- - -- -- ------- ---- ----- ------- - --- --------- -------- ------------------------------------- ------- ------ ----- ------------ ----------- ------------------------------------------------------------------- --- --- - ----- ----------- - ----- ------------------ ------------------------- - ----- --- - --------------- - -- -- ------ ------------ ----- ------ - --- -------- -------- ---------- --- -------------------- ----- --------- -- - -- ------ --------------------------- - ----- ------ - ----- ------------------------------------------ -------------------- - ---- - ----- --- - ----- --------------------- ----------------- - --- ------------------- -- -- - ------------------- -------- --- -- -- ------ -------- ----- ------ - --- -------- ----------- --------------------------------------------- --- --- - ----- ------ - ----- -------------------- -------- ---------- --------- ------ --------- ------ ----- --------- ------------- ---- -- ---- - --------- ------------------ --------------------------------------------------------------------- ------------- - ------------------- -- --- -------------------- - ----- --- - --------------- - -----
结语
mxbitcore-payment-protocol 是一个非常好的 npm 包,它可以帮助前端和后端轻松构建使用比特币网络的支付协议。通过本篇文章的介绍和示例,我们相信读者已经能够掌握 mxbitcore-payment-protocol 的使用技巧,欢迎读者自行前往 npm 官网进行深入学习和实践。谢谢!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600672503660cf7123b362b5