相关疑难解决方法(0)

在Nest.js中访问Stripe Webhook的原始正文

我需要从Nest.js应用程序中的Stripe访问webhook请求的原始正文。

示例之后,我将以下内容添加到具有需要原始主体的控制器方法的模块中。

function addRawBody(req, res, next) {
  req.setEncoding('utf8');

  let data = '';

  req.on('data', (chunk) => {
    data += chunk;
  });

  req.on('end', () => {
    req.rawBody = data;

    next();
  });
}

export class SubscriptionModule {
  configure(consumer: MiddlewareConsumer) {
    consumer
      .apply(addRawBody)
      .forRoutes('subscriptions/stripe');
  }
}
Run Code Online (Sandbox Code Playgroud)

在控制器中,我正在使用@Req() req然后req.rawBody获取原始主体。我需要原始主体,因为Stripe api的constructEvent正在使用它来验证请求。

问题是请求被卡住了。似乎没有为数据或结束事件调用req.on。因此next()在中间件中不被称为。

我也确实尝试过raw-body这里一样使用但是得到的结果几乎相同。在这种情况下,req.read总是错误的,所以我也被困在那里。

我想这是Nest.js的问题,但我不确定...

node.js express stripe-payments typescript nestjs

3
推荐指数
5
解决办法
923
查看次数

标签 统计

express ×1

nestjs ×1

node.js ×1

stripe-payments ×1

typescript ×1