简介
wxpay-server 是一款 Node.js 的 npm 包,用于实现微信支付的服务器端功能。它提供了以下功能:
- 微信支付 API 的封装,可用于创建订单、查询订单等功能;
- 支付结果回调接口的处理,包括请求支付结果、验证签名等功能。
使用 wxpay-server 可以方便地实现微信支付功能,不需要编写繁琐的支付接口和支付结果处理代码。本文将详细介绍如何使用 wxpay-server 实现微信支付。
准备工作
使用 wxpay-server 前需要准备以下内容:
- 微信支付 API 的密钥(key)和商户号(mch_id),可在微信支付商户平台获取;
- Node.js 环境,在命令行窗口输入
node --version
确认已安装; - IDE 或文本编辑器,本文以 Visual Studio Code 为例,可前往 https://code.visualstudio.com/ 下载。
安装 wxpay-server
安装了 Node.js 环境后,可以使用 npm 包管理工具安装 wxpay-server。在命令行窗口输入如下命令:
--- ------- ------------
安装完成后,即可在项目中引入并使用 wxpay-server。
创建订单
使用 wxpay-server 创建订单的步骤如下:
- 创建 wxpay 实例:
----- ----- - ------------------------- ------- -------- ------- -- ---------- ----- ------- ------ -- ---------- ---- ---- ---- -- ------- --- -- ----------- ------ -- ------------- ---
- 调用 createOrder 方法创建订单:
----- ------ - ----- ------------------- ----- ------- -- ------- ------------- -------- -- -------- ---------- -------- -- ------------- ------- --- ------- -- ----- ------ ---
createOrder 方法的返回值 result 包含以下属性:
- prepay_id:预支付交易会话标识,用于后续调用支付 API;
- timestamp:时间戳;
- nonce_str:随机字符串。
- 使用 prepay_id 调用微信支付 API 完成支付。
查询订单
使用 wxpay-server 查询订单的步骤如下:
创建 wxpay 实例,同创建订单。
调用 queryOrder 方法查询订单:
----- ------ - ----- --------------------------
queryOrder 方法返回的 result 包含订单的详细信息,如下:
- return_code:通信标识,表示通信状态;
- result_code:业务结果标识,表示业务状态;
- trade_state:交易状态;
- transaction_id:微信支付订单号;
- total_fee:订单总金额;
- openid:用户 openid。
支付结果回调处理
使用 wxpay-server 处理支付结果回调的步骤如下:
创建 wxpay 实例,同创建订单。
在 notify_url 上监听 POST 请求:
----- ---- - ---------------- ----- ------ - ----------------------- --------- --------- -- - ----- ---- - ----- --------------------- ---------- ------------------ -- -------- --- --------------------
- 在请求处理函数中处理支付结果回调,例如处理订单状态:
----- -------- ----------------------- - ----- - ------------- --------------- ----------- - - ----- -- -- ------------ ------ --------------- --------------- ------------ -------------------- -
以上是使用 wxpay-server 处理微信支付的基本流程,具体的使用方法可参考 API 文档。本文的示例代码可在 GitHub 上获取 https://github.com/example/wxpay-server-demo。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600572c981e8991b448e8f5f