【发布时间】:2022-07-19 06:31:05
【问题描述】:
我正在使用 firebase 创建一个 react-app,我想在我的项目中使用条带支付网关,但我无法使用它,因为它给了我一个错误。每当我通过 axios 调用发布请求时,我都会收到此错误 POST: http://localhost:4242/payments 404 not found 。
这是我的条纹结帐,
<StripeCheckout stripeKey="PUBLIC_KE" token={handleToken} billingAddress shippingAddress amount={getBasketTotal(basket)} ></StripeCheckout>
async function handleToken(token) {
console.log(token);
const totalAmount = getBasketTotal(basket);
const cart = { name: "All products", totalAmount };
const response = await axios.post("http://localhost:4242/payments", {
token,
cart,
});
let { status } = response.data;
console.log(response);
if (status === "success") {
navigate("/");
toast.success("Your Order has been Placed Successfully!", {});
} else {
alert("Something went wrong!");
navigate("/");
// toast.error("Something went wrong!", {});
}
}
app.post("/payments", (req, res) => {
let error;
let status;
try {
const { cart, token } = req.body;
const customer = await stripe.customers.create({
email: token.email,
source: token.id,
});
const key = uuidv4();
const charge = await stripe.charges.create(
{
amount: cart.totalAmount * 100,
currency: "usd",
customer: customer.id,
receipt_email: token.email,
description: "Product request Successfully recieved",
shipping: {
name: token.card.name,
address: {
line1: token.card.address_line1,
line2: token.card.address_line2,
city: token.card.address_city,
country: token.card.address_country,
postal: token.card.address_zip,
},
},
},
{
idempotencyKey: key,
}
);
status = "success";
} catch (error) {
console.log(error);
status = "error";
}
res.json({ status });
});
app.listen(4242, () => console.log("Running on 4242"));
任何支持都会有所帮助。
【问题讨论】:
-
你是怎么运行这个的?您确定您的服务器实际上正在侦听端口 4242 并响应 /payments 路由吗?你可以用 curl/postman 手动点击它吗?
标签: reactjs firebase axios stripe-payments http-status-code-404