问题描述
我正在尝试从index.js文件中的'/ razorpay'路由获取响应,并在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: '[email protected]',phone_number: '9899999999'
}
}
const paymentObject = new window.Razorpay(options);
paymentObject.open();
}
解决方法
这是CORS的问题。确保在服务器端启用了cors。
由于您使用的是Express,因此这里是示例代码
首先安装cors: npm install 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')
})