创建 Vue.js 无服务器结账表单:设置和测试

Avatar of Sarah Drasner
Sarah Drasner

DigitalOcean 为您旅程的每个阶段提供云产品。从 200 美元的免费积分 开始!

任何年轻应用程序的生命周期中都会出现需要获利的时刻。有很多方法可以实现盈利,但接受现金是实现更直接盈利的可靠方法。在本为期四部分的教程中,我们将介绍如何设置无服务器函数,使其与 Stripe API 交互,并将其连接到作为 Vue 应用程序设置的结账表单。这听起来可能令人生畏,但实际上非常简单!让我们深入了解。

Vue shop

文章系列

  1. 设置和测试(本文)
  2. Stripe 函数和托管
  3. 应用程序和结账组件
  4. 配置结账组件

什么是无服务器?

我们之前已经介绍过 无服务器概念,但是,如果您还没有阅读那篇文章,让我们花一分钟时间谈谈我们所说的“无服务器”,因为它有点误导性。

无服务器的承诺是减少设置和维护服务器所需的时间。您实际上是让服务为您处理维护和扩展,并将您需要的功能缩减为在发出请求时运行特定代码的函数。因此,人们可能会将此称为 FaaS。这非常有用,因为您只需为所使用的资源付费,而不是为可能不需要的整个容器付费。您还主要集中精力处理需要运行的代码,而不是照看服务器,这对许多希望快速启动和运行的人来说非常有吸引力。

FaaS 并不总是合适的工具。它对于小型执行非常有用,但是,如果您有可能会占用资源或大量计算的进程,能够像平常一样与服务器通信可能效率更高。

我们要制作的是一个非常适合使用无服务器的用例。Stripe 结账在客户端和服务器端都非常容易集成,但我们确实需要在服务器上执行一些逻辑,因此我们将使用 Azure 来帮助我们实现这一点。门户网站和 GitHub 集成很容易操作,只要您知道去哪里。所以,让我们开始吧!

注册 Stripe

首先,我们将创建一个 Stripe 帐户。我们通过电子邮件验证新帐户,然后转到 API 部分,在那里我们可以检索两个密钥。您会注意到我们现在处于测试模式,这很好!我们会一直保持这种状态以进行测试,并在设置应用程序时公开用于测试的密钥令牌。

登录后,转到仪表板的 API 部分以检索您的密钥。

Stripe testing dashboard
Stripe API 屏幕

您可能还想 为您的帐户添加电话号码,以便进行双因素身份验证。

在 Azure 门户中设置无服务器函数

首先,我们将前往 门户(如果您还没有帐户,可以在这里注册 免费试用),然后选择“新建”>“无服务器函数”。

New Function
在 Azure 中设置新的无服务器函数

当我们单击无服务器函数应用程序时,我们会进入一个面板,该面板要求提供一些详细信息来帮助设置。正如您在上面的屏幕截图中看到的,它会根据应用程序名称自动填充大多数字段,但让我们快速回顾一下其中的一些选项。

  • 添加一个 **唯一名称**
  • 一个 **资源组**(如果您还没有,请创建一个)
  • 我使用 **Windows OS**,因为 Linux 仍然处于预览阶段,因此 Windows 更加稳定。
  • 我使用 **消耗计划**,因为这是与使用量相匹配的付款方式,它也会自动扩展。另一个选项“应用程序服务计划”适用于喜欢手动操作一切的人。
  • 选择靠近您的客户群的 **位置**,或选择两个客户群之间的中点。
  • 选择一个 **存储**,或者像我一样创建一个。
  • 我还将选中 **固定到仪表板**,因为我以后想快速检索我的函数。
New function settings

这将带您回到主要门户仪表板,并告知您您的函数正在部署。完成后,它会将您带到一个包含所有选项的主屏幕。从这里,我们将创建我们的函数,它将是一个 HTTP 触发器。

我们将选择函数名称下的“函数”,您会看到一个带有加号的小表格,上面写着“新建函数”。

New Function in the Portal

单击这里后,我们有一些创建选项。我们将选择 HTTP 触发器。

Choose HTTP Trigger

我们将能够选择语言(选择“JavaScript”),然后选择“创建”。

Pick the Language and Create

默认测试函数

从这里,我们将获得一个默认的测试函数,它可以帮助我们了解所有内容是如何工作的。如果我们打开所有这些面板并点击“运行”按钮,我们将在日志中看到输出。

The initial testing output
在测试环境中运行函数

这是我们得到的代码

module.exports = function(context, req) {
  context.log('JavaScript HTTP trigger function processed a request.');

  if (req.query.name || (req.body && req.body.name)) {
    context.res = {
      // status: 200, /* Defaults to 200 */
      body: 'Hello ' + (req.query.name || req.body.name)
    };
  } else {
    context.res = {
      status: 400,
      body: 'Please pass a name on the query string or in the request body'
    };
  }
  context.done();
};

您会看到这里我们传递了 context。这允许我们记录日志,它将显示在下面的最下方面板中。在右侧的 **测试** 面板中,我们可以传递一个请求主体,该主体可用于测试我们的应用程序。运行时,我们看到输出状态为 200,并且知道一切正常。我们还有一个 context.log,用于它返回 400 错误的情况。如果您想玩玩无服务器函数并亲眼看看它的运行方式,可以使用 免费试用帐户 创建一个。

接下来…

现在我们有了无服务器函数的基础,让我们设置与 Stripe 交互所需的内容!本系列的下一篇文章将介绍更多内容。

文章系列

  1. 设置和测试(本文)
  2. Stripe 函数和托管
  3. 应用程序和结账组件
  4. 配置结账组件