npm 包 mxbitcore-payment-protocol 使用教程

阅读时长 13 分钟读完

前言

随着电子货币的普及, 在线支付也变得越来越常见。而与之配套的软件产品也层出不穷。mxbitcore-payment-protocol 就是一个非常优秀的 npm 包,它可以帮助开发者很容易地构建一个基于比特币的支付协议。

概述

mxbitcore-payment-protocol 是 mxbitcore 团队推出的 npm 包,它是基于比特币网络的支付协议。

mxbitcore-payment-protocol 包含了两个部分:

  1. client - 发起支付请求的前端部分;
  2. server - 接收支付请求并 dispatch 待处理请求的服务端部分;

mxbitcore-payment-protocol 的使用非常简单,一个完整的支付请求流程被分为两步:

  1. 使用 mxbitcore-payment-protocol 的客户端部分构建支付请求数据并加签;
  2. 将构建好的支付请求发送至 mxbitcore-payment-protocol 的服务端部分让其去处理。

下面我们来详细介绍它的使用方法。

环境需求

在开始使用 mxbitcore-payment-protocol 之前,需要满足以下的环境需求:

  1. Nodejs v6+(建议使用 v8+ );
  2. npm 或 yarn 包管理工具。

安装

使用 npm

在命令行中输入以下命令来安装:

使用 yarn

在命令行中输入以下命令来安装:

使用

客户端

在客户端使用 mxbitcore-payment-protocol 主要分为以下两步:

  1. 使用 PaymentRequest 类构建支付请求;
  2. 使用 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

纠错
反馈