Ad

NodeJS, ExpressJS, Stripe - Error: Parse Error - On Payment

Error

  • Works fine on: Windows (Windows 10, Node v13.10.1, NPM 6.14.4)
  • Error on: Linux (Ubuntu 18.04, Node v12.16.2, NPM 6.14.4)

This happens when I pay for something using the Linux web server using Stripe live keys, or test keys. It works fine when I use test keys, on my local Windows PC.

router.post('/stripe-webhook', async(req, res) => {
  try {
    // TODO: add better validation
    if (!req.headers['stripe-signature']) return;

    const id = req.body.data.object.metadata.id;
    if (req.body.type === 'checkout.session.completed') {
      await giveUserPlus(id);
      return res.json({ success: true });
    }
    res.json({ received: true });
  } catch (error) { res.status(400).send(error); } 
});

Live Test

https://github.com/theADAMJR/2PG/blob/master/api/routes/api-routes.ts

Ad

Answer

Fix: I changed the NodeJS version to fix it.

Ad
source: stackoverflow.com
Ad