NPM 包 alipay-server 使用教程

阅读时长 7 分钟读完

支付宝(Alipay)是中国最大的移动支付平台之一,其聚集了数亿用户和数百万商户。在实现支付宝支付过程中,alipay-server NPM 包可以帮助 Node.js 开发者轻松地接入支付宝 SDK、管理密钥和签名等操作。本文将详细介绍 alipay-server 包的使用方法,帮助开发者快速搭建基于支付宝支付的应用程序。

安装

在使用 alipay-server 之前需要先安装 Node.js 和 NPM,然后在项目目录下执行以下命令:

这样就可以把 alipay-server 包添加到项目依赖中。

配置

接下来需要配置支付宝开放平台的应用程序,获取验证密钥等信息。首先登录支付宝开放平台,创建一个新应用程序,然后获取以下信息:

  • APP_ID:应用程序 ID
  • PUBLIC_KEY:应用程序公钥字符串(注意一定要保护好私钥)
  • PRIVATE_KEY:生成签名和加密信息的私钥字符串

然后在代码中添加以下配置:

实际使用时,需要将 YOUR_APP_IDYOUR_PUBLIC_KEYYOUR_PRIVATE_KEY 替换为自己的信息。当 sandbox 参数为 true 时,表示调用沙箱网关(测试用),正式开发时应改为 false

使用

签名

接口参数签名是使用私钥加密的,每个请求的签名参数不同,需要对每个请求单独进行签名。可以使用 alipay.sign() 方法对参数进行签名:

alipay.trade.query 是支付宝开放平台中查询订单的 API 方法,out_trade_no 是我们自己创建的订单号。

请求支付 API

签名完成后,可以使用 alipay.request() 方法调用支付宝 API。以调用查询订单状态 API 为例:

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

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

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

这样就可以向支付宝服务器发送 API 请求,并根据返回的结果输出相关信息了。

取消订单

在支付宝支付中,如果用户尚未完成支付,想要取消订单,可以使用 alipay.cancel() 方法:

支付结果通知

支付宝会自动向开发者提供支付结果通知。可以自己编写一个路由,接收这些通知:

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

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

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

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

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

当收到支付结果通知后,首先需要对签名进行验证,只有验证通过才能确定通知的来源。如果验证通过,说明支付流程已经完成,可以根据 params.trade_status 来处理订单状态。

示例代码

最后,我们提供一个完整的示例代码:

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

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

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

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

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

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

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

结论

本文介绍了 alipay-server NPM 包的详细使用方法,帮助开发者轻松接入支付宝支付 SDK,实现支付功能。在实际开发过程中,还需要考虑订单的状态管理、订单流程的处理等方面,但基于 alipay-server 的封装,大大简化了开发者的工作。

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

纠错
反馈