首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用无服务器函数获取原始正文?

如何使用无服务器函数获取原始正文?
EN

Stack Overflow用户
提问于 2020-01-02 23:51:05
回答 1查看 648关注 0票数 8

我现在正在从Express迁移到Zeit上的无服务器功能。

当使用webhook docs时,我可以通过bodyParser获得它,但是它如何在无服务器函数上工作呢?如何接收字符串格式的body以验证条带签名?

支持团队将我重定向到这个documentation link,我很困惑,据我所知,我必须将text/plain传递到请求标头中,但我无法控制它,因为条纹是发送webhook的那个人。

代码语言:javascript
复制
export default async (req, res) => {
    let sig = req.headers["stripe-signature"];
    let rawBody = req.body;
    let event = stripe.webhooks.constructEvent(rawBody, sig, process.env.STRIPE_SIGNING_SECRET);
    ...
}

在我的函数中,我接收req.body作为一个对象,我如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-24 11:21:06

下面的代码片段适用于我(从这个source修改):

代码语言:javascript
复制
const endpointSecret = process.env.STRIPE_SIGNING_SECRET;

export default async (req, res) => {
  const sig = req.headers['stripe-signature'];
  let event;
  let bodyChunks = [];

  req
    .on('data', chunk => bodyChunks.push(chunk))
    .on('end', async () => {
      const rawBody = Buffer.concat(bodyChunks).toString('utf8');

      try {
        event = stripe.webhooks.constructEvent(rawBody, sig, endpointSecret);
      } catch (err) {
        return res.status(400).send(`Webhook Error: ${err.message}`);
      }

      // Handle event here
      ...

      // Return a response to acknowledge receipt of the event
      res.json({ received: true });
    });
};

export const config = {
  api: {
    bodyParser: false,
  },
};
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59566185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档