npm 包 adonis-paypal 使用教程

阅读时长 9 分钟读完

adonis-paypal 是一个针对 AdonisJS 框架设计的 PayPal API 功能实现包,可以方便地在 Node.js 应用中实现 PayPal 的支付和付款功能。本文将介绍 adonis-paypal 的安装和使用方法,以及一些常见问题的解决方案。

安装

要使用 adonis-paypal,需要先在 Node.js 环境中安装 AdonisJS 框架。AdonisJS 的安装方法可以参考官方文档:https://adonisjs.com/docs/4.1/installation

安装好 AdonisJS 之后,可以使用 npm 直接安装 adonis-paypal:

使用

在 AdonisJS 应用中启用 adonis-paypal,需要在 start/app.js 文件中添加以下代码:

-- -------------------- ---- -------
----- --------- - -
  ----------------------------------------
-

----- ------------ - -
  ------------------------------------------
-

----- ------- - -
  ------- ----------------------
-

-- ---

----- -------------- - -
  -- ---
  -------------------------------
  -----------------------------
  ----------------------------
  ------------------------
-

-- ---

----- --------------- - -
  ----- ------------------------
-

-- ---

-------------- - -
  ----------
  -------------
  --------
  -------- -
    --------------- ---------------
    ---------------- ---------------
  -
  -- ---
-

然后在需要使用 PayPal 功能的地方,可以使用下面的代码引入 adonis-paypal 的 PayPal 类:

实现支付

在 AdonisJS 应用中使用 adonis-paypal 实现 PayPal 的支付功能,需要依次完成以下步骤:

  1. 初始化 PayPal

    在使用 PayPal 的任何功能前,需要先初始化 PayPal 客户端。可以通过调用 Paypal.init() 方法来实现:

    如果不需要在初始化时指定其他配置参数,可以省略 init() 方法的参数。

  2. 创建订单

    通过 Paypal.order() 方法可以创建一个订单。order() 方法的参数是订单的详细信息,包括订单的总金额、付款方式等。

    创建订单成功后,会返回一个订单号 order.id,将该订单号返回给客户端即可让客户端使用 PayPal 完成支付。

  3. 付款

    客户端支付成功后,可以通过调用 Paypal.pay() 方法来完成付款:

    -- -------------------- ---- -------
    ----- ------- - ----- ------------
      ------- -------
      ------ -
        --------------- --------
      --
      ------------- --
        ------- -
          ------ --------
          --------- -----
        --
        ------------ ----- --------
      ---
      -------------- -
        ----------- --------------------------------
        ----------- ------------------------------
      -
    -- ---------

    在支付成功后,可以通过读取 payment.state 属性来获取付款状态,如果该属性的值是 approved,那么说明付款已经成功。

  4. 查看付款详情

    可以通过调用 Paypal.details() 方法来查询付款的详细信息:

实现退款

通过 adonis-paypal 实现退款功能,需要依次完成以下步骤:

  1. 初始化 PayPal

    与实现支付功能一样,退款前也需要先初始化 PayPal 客户端:

  2. 创建退款

    通过调用 Paypal.refund() 方法来创建一个退款。refund() 方法的参数是退款的详细信息,包括退款的金额等。

    创建退款后,可以通过读取 refund.state 属性来获取退款状态。如果该属性的值是 completed,那么说明退款已经成功。

常见问题解决方案

SSL 认证问题

如果在使用 PayPal API 的过程中遇到 SSL 认证错误,可以通过在创建 PayPal 实例时指定 ssl: true 参数来忽略 SSL 错误:

示例代码

-- -------------------- ---- -------
----- ----- - ------------
----- ------ - ---------------------------

-------------- -- -
  ------------------------- ----- -- ------- -- -- -
    --- -
      ----- - ------- -------- - - -------------
      ----- -------------
      ----- ----- - ----- --------------
        -------
        ---------
        ------------ ----- ------
      --
      ------ --------
    - ----- ------- -
      --------------------
    -
  --

  ---------------------------- ----- -- -------- -------- -- -- -
    --- -
      ----- --------- - --------------------------
      ----- ------------ - ----------------------
      ----- -------------- - ------------------------
      ----- -------------
      ----- ------- - ----- ------------------------- ---------------
      -- -------------- --- ----------- -
        -------------------- ----------
        ------ -------- ---------
      - ---- -
        -------------------- ---------
        ------ -------- --------
      -
    - ----- ------- -
      --------------------
    -
  --

  --------------------------- -- -------- -------- -- -- -
    -------------------- -----------
    ------ -------- ----------
  --

  ---------------------------- ----- -- ------- -- -- -
    --- -
      ----- - ---------- ------- -------- - - -------------
      ----- -------------
      ----- ------ - ----- ---------------
        ------- -
          ------ -------
          --------
        --
        ------------ ----- -------
      -- ----------
      -- ------------- --- ------------ -
        ------------------- ----------
        ------ ------- ---------
      - ---- -
        ------------------- ---------
        ------ ------- --------
      -
    - ----- ------- -
      --------------------
    -
  --
-------------------

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671d430d0927023822a1b

纠错
反馈