简介
Stripe 是一个全球领先的网络支付平台,其提供了强大的支付和订阅管理功能。Stripe 的 webhooks 功能可以让我们在 Stripe 发生某种事件时,自动向我们的服务器发送回调请求。针对这些请求,我们需要编写特定的事件处理代码。
在 Node.js 的开发中,我们可以使用 npm 包 ts-stripe-webhook-middleware 来编写 Stripe webhook 处理代码。ts-stripe-webhook-middleware 使用 TypeScript 编写,可应用于 Express、Koa 等 Node.js 框架。
这篇文章将介绍如何使用 ts-stripe-webhook-middleware 编写处理 Stripe webhook 的代码,并提供相应的示例。
安装
我们可以使用 npm 来安装 ts-stripe-webhook-middleware:
npm install ts-stripe-webhook-middleware
使用
首先,我们需要创建一个 Express 或 Koa 应用,然后在应用中添加 ts-stripe-webhook-middleware:
-- -------------------- ---- ------- ------ ------- ---- ---------- ------ ---------- ---- -------------- ------ - ----------------------- - ---- ------------------------------- ----- --- - ---------- ----- ----------------------- - --- ------------------------- ------- --------------------------- --- --------------------------- -------- ------------------ ----- ---- ----- -- - ----------------------------------- ---- ------ -- ----- ---- ---- ----- -- - -------------------- -------- ------ ---------- ----- -------------------- -- --
在代码中,我们创建了一个 Express 应用,并添加了 bodyParser 中间件,以便能够在请求中获取 JSON 数据。然后,我们创建了一个 StripeWebhookMiddleware 对象,将其添加为 Express 应用的中间件,指定了自己的 Stripe webhook 密钥。
在中间件的第一个处理函数中,我们使用 handle 方法处理 Stripe webhook 请求。如果出现错误,我们将返回 400 状态码并记录错误信息。
现在,我们已经成功地创建了一个处理 Stripe webhook 的 Express 应用。接下来,我们需要编写事件处理代码。
事件处理代码
ts-stripe-webhook-middleware 提供了一个方便的事件处理器构建器,我们可以使用它来创建事件处理器。以下是一个处理 invoice.created
事件的示例:
import { StripeWebhookHandlerBuilder } from 'ts-stripe-webhook-middleware'; const handler = new StripeWebhookHandlerBuilder() .add('invoice.created', async (event) => { console.log('Received a new invoice:', event.data.object); // TODO: Handle the invoice.created event }) .build();
在代码中,我们使用了 StripeWebhookHandlerBuilder 类创建了一个事件处理器。调用 add 方法来添加一个事件类型,传递处理函数作为第二个参数。处理函数可以是普通函数或 async 函数。
在上面的示例中,我们添加了一个处理 invoice.created
事件的处理函数。每当 Stripe 发送一个 invoice.created
事件时,handler 对象就会调用该处理函数。 在处理函数中,我们可以访问事件数据,使用 console.log 打印日志,或完成任何其他任务。
同样,我们可以添加更多的事件处理函数处理其他类型的事件。
完整示例
下面是一个完整的示例,展示了如何使用 ts-stripe-webhook-middleware 处理 Stripe webhook:
-- -------------------- ---- ------- ------ ------- ---- ---------- ------ ---------- ---- -------------- ------ - ------------------------ --------------------------- - ---- ------------------------------- ----- --- - ---------- ----- ----------------------- - --- ------------------------- ------- --------------------------- --- ----- ------- - --- ----------------------------- ----------------------- ----- ------- -- - --------------------- - --- ---------- ------------------- -- ----- ------ --- --------------- ----- -- --------- --------------------------- -------- ------------------ ----- ---- ----- -- - ----------------------------------- ---- ------ -- ----- ---- ---- ----- -- - -------------------- -------- ------ ---------- ----- -------------------- -- -- ---------------- -- -- - ---------------------- -- ---- ---------- ---
在上面的示例中,我们创建了一个 Express 应用程序,并创建了一个 StripeWebhookMiddleware 对象。然后,我们使用 StripeWebhookHandlerBuilder 类创建了一个事件处理程序。在应用程序中使用 bodyParser 中间件,我们将 StripeWebhookMiddleware 添加为 Express 应用程序的中间件,并指定用于处理 webhook 的 URL。最后,我们启动服务器并监听端口 3000。
结论
在本文中,我们介绍如何使用 ts-stripe-webhook-middleware 生成 Stripe webhook 的代码。我们首先安装了该包,然后创建了一个 Express 或 Koa 应用。接着,我们使用 StripeWebhookMiddleware 类,将其添加为应用程序的中间件,然后使用 StripeWebhookHandlerBuilder 类创建了事件处理代码。
这种方法可以让我们轻松地编写处理 Stripe webhook 的事件代码,大大节省开发时间。希望这篇文章对您有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005543281e8991b448d1887