如何使用 Serverless 搭建 API 对接微信 / 支付宝等开放平台

阅读时长 8 分钟读完

前言

当今的互联网时代,各种开放平台层出不穷,微信、支付宝等已经成为人们日常生活不可或缺的一部分。而如何与这些开放平台对接,让后端开发者非常头疼,需要考虑到服务器的管理、部署、性能优化等问题,这些问题会对开发效率带来很大的影响,Serverless 的出现则非常好的解决了这些问题。

那么本文将介绍如何使用 Serverless 搭建 API 对接微信 / 支付宝等开放平台。

Serverless 是什么?

Serverless(无服务器架构)是一种新兴的云计算架构,不需要宿主操作系统,不需要维护操作系统、数据库、Web服务器的状态,不用关心网络层的操作等问题。它是一个让开发者可以专注于代码编写,而不是关注服务器架构和管理的云计算架构。

Serverless 最核心的特性就是“事件驱动”,服务器只有在接收到请求的时候才会去执行代码,所以减少了无意义的计算,从而减少了服务器的开销。另外,Serverless 服务具有自动扩容能力、冷启动时间短的特点,能够应对高并发场景。

Serverless 对接微信 / 支付宝等开放平台

准备工作

使用 Serverless 对接微信 /支付宝等开放平台,需要提前准备好以下工作:

  1. 一个可用的 Serverless 平台,这里推荐使用阿里云函数计算(FC)。

  2. 一个公众号或者服务窗口的账号,具体使用哪种账号,根据你的实际业务需求来选择。

  3. 微信支付或支付宝支付的商户号以及对应的 API 密钥。

构建 Serverless 项目

在阿里云函数计算上创建一个新的项目,这个项目将作为我们使用 Serverless 对接微信 / 支付宝等开放平台的基础。

创建项目后,在项目根目录下新建一个 config.js 文件,用于存储微信支付或支付宝支付的商户号以及对应的 API 密钥。

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

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

使用 Serverless 实现微信支付

创建项目

创建一个新的项目,并在项目的根目录下创建一个 payment 目录,该目录用于存放与微信支付相关的代码。在 payment 目录下创建一个 wechat.js 文件,用于存放微信支付相关的逻辑。

wechat.js 文件中引入 Serverless SDK,并在导出的函数中实现微信支付的逻辑。

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

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

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

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

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

配置路由

为 Serverless 函数创建一个路由,与微信支付的接口路径相对应。 在项目的根目录下创建一个 app.js 文件,用于实现 Serverless 函数的路由。

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

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

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

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

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

配置自动部署

Serverless 的项目需要配置好参数后,需要进行部署,才能通过 API 网关暴露出来。我们可以通过 Serverless 的功能进行自动部署。在项目根目录下,创建一个 serverless.yml 文件,并添加以下内容。

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

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

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

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

- ----------

使用 Serverless 实现支付宝支付

创建项目

创建一个新的项目,并在项目的根目录下创建一个 payment 目录,该目录用于存放与支付宝支付相关的代码。在 payment 目录下创建一个 alipay.js 文件,用于存放支付宝支付相关的逻辑。

alipay.js 文件中引入 Serverless SDK,并在导出的函数中实现支付宝支付的逻辑。

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

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

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

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

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

配置路由

为 Serverless 函数创建一个路由,与支付宝支付的接口路径相对应。在项目的根目录下创建一个 app.js 文件,用于实现 Serverless 函数的路由。

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

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

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

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

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

配置自动部署

Serverless 的项目需要配置好参数后,需要进行部署,才能通过 API 网关暴露出来。我们可以通过 Serverless 的功能进行自动部署。在项目根目录下,创建一个 serverless.yml 文件,并添加以下内容。

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

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

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

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

- ----------

总结

通过上面的介绍,我们可以知道 Serverless 架构相对于传统的服务器架构,优势非常明显:使用方便、冷启动时间短、自动扩容等特点,可以加快开发者的开发效率,减少运维成本。在与微信 / 支付宝等开放平台对接时,使用 Serverless 可以使对接过程更加方便简洁、高效。

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

纠错
反馈