How vishnuweb-a/firnvia works
Firvanra is a hosted-payment checkout demonstration: shoppers browse services and ebooks, build a cart, create an order, choose a gateway, complete hosted payment, and view order status. The backend derives and signs payment data, verifies provider callbacks before changing order state, and keeps orders in process memory rather than durable storage. The README documents AirPay, AirPay 2, SabPaisa, PayU, and HDFC; sampled code shows the main routing and several provider integrations. Some frontend page and gateway internals were not excerpted, so their connections are shown only where the README or source index supports them.
Main entry points: api.js API Client · server.js Express API · payment.js Payment API · orders.js Orders API
Components 31
Storefront
- React App
frontend/src/main.jsx - Storefront Home
frontend/src/pages/Home.jsx - Product Catalog
backend/data/products.js - Cart State
frontend/src/context/CartContext.jsx - Checkout
frontend/src/pages/Checkout.jsx - Payment Navigation
frontend/src/utils/payment.js - API Client
frontend/src/api.js - Order Status
frontend/src/pages/OrderStatus.jsx
Order Management
- Express API
backend/server.js - Products API
backend/routes/products.js - Orders API
backend/routes/orders.js - In-Memory Orders
backend/routes/orders.js
Payment Integrations
- Payment API
backend/routes/payment.js - AirPay
backend/services/airpay.js - AirPay 2 Routes
backend/routes/airpay2.js - AirPay 2 Service
backend/services/airpay2.js - SabPaisa Service
backend/services/sabpaisa.js - PayU Service
backend/services/payu.js - HDFC Routes
backend/routes/hdfc.js - HDFC Service
backend/services/hdfc.js - KKChat Forwarder
backend/services/kkchatForwarder.js - Forwarding Diagnostics
backend/services/kkchatDiagnostics.js - Field Adapter
backend/services/kkchatFieldAdapter.js
Contact And Policies
- Contact API
backend/routes/contact.js - Contact Form
frontend/src/components/Contact.jsx - Legal Pages
frontend/src/pages/TermsAndConditions.jsx - Legal Layout
frontend/src/components/LegalLayout.jsx - Company Details
frontend/src/legal/company.js
Other components
- Shopper Browser
- Payment Providers
- KKChat Endpoint
Connections 44
- Shopper Browser → React App: uses
README.md - React App → Storefront Home: routes to
frontend/src/main.jsx - React App → Checkout: routes to
frontend/src/main.jsx - React App → Order Status: routes to
frontend/src/main.jsx - Storefront Home → Product Catalog: loads products
frontend/src/pages/Home.jsx - Storefront Home → Contact Form: renders
frontend/src/pages/Home.jsx - Storefront Home → API Client: requests contact
frontend/src/pages/Home.jsx - Checkout → Cart State: reads cart
frontend/src/pages/Checkout.jsx - Checkout → API Client: creates order
frontend/src/pages/Checkout.jsx - Checkout → Payment Navigation: handles response
frontend/src/pages/Checkout.jsx - API Client → Express API: calls API
frontend/src/api.js - API Client → Products API: requests products
frontend/src/api.js - API Client → Orders API: creates and reads
frontend/src/api.js - API Client → Payment API: initiates payment
frontend/src/api.js - API Client → Contact API: submits contact
frontend/src/api.js - Express API → Products API: mounts
backend/server.js - Express API → Orders API: mounts
backend/server.js - Express API → Payment API: mounts
backend/server.js - Express API → AirPay 2 Routes: mounts
backend/server.js - Express API → HDFC Routes: mounts
backend/server.js - Express API → Contact API: mounts
backend/server.js - Products API → Product Catalog: reads catalog
backend/routes/products.js - Orders API → Product Catalog: validates items
backend/routes/orders.js - Orders API → In-Memory Orders: stores orders
backend/routes/orders.js - Order Status → API Client: fetches status
frontend/src/pages/OrderStatus.jsx - Orders API → HDFC Service: refreshes pending
backend/routes/orders.js - Payment API → In-Memory Orders: reads and updates
backend/routes/payment.js - Payment API → AirPay: initiates and verifies
backend/routes/payment.js - Payment API → SabPaisa Service: initiates and enquires
backend/routes/payment.js - Payment API → PayU Service: builds and verifies
backend/routes/payment.js - Payment API → Payment Providers: contacts gateways
README.md - AirPay 2 Routes → In-Memory Orders: uses orders
backend/routes/airpay2.js - AirPay 2 Routes → AirPay 2 Service: delegates to
backend/routes/airpay2.js - AirPay 2 Routes → KKChat Forwarder: forwards verified data
backend/routes/airpay2.js - AirPay 2 Service → Payment Providers: integrates with
README.md - HDFC Routes → HDFC Service: delegates to
backend/routes/hdfc.js - HDFC Routes → In-Memory Orders: uses orders
backend/routes/hdfc.js - HDFC Service → Payment Providers: creates sessions and checks
backend/services/hdfc.js - KKChat Forwarder → Forwarding Diagnostics: uses diagnostics
backend/services/kkchatForwarder.js - KKChat Forwarder → Field Adapter: uses field adapter
backend/services/kkchatForwarder.js - KKChat Forwarder → KKChat Endpoint: forwards payload
- Contact Form → API Client: submits form
frontend/src/components/Contact.jsx - Legal Pages → Legal Layout: uses layout
frontend/src/pages/TermsAndConditions.jsx - Legal Layout → Company Details: renders details
frontend/src/components/LegalLayout.jsx