npm 包 wx-pay 使用教程

阅读时长 9 分钟读完

微信支付是一项非常方便和安全的在线支付服务,许多企业和个人都采用微信支付来处理在线交易。npm 包 wx-pay 是一个非常轻量级的 Node.js 库,它提供了方便和快速的微信支付集成解决方案。本文将介绍 npm 包 wx-pay 的使用方法,包括安装和配置、API 说明、以及使用指南和示例代码等。

安装和配置

使用 npm install 命令可以快速安装 wx-pay 包,如下所示:

安装完成后,需要配置微信支付相关的参数,包括商户 ID、商户密钥、回调地址等。可以在初始化 WxPayClient 对象时进行相关参数配置,示例代码如下:

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

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

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

其中,各个参数的意义如下:

  • appId:微信支付分配的公众账号 ID 或应用 ID;
  • mchId:微信支付分配的商户号;
  • mchKey:商户密钥,用于生成签名和验证签名;
  • notifyUrl:支付结果通知的 URL 地址,需为 HTTPS 协议;
  • pfx:API 证书,用于双向证书认证。

API 说明

wx-pay 包提供了一系列便捷的方法,用于完成各种支付相关业务,包括统一下单、交易查询、退款等。下面是一些常用的 API 方法:

统一下单 API

使用 unifiedOrder 方法可以发起微信支付订单,实现流程如下:

  1. 用户在客户端生成订单信息;
  2. 客户端向服务器发送请求,请求生成微信支付订单;
  3. 服务器通过 unifiedOrder 方法发起微信统一下单请求;
  4. 微信支付系统生成预支付交易单,并返回支付凭证和相关信息;
  5. 客户端调用微信支付系统的 JSAPI 调起支付。

示例代码如下:

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

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

其中,各个参数的意义如下:

  • body:商品描述;
  • out_trade_no:商户订单号;
  • total_fee:订单金额,单位为分;
  • spbill_create_ip:终端 IP 地址;
  • notify_url:支付结果通知的 URL 地址;
  • openid:用户标识。

检查订单是否支付 API

使用 orderQuery 方法可以查询订单支付状态,示例代码如下:

其中,out_trade_no 为商户订单号。

关闭订单 API

使用 closeOrder 方法可以关闭未支付订单,示例代码如下:

其中,out_trade_no 为商户订单号。

申请退款 API

使用 refund 方法可以发起退款请求,实现流程如下:

  1. 用户在客户端发起退款申请;
  2. 客户端向服务器发送请求,请求发起退款;
  3. 服务器通过 refund 方法发起微信退款请求;
  4. 微信支付系统根据商户号和退款单号完成退款操作,返回退款结果。

示例代码如下:

其中,各个参数的意义如下:

  • out_trade_no:商户订单号;
  • out_refund_no:商户退款单号;
  • total_fee:订单金额;
  • refund_fee:退款金额。

使用指南和示例代码

使用 npm 包 wx-pay 集成微信支付,需要在客户端和服务器端分别完成一些操作。以下是具体步骤和示例代码:

1. 在客户端(浏览器端)发起支付请求

在客户端,需要使用微信 JSAPI 调起支付,具体方法如下:

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

其中,各个参数的意义如下:

  • appId:微信公众账号 ID 或应用 ID;
  • timeStamp:时间戳,作为请求和支付时间的标识;
  • nonceStr:随机字符串,作为请求和支付的安全标识;
  • package:支付凭证,由统一下单 API 返回;
  • signType:签名算法,通常为 MD5;
  • paySign:签名,由微信支付系统根据支付参数和商户密钥生成。

2. 在服务器端完成微信支付流程

在服务器端,需要根据客户端传递的订单信息,调用 npm 包 wx-pay 提供的 API 实现下单、查询、退款等操作。以下是一个完整的示例代码:

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

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

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

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

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

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

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

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

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

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

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

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

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

在上述示例中,代码首先初始化了 npm 包 wx-pay 的客户端对象 wxPayClient,在 /wx/pay 路由处理函数中,使用了 unifiedOrder 方法发起了微信统一下单请求,最终返回了客户端进行支付操作所需要的参数;在 /wx/query_order 路由处理函数中,使用了 orderQuery 方法查询订单支付状态。

总结

npm 包 wx-pay 是一个非常实用的微信支付集成解决方案,它提供了简单、快捷、稳定的 API 接口,可以大大减少开发者的工作量和开发成本。通过学习和应用本文介绍的使用方法和示例代码,你可以轻松地集成微信支付功能,实现你的在线支付业务。

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

纠错
反馈