NPM 包 alipay-server 使用教程

支付宝(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


猜你喜欢

  • npm 包 ember-cli-mentionable 使用教程

    什么是 ember-cli-mentionable ember-cli-mentionable 是一个 Ember.js 插件,它提供了在表单中创建可提及用户的功能。

    3 年前
  • npm 包 menxit-easy-rsa 使用教程

    在前端开发中,我们常常需要使用 RSA 非对称加密算法来对敏感数据进行加密。但是,为了实现 RSA 加密,需要使用到一些复杂的数学计算,导致手写代码实现起来比较麻烦且容易出错。

    3 年前
  • npm 包 tinkerhub-device-miio 使用教程

    前言 在此前端技术文章中,我们将介绍如何使用 npm 包 tinkerhub-device-miio 来控制小米智能设备。该包是 Tinkerhub 团队所维护的,我们将为您提供详细的教程和示例代码,...

    3 年前
  • npm 包 cordova-plugin-geolocation-orz 使用教程

    介绍 cordova-plugin-geolocation-orz 是一个用于通过原生接口获取当前设备位置信息的 Cordova 插件。该插件提供了比浏览器原生 Geolocation API 更加准...

    3 年前
  • npm 包 geojson-validation-es5 使用教程

    GeoJSON 是一种常见的地图数据格式,它通常用于描述地理空间信息。在前端开发中,我们经常需要对 GeoJSON 数据进行校验,以保证其格式的正确性,以便进一步地处理和使用。

    3 年前
  • npm包isotope使用教程

    在前端开发中,使用npm包是一种非常常见的方式,因为它可以使我们更轻松地管理依赖,提升开发效率。在这篇文章中,我们将探讨如何使用一个非常实用的npm包:isotope。

    3 年前
  • npm 包 keychain-env 使用教程

    在前端开发过程中,我们经常需要处理敏感信息,比如 API 密钥、数据库密码等等,这些信息往往不能暴露在前端代码中,而需要以安全的方式存储和管理。此时使用 keychain-env 这个 npm 包可以...

    3 年前
  • npm 包 preact-body-class 使用教程

    简介 preact-body-class 是一个适用于 Preact 框架的 npm 包,它可以方便地为 HTML 文档的 body 元素添加 class 属性。通过添加 class,我们可以在 CS...

    3 年前
  • npm 包 simple-dependency-promise 使用教程

    对于前端开发者来说,npm 包的使用已经不可或缺,但是 npm 包的数量十分庞大,使用也有一定的难度。当我们需要使用一些简单的依赖关系时,可能不需要复杂的依赖管理工具,这时候 simple-depen...

    3 年前
  • npm 包 koa-await-breakpoint 使用教程

    1. 什么是 koa-await-breakpoint koa-await-breakpoint 是一个基于 Koa 框架的中间件,它可以帮助开发者更容易地进行调试和分析异步代码。

    3 年前
  • npm 包 liuyi-g2-wrapper 使用教程

    在前端开发中,数据可视化是非常常见的需求,而 G2 是蚂蚁金服的一套数据可视化解决方案。虽然 G2 功能强大,但它的 API 确实有些复杂。因此,本文将介绍一个方便易用的 npm 包 liuyi-g2...

    3 年前
  • npm 包 react-native-communications-zmt 使用教程

    介绍 react-native-communications-zmt 是一个 React Native 模块,提供了一些常用的通讯功能,如打电话、发短信、发邮件等。

    3 年前
  • npm 包 vuelma 使用教程

    前言 在当今这个时代,Web 前端开发已经成为了一个不可或缺的领域。在前端开发中,Vue 前端框架已经成为了广大开发者的首要选择之一。而对于 Vue 的开发,又需要使用很多的第三方库来辅助完成开发过程...

    3 年前
  • npm 包 @js.properties/parser 使用教程

    前言 在前端开发中,我们经常需要解析 properties 格式的配置文件。而手动解析这些配置文件非常费时和费力,容易出错。但是好在,现在有很多开源的工具可以帮助我们自动解析配置文件。

    3 年前
  • npm 包 @rijk/conjunctions 使用教程

    什么是 @rijk/conjunctions @rijk/conjunctions 是一个 JavaScript 库,用于将数组中的元素连接成字符串,以及在连接过程中添加分隔符和连接词。

    3 年前
  • npm 包 convert-range 使用教程

    convert-range 是一个实用的 Node.js 模块,用于将输入值从一定范围内转换到另一个范围内。本文将介绍 convert-range 的用法,包括安装、引用和示例代码的详细说明。

    3 年前
  • npm 包 chart.js-rangeslider 使用教程

    前言 在前端开发中,数据展示模块往往需要用到图表,而图表又需要使用数据滑块功能,在这个需求背景下,npm 包 chart.js-rangeslider 成为了一款非常优秀的工具。

    3 年前
  • npm 包 gulp-slasher 使用教程

    简介 gulp-slasher 是一个 npm 包,用于在前端工程化中帮助开发者管理文件路径。使用 gulp-slasher,我们可以在代码中使用相对路径,而不必担心操作系统之间的路径差异。

    3 年前
  • npm 包 estml 使用教程

    简介 estml 是一个 npm 包,它是一种模板语言,可以帮助前端开发者编写易于维护和理解的模板。此外,estml 还提供了许多有用的功能,例如条件语句、循环语句、变量定义等等。

    3 年前
  • npm 包 generator-spectrum-front-core 使用教程

    前言 在前端开发中,我们经常需要初始化项目,添加基础框架和常用的工具,这样才能更快地开始真正的工作。接手一个新项目时,对于以下步骤的重复性工作,我们可以使用代码生成器解决,这不仅可以提高我们的开发效率...

    3 年前

相关推荐

    暂无文章