【发布时间】:2021-02-24 16:41:21
【问题描述】:
大家好,我正在实施两个支付网关,即 Paypal 和 Razorpay。单独使用 Paypal 效果很好,我想在满足条件时也包括 Razorpay。但我不确定将代码放在哪里以及如何按条件对路线进行分类。有没有办法解决这个问题?谢谢
服务器.js
app.get('/api/config/paypal',(req,res) => {
res.send(process.env.PAYPAL_CLIENT_ID)
})
app.get('/api/config/paytm',(req,res) => {
//What do I put here?
})
orderController.js
const updateOrderToPaid = asyncHandler(async (req,res) => {
const order = await Order.findById(req.params.id)
if (order.paymentMethod === 'Paypal') { //Here is the condition
order.isPaid = true
order.paidAt = Date.now()
order.paymentResult = {
id: req.body.id,
status: req.body.status,
update_time: req.body.update_time,
email_address: req.body.payer.email_address
}
const updatedOrder = await order.save()
res.json(updatedOrder)
}else if(order.paymentMethod === 'Paytm'){ //Here is the condition
const options = {
amount: order.totalPrice,
currency,
receipt: Date.now(),
payment_capture
}
const razorpay = new Razorpay({
key_id: 'rzp_test_zsLrxBdRNh3GsJ',
key_secret: 'qyNk8fVmYi2lqOQC3SR9tjWC'
})
const response = await razorpay.orders.create(options)
order.isPaid = true
order.paidAt = Date.now()
order.paymentResult = {
id: response.id,
currency: response.currency,
receipt: response.receipt,
payment_capture: 1,
amount:response.amount
}
const updatedOrder = await order.save()
res.json(updatedOrder)
}else {
res.status(404)
throw new Error('Order not found')
}
})
orderRoutes.js
const protect = require('../middleware/auth')
router.route('/:id/pay').put(protect,updateOrderToPaid)
【问题讨论】:
标签: node.js reactjs express paypal razorpay