【发布时间】:2022-01-18 06:31:03
【问题描述】:
由于此错误,我没有收到邮递员的任何回复。我试图添加 app.use(express.json());在 index.js 但仍然无法正常工作。关于如何解决这个问题的任何想法?
const stripeAPI = require('../stripe');
async function createCheckoutsession(res, req) {
const domainUrl = process.env.WEB_APP_URL;
const { line_items, customer_email } = req.body;
if (!line_items || !customer_email) {
return res.status(400).json({ error: 'missing required session paramaters' });
}
let session;
try {
session = await stripeAPI.checkout.sessions.create({
payment_method_types: ['card'],
mode: 'payment',
line_items,
customer_email,
success_url: `${domainUrl}/success?session_id={CHECKOUT_SESSION_ID}`,
cancel_url: `${domainUrl}/canceled`,
shipping_address_collection: { allowed_countries: ['GB', 'US'] }
});
res.status(200).json({ sessionId: session.id, });
} catch (error) {
console.log(error);
res.status(400).json({ error: 'an error occurred, unable to create session' });
}
}
module.exports = createCheckoutsession;
(index.js)
const express = require('express'); const cors = require('cors');
require('dotenv').config({ path: './.env' });
const createCheckoutSession = require('./api//checkout');
const app = express();
常量端口 = 8080;
app.use(express.json());
app.use(cors({origin: true}));
app.get('/', (req, res) => res.send('HELLO WORLD!'));
app.post('/create-checkout-session', createCheckoutSession);
app.listen(port, () => console.log('服务器监听端口', port));
(stripe.js)
const stripeAPI = require('stripe')(process.env.SECRET_KEY);
module.exports = stripeAPI;enter code here
【问题讨论】:
-
{ "line_items": [ { "quantity": 1, "price_data": { "currency": "usd", "unit_amount": 2800, "product_data": { "name": " Cumulus", "description": "Light as air", "images": [ "i.ibb.co/NtpJ0XQ/cumulus-olive.png" ] } } ], "customer_email": "hellothere@gmail.com" }
-
嗨菲尔,我已经上传了邮递员的截图
-
好的,一切看起来都很好。你能说明你在哪里添加
app.use(express.json())以及你在哪里将createCheckoutsession绑定到/create-checkout-session路径吗?请注意,您的 JSON 中间件应该在之前app.post("/create-checkout-session", createCheckoutsession)注册(或者您已经设置了该处理程序) -
app.use(express.json()) 在 index.js 中,我在这里更新了它,以便您可以看到.. 它在 app.post("/create-checkout -会话”