1.1.2 • Published 5 months ago
@sastatesla/payment-gateway-sdk v1.1.2
PaymentManager SDK
A unified interface for integrating multiple payment providers (e.g., Razorpay, Cashfree) in your Node.js application.
Features
- Plug-and-play support for multiple payment providers.
- Consistent API for charging, refunding, querying payment and settlement status, and listing payments.
- Easy to extend for other providers (just implement the
PaymentProviderabstract class). - Input validation and error normalization.
Installation
npm install @sastatesla/payment-gateway-sdkUsage
1. Initialize the SDK in your code:
import {PaymentManager} from "@sastatesla/payment-gateway-sdk"2. Configure Provider
Prepare your provider config. For example, for Razorpay:
const payment = PaymentManager.init({
provider: "razorpay",
config: {
keyId: "YOUR_KEY_ID",
keySecret: "YOUR_SECRET"
}
})Or for Cashfree:
const payment = PaymentManager.init({
provider: "cashfree",
config: {
keyId: "YOUR_KEY_ID",
keySecret: "YOUR_SECRET",
environment: "TEST"
}
})3. Charging a User
// Usage
const paymentResult = await payment.charge(
amount: 500,
currency: "INR",
source: "customer_abc123",
metadata: { orderId: "order_001" }
);
console.log("Charge Result:", paymentResult);4. Refunding a Payment
const refundResult = await paymentManager.refund(
transactionId: "PAYMENT_ID",
)
console.log(refundResult);5. Checking Payment Status
const paymentStatus = await paymentManager.getPaymentStatus("PAYMENT_ID")
console.log(paymentStatus)6. Listing User Payments
const userPayments = await paymentManager.listUserPayments("USER123", {
fromDate: "2024-01-01",
toDate: "2024-12-31",
status: "captured"
})
console.log(userPayments)7. Listing All Payments
const allPayments = await paymentManager.listAllPayments({
fromDate: "2024-01-01",
toDate: "2024-12-31"
})
console.log(allPayments)8. Getting Settlement Details
const settlementDetails =
await paymentManager.getSettlementDetails("SETTLEMENT_ID")
console.log(settlementDetails)9. Checking Refund Status
const refundStatus = await paymentManager.getRefundStatus("REFUND_ID")
console.log(refundStatus)Extending for New Providers
Implement
PaymentProviderAbstract Class
Create a new provider class extendingPaymentProviderand implement all required abstract methods.Add Switch Case in
PaymentManager
Add a case for your new provider in thePaymentManagerconstructor.
Error Handling
All errors are normalized using the APIError utility and thrown as exceptions.
Catch them in your application to handle gracefully.
License
MIT
Contributions
Issues and PRs welcome!