full st

full st

// --- Updated Payment Submission (with order info + email alert simulation) --- import React, { useState } from 'react'; import axios from 'axios';

function PaymentUPI() { const [name, setName] = useState(''); const [email, setEmail] = useState(''); const [product, setProduct] = useState(''); const [amount, setAmount] = useState(''); const [file, setFile] = useState(null); const [msg, setMsg] = useState('');

const handleSubmit = async (e) => { e.preventDefault(); const formData = new FormData(); formData.append('name', name); formData.append('email', email); formData.append('product', product); formData.append('amount', amount); formData.append('screenshot', file);

try {
  await axios.post('http://localhost:5000/api/payments', formData);
  setMsg('पेमेंट यशस्वी!');
} catch (err) {
  setMsg('त्रुटी आली. कृपया पुन्हा प्रयत्न करा.');
}

};

return (

QR कोड स्कॅन करून पेमेंट करा

UPI QR Code
<input type="text" placeholder="तुमचं नाव" className="border p-2 w-full" value={name} onChange={e => setName(e.target.value)} required /> <input type="email" placeholder="ई-मेल" className="border p-2 w-full" value={email} onChange={e => setEmail(e.target.value)} required /> <input type="text" placeholder="प्रॉडक्ट / ऑर्डर डिटेल्स" className="border p-2 w-full" value={product} onChange={e => setProduct(e.target.value)} required /> <input type="number" placeholder="रक्कम (₹)" className="border p-2 w-full" value={amount} onChange={e => setAmount(e.target.value)} required /> <input type="file" accept="image/*" onChange={e => setFile(e.target.files[0])} className="w-full" required />
{msg &&

{msg}

}
); }

export default PaymentUPI;

// --- Updated Backend server/index.js --- const Payment = mongoose.model('Payment', new mongoose.Schema({ name: String, email: String, product: String, amount: Number, screenshot: String, status: { type: String, default: 'Pending' }, createdAt: { type: Date, default: Date.now } }));

app.post('/api/payments', upload.single('screenshot'), async (req, res) => { const { name, email, product, amount } = req.body; const screenshot = req.file?.filename; const payment = await Payment.create({ name, email, product, amount, screenshot });

// (Simulated email alert) console.log(EMAIL SENT to ${email}: पेमेंट प्राप्त झाला! ₹${amount} - ${product});

res.json(payment); });

tapshil

tapshil

// --- Admin Panel for Viewing Payments ---
import React, { useEffect, useState } from 'react';
import axios from 'axios';

function AdminPayments() {
  const [payments, setPayments] = useState([]);

  useEffect(() => {
    axios.get('http://localhost:5000/api/payments')
      .then(res => setPayments(res.data))
      .catch(err => console.error('Error fetching payments', err));
  }, []);

  return (
    

पेमेंट तपशील

{payments.map(payment => (

नाव: {payment.name}

रक्कम: ₹{payment.amount}

screenshot

{new Date(payment.createdAt).toLocaleString()}

))}
); } export default AdminPayments; // --- Backend GET Route to fetch payments --- // Add to server/index.js: app.use('/uploads', express.static('uploads')); app.get('/api/payments', async (req, res) => { const payments = await Payment.find().sort({ createdAt: -1 }); res.json(payments); });

Admin Panel मध्ये आता सर्व पेमेंट सबमिशन्स दिसतील – नाव, रक्कम, आणि स्क्रीनशॉटसह.

ज्यावेळी तुम्ही याचा सर्व्हर चालू करता:

  • Screenshot uploads/ फोल्डरमध्ये सेव्ह होईल
  • http://localhost:5000/uploads/<filename> लिंक React मध्ये वापरली जाते

आता हवं असल्यास:

  • पेमेंट Status बदलण्याचा ऑप्शन (Pending/Approved)
  • ऑर्डरशी लिंक करणं
  • एक्सेलमध्ये एक्सपोर्ट

हे featuresही अ‍ॅड करून देतो. सांगा हवंय का?

payment tahshil

payment tahshil

// --- Admin Panel for Viewing Payments ---
import React, { useEffect, useState } from 'react';
import axios from 'axios';

function AdminPayments() {
  const [payments, setPayments] = useState([]);

  useEffect(() => {
    axios.get('http://localhost:5000/api/payments')
      .then(res => setPayments(res.data))
      .catch(err => console.error('Error fetching payments', err));
  }, []);

  return (
    

पेमेंट तपशील

{payments.map(payment => (

नाव: {payment.name}

रक्कम: ₹{payment.amount}

screenshot

{new Date(payment.createdAt).toLocaleString()}

))}
); } export default AdminPayments; // --- Backend GET Route to fetch payments --- // Add to server/index.js: app.use('/uploads', express.static('uploads')); app.get('/api/payments', async (req, res) => { const payments = await Payment.find().sort({ createdAt: -1 }); res.json(payments); });

Admin Panel मध्ये आता सर्व पेमेंट सबमिशन्स दिसतील – नाव, रक्कम, आणि स्क्रीनशॉटसह.

ज्यावेळी तुम्ही याचा सर्व्हर चालू करता:

  • Screenshot uploads/ फोल्डरमध्ये सेव्ह होईल
  • http://localhost:5000/uploads/<filename> लिंक React मध्ये वापरली जाते

आता हवं असल्यास:

  • पेमेंट Status बदलण्याचा ऑप्शन (Pending/Approved)
  • ऑर्डरशी लिंक करणं
  • एक्सेलमध्ये एक्सपोर्ट

हे featuresही अ‍ॅड करून देतो. सांगा हवंय का?

payment

payment

// --- Admin Panel for Viewing Payments ---
import React, { useEffect, useState } from 'react';
import axios from 'axios';

function AdminPayments() {
  const [payments, setPayments] = useState([]);

  useEffect(() => {
    axios.get('http://localhost:5000/api/payments')
      .then(res => setPayments(res.data))
      .catch(err => console.error('Error fetching payments', err));
  }, []);

  return (
    <div className="p-4 max-w-4xl mx-auto">
      <h2 className="text-2xl font-bold mb-4">पेमेंट तपशील</h2>
      <div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4">
        {payments.map(payment => (
          <div key={payment._id} className="border p-3 rounded-xl shadow">
            <p><strong>नाव:</strong> {payment.name}</p>
            <p><strong>रक्कम:</strong> ₹{payment.amount}</p>
            <img src={`http://localhost:5000/uploads/${payment.screenshot}`} alt="screenshot" className="w-full h-40 object-cover mt-2 rounded" />
            <p className="text-sm text

React आणि Node.js मध्ये UPI QR पेमेंट + Screenshot अपलोड सिस्टीम तयार केली आहे.
यूजर पेमेंट केल्यावर त्याचं नाव, रक्कम आणि स्क्रीनशॉट सबमिट करू शकतो, आणि admin त्याचं verification करू शकतो.

आता हे Live करायचं असेल तर:

uploads/ फोल्डर backend मध्ये तयार करा

React आणि Express सर्व्हर चालवा (npm start)

QR कोड /public मध्ये टाका (upi_qr_code.png)


आता पुढचं काय करू – Admin panel मध्ये हे पेमेंट्स दिसण्याचं फीचर हवंय का?

// --- Admin Panel for Viewing Payments ---
import React, { useEffect, useState } from 'react';
import axios from 'axios';

function AdminPayments() {
  const [payments, setPayments] = useState([]);

  useEffect(() => {
    axios.get('http://localhost:5000/api/payments')
      .then(res => setPayments(res.data))
      .catch(err => console.error('Error fetching payments', err));
  }, []);

  return (
    <div className="p-4 max-w-4xl mx-auto">
      <h2 className="text-2xl font-bold mb-4">पेमेंट तपशील</h2>
      <div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4">
        {payments.map(payment => (
          <div key={payment._id} className="border p-3 rounded-xl shadow">
            <p><strong>नाव:</strong> {payment.name}</p>
            <p><strong>रक्कम:</strong> ₹{payment.amount}</p>
            <img src={`http://localhost:5000/uploads/${payment.screenshot}`} alt="screenshot" className="w-full h-40 object-cover mt-2 rounded" />
            <p className="text-sm text

React आणि Node.js मध्ये UPI QR पेमेंट + Screenshot अपलोड सिस्टीम तयार केली आहे.
यूजर पेमेंट केल्यावर त्याचं नाव, रक्कम आणि स्क्रीनशॉट सबमिट करू शकतो, आणि admin त्याचं verification करू शकतो.

आता हे Live करायचं असेल तर:

uploads/ फोल्डर backend मध्ये तयार करा

React आणि Express सर्व्हर चालवा (npm start)

QR कोड /public मध्ये टाका (upi_qr_code.png)


आता पुढचं काय करू – Admin panel मध्ये हे पेमेंट्स दिसण्याचं फीचर हवंय का?

// --- Admin Panel for Viewing Payments ---
import React, { useEffect, useState } from 'react';
import axios from 'axios';

function AdminPayments() {
  const [payments, setPayments] = useState([]);

  useEffect(() => {
    axios.get('http://localhost:5000/api/payments')
      .then(res => setPayments(res.data))
      .catch(err => console.error('Error fetching payments', err));
  }, []);

  return (
    

पेमेंट तपशील

{payments.map(payment => (

नाव: {payment.name}

रक्कम: ₹{payment.amount}

screenshot

{new Date(payment.createdAt).toLocaleString()}

))}
); } export default AdminPayments; // --- Backend GET Route to fetch payments --- // Add to server/index.js: app.use('/uploads', express.static('uploads')); app.get('/api/payments', async (req, res) => { const payments = await Payment.find().sort({ createdAt: -1 }); res.json(payments); });

Admin Panel मध्ये आता सर्व पेमेंट सबमिशन्स दिसतील – नाव, रक्कम, आणि स्क्रीनशॉटसह.

ज्यावेळी तुम्ही याचा सर्व्हर चालू करता:

  • Screenshot uploads/ फोल्डरमध्ये सेव्ह होईल
  • http://localhost:5000/uploads/<filename> लिंक React मध्ये वापरली जाते

आता हवं असल्यास:

  • पेमेंट Status बदलण्याचा ऑप्शन (Pending/Approved)
  • ऑर्डरशी लिंक करणं
  • एक्सेलमध्ये एक्सपोर्ट

हे featuresही अ‍ॅड करून देतो. सांगा हवंय का?



World USB OTG Adapter (Pack of 1)

World USB OTG Adapter (Pack of 1)


Specifications
Brand
  • Janata
Model Number
  • 12V 2A Adaptor, DC Power Supply Charger Ac Input 100-240V Dc Output 12Volt 2Amps For Router,Modem,LED Strip CCTV Gaming Charger (Black, Cable Included)
Brand Color
  • Black
Port Type
  • USB
Number of Connectors
  • 1
Compatible Male Connectors
  • Mobile
Compatible Female Connectors
  • Keyboard
Color
  • Black
Number of Adapters
  • 1
More Details
  • Generic Name
    • OTG Adapter
















Mens Casual Shoe

Mens Casual Shoe



Category:Mens Casual
Color:Black
Upper:Synthetic Foam
Style:Sneaker
Sole:Air Mix
Made in:India
Size:10
Easy Return Available in Case Of any Issue
Proof Of Safe Delivery Free

Men Sport Shoes

Men Sport Shoes


 

Available Set Sizes

8/1, 9/1

Product Description:--

Category:Men Sports

Color:Orange

Upper:Synthetic Foam

Lining:Synthetic Mess

Insock:Synthetic Mess

Heel:Rubber Heel

Style:Running Sport

Sole:Air Mix

Made in:India

 
Copyright © 2015. SP MART
Blogger Templates