javascript - cannot POST /payment (Node.js and Stripe) -
javascript - cannot POST /payment (Node.js and Stripe) -
i've embedded stripes checkout in file called payment.ejs
<form action="" method="post"> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="pk_test_odw7ojfvhlrjegfy0ppwzwee" data-amount="2000" data-name="demo site" data-description="2 widgets ($20.00)" data-image="/128x128.png"> </script> </form> i visit page , come in in credit card gets accepted. however, error
cannot post /payment
in app.js have
app.post('payment', function(req, res){ //stripe console.log('posted') var stripetoken = req.body.stripetoken; var charge = stripe.charges.create({ amount: 1000, // amount in cents, 1 time again currency: "usd", card: stripetoken, description: "payinguser@example.com" }, function(err, charge) { if (err && err.type === 'stripecarderror') { console.log("card declined"); res.send('error') } else { console.log("card accepted"); res.send('ok') } }); }); as per instructions. don't see whats wrong here. ideas?
routes should include preceding /:
app.post('/payment', function (req, res) { // ^ // ... }); expressjs' routing based in part on matching path of requested url, includes each / "root" (after hostname , port). other part method.
app.use(function (req, res, next) { console.log(req.method); // "post" console.log(req.path); // "/payment" // ^ next(); }); note: whether trailing / or lack of required match depends on whether strict routing or router's strict option enabled.
enable strict routing, default "/foo" , "/foo/" treated same router.
javascript node.js stripe-payments
Comments
Post a Comment