57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
const Razorpay = require('razorpay');
|
|
|
|
// Initialize Razorpay client with your API key and secret
|
|
const razorpay = new Razorpay({
|
|
key_id: process.env.RAZORPAY_KEY_ID,
|
|
key_secret: process.env.RAZORPAY_KEY_SECRET
|
|
});
|
|
|
|
// Function to create an order using Razorpay API
|
|
const createRazorpayOrder = async (amount, recipid) => {
|
|
try {
|
|
const options = {
|
|
amount: amount * 100,
|
|
currency: 'INR',
|
|
receipt: recipid,
|
|
};
|
|
|
|
const order = await razorpay.orders.create(options);
|
|
return order;
|
|
} catch (error) {
|
|
console.error("Error creating Razorpay order:", error);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
// Function to process a refund using Razorpay API
|
|
const processRazorpayRefund = async (paymentId, amount) => {
|
|
try {
|
|
const refund = await razorpay.payments.refund(paymentId, { amount });
|
|
console.log("Refund processed successfully:", refund);
|
|
return refund;
|
|
} catch (error) {
|
|
console.error("Error processing Razorpay refund:", error);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
// Function to fetch details of an order using order ID
|
|
const getOrderDetails = async (orderId) => {
|
|
try {
|
|
const order = await razorpay.orders.fetch(orderId);
|
|
console.log("Order details:", order);
|
|
return order;
|
|
} catch (error) {
|
|
console.error("Error fetching order details:", error);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
|
|
// Export the function for creating Razorpay orders
|
|
module.exports = {
|
|
createRazorpayOrder,
|
|
processRazorpayRefund,
|
|
getOrderDetails
|
|
};
|