#javascript #node.js #razorpay
#javascript #node.js #razorpay
Вопрос:
Я пытаюсь получить ответ от маршрута ‘/ razorpay’ в моем index.js файл и использовать его в displayRazorpay() . Для этого я использую выборку, но она показывает запрещенную ошибку 403. Кто-нибудь может помочь? Я прикрепил свой маршрут ‘/ razorpay’ и функцию displayRazorpay() ниже. Я новичок в node.js , поэтому любая помощь приветствуется!
router.post('/razorpay', async function(req,res,next){
if(!req.session.cart){
return res.redirect('/shopping-cart');
}
var cart = new Cart(req.session.cart);
const payment_capture = 1;
const amount = cart.totalPrice;
const currency = 'INR';
const options = {
amount: amount * 100,
currency,
receipt: shortid.generate(),
payment_capture,
}
try {
const response = await razorpay.orders.create(options);
console.log(response);
res.json({
id: response.id,
currency: response.currency,
amount: response.amount
});
} catch (error) {
console.log(error);
}
});
async function displayRazorpay() {
const data = await fetch('/razorpay', {method:'POST'}).then((t) =>
t.json()
);
console.log(data);
const options = {
key: 'rzp_test_2eJE3rP3gEWqze',
amount: 400,
order_id: data.id,
name: 'Donation',
description: 'Thank you for nothing. Please give us some money',
image: '/images/modiLogo3.png',
handler: function (response) {
alert(response.razorpay_payment_id);
alert(response.razorpay_order_id);
alert(response.razorpay_signature);
},
prefill: {
email: 'sdfdsjfh2@ndsfdf.com',
phone_number: '9899999999'
}
}
const paymentObject = new window.Razorpay(options);
paymentObject.open();
}
Ответ №1:
Это проблема CORS. Убедитесь, что вы включили cors на стороне вашего сервера.
Поскольку вы используете express, вот пример кода
Сначала установите cors: npm устанавливает cors
var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
app.get('/products/:id', function (req, res, next) {
res.json({msg: 'This is CORS-enabled for all origins!'})
})
app.listen(80, function () {
console.log('CORS-enabled web server listening on port 80')
})
Комментарии:
1. Я попробовал этот метод. Это работает, если я использую запрос GET в выборке. Это не сработает, если я использую POST-запрос в выборке. Тогда я ошибаюсь, используя POST здесь?