Commit Graph

14 Commits

Author SHA1 Message Date
Claude
b145749ab2 🔒 Implement comprehensive wallet security improvements
Critical Security Fixes:
- Fix CSRF webhook vulnerability with IP validation and rate limiting
- Secure debug endpoint with superuser-only access and data masking
- Add rate limiting to all payment operations (5/min for top-up, 10/min for success)
- Replace debug print statements with secure logging throughout

Security Enhancements:
- Stripe webhook IP whitelist validation with current IP ranges
- Content type and payload size validation for webhooks
- Comprehensive error handling with sanitized error messages
- Proper logging for all payment operations and security events

Payment System Improvements:
- Enhanced duplicate payment prevention
- Improved error handling and user feedback
- Secure session verification and balance updates
- Comprehensive audit trail for all payment operations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 02:15:22 +05:30
Claude
8e3cf451a1 Rebrand platform from NetCop Hub to Quantum Tasks AI
- Update domain configuration to quantumtaskai.com
- Change all page titles and branding across templates
- Update Stripe integration with new domain URLs
- Modify settings.py for new domain and cache prefixes
- Update project documentation and test files
- Change company name and contact information

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-25 22:21:45 +05:30
Claude
bfdef5b658 Refactor: Complete architecture reorganization with proper separation of concerns
BREAKING CHANGES:
- Move marketplace and agent discovery views from core to agent_base app
- Transfer all wallet functionality from core to dedicated wallet app
- Move Stripe webhook handling to wallet app for better organization
- Consolidate payment system logic under single responsibility

NEW STRUCTURE:
- core app: Platform pages only (homepage, pricing)
- agent_base app: Complete agent marketplace and catalog system
- wallet app: Full payment system with Stripe integration
- Individual agent apps: Unchanged, self-contained

IMPROVEMENTS:
- Clean URL namespacing (agent_base:marketplace, wallet:wallet)
- Template organization by app responsibility
- Removed deprecated CSS files (header.css)
- Added utility classes (.hidden)
- Updated all template references to new URL structure
- Comprehensive CLAUDE.md documentation updates

TECHNICAL CHANGES:
- Templates moved: marketplace.html, agent_detail.html → agent_base/
- Templates moved: wallet*.html → wallet/
- New files: agent_base/views.py, agent_base/urls.py, wallet/urls.py
- Updated main urls.py routing configuration
- Fixed Django system checks and namespace conflicts
- Verified all functionality with test suite

This reorganization follows Django best practices with single responsibility
principle, making the codebase more maintainable and scalable.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 20:03:53 +05:30
Claude
55214b1dc3 Fix NOT NULL constraint error for stripe_payment_intent_id
- Add stripe_payment_intent_id field to WalletTransaction model with proper defaults
- Update User.deduct_balance() to handle missing stripe_payment_intent_id gracefully
- Update User.add_balance() to handle missing stripe_payment_intent_id gracefully
- Use try-catch pattern to handle database schema mismatches
- Provide empty string as default for stripe_payment_intent_id when field is required

Issue: Database has NOT NULL constraint on stripe_payment_intent_id but code doesn't provide it
Solution: Add field with proper defaults and graceful error handling

Prevents: 'NOT NULL constraint failed: wallet_wallettransaction.stripe_payment_intent_id'
2025-07-16 23:01:31 +05:30
Claude
a6e9ca54d6 Fix security vulnerabilities and improve environment configuration
- Remove hardcoded SECRET_KEY from settings.py (now requires env var)
- Remove hardcoded database credentials from PostgreSQL config
- Add environment variable validation on Django startup
- Fix Stripe API key logging to prevent credential exposure
- Update .env.example to match Railway deployment structure
- Replace exposed API key in documentation with placeholder
- Maintain compatibility with existing Railway deployment setup

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 12:30:23 +05:30
Claude
8f56fcf35c Clean up payment system: improve descriptions and remove manual verification
 IMPROVEMENTS:
- Changed transaction description from 'Manual Verification' to clean 'Wallet top-up via Stripe'
- Removed confusing 'Verify Payment' button from wallet page
- Removed manual verification modal and JavaScript
- Removed manual verification URL endpoint
- Cleaner, more professional user interface

Result: Simple, automatic payment system that works seamlessly without user intervention.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 17:23:52 +05:30
Claude
4816e3040e Add comprehensive Stripe debugging system
🔍 DEBUGGING TOOLS ADDED:

1. Enhanced Payment Creation Logging:
   - Show API key, version, environment details
   - Log complete session creation response
   - Immediate session verification after creation
   - Detailed session metadata and status

2. Enhanced Payment Verification Logging:
   - Complete session retrieval details
   - Payment intent information if available
   - Full session status and metadata
   - Account verification details

3. Stripe Debug Endpoint (/stripe/debug/):
   - Test API connectivity
   - Show account information
   - List recent checkout sessions
   - List recent charges/payments
   - Identify which Stripe account we're connected to

This will help identify:
- If payments are going to wrong Stripe account
- If API keys are correct
- If sessions are being created properly
- Where the disconnect between payments and dashboard is happening

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 16:44:18 +05:30
Claude
e7d5ccf017 Implement webhook-free Stripe payment verification system
 SOLUTION: Bypass webhook delivery issues entirely

Changes:
- Enhanced checkout session creation with session_id in success URL
- Updated success page to automatically verify payments via Stripe API
- Added manual payment verification modal on wallet page
- Users can verify payments manually if automatic verification fails
- Real-time balance updates without depending on webhooks

Benefits:
- Instant payment confirmation upon return from Stripe
- No webhook delivery dependency
- Manual fallback for edge cases
- Better user experience with immediate feedback

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 16:11:35 +05:30
Claude
e30bea2de5 Fix Stripe API version mismatch for webhook delivery
Set stripe.api_version to '2025-05-28.basil' to match webhook
configuration. This ensures checkout sessions created by Django
will trigger webhook events properly.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 15:24:42 +05:30
Claude
8946bca8a6 Add session data debugging to webhook handler 2025-07-12 14:12:56 +05:30
Claude
90352982bf Add checkout session creation debugging 2025-07-12 13:42:59 +05:30
Claude
bf22a2d21a Add webhook debugging to troubleshoot payment balance updates
- Add detailed logging to Stripe webhook handler
- Log webhook events, user processing, and balance updates
- Help identify if webhooks are being received and processed correctly
- Temporary debugging to resolve wallet balance not updating after payment

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 12:49:37 +05:30
Claude
f7cdad4273 Replace hardcoded Stripe payment links with dynamic checkout sessions
- Remove hardcoded payment link URLs that were environment-specific
- Implement dynamic Stripe checkout session creation with automatic domain detection
- Add success/cancel URLs that automatically work on localhost and Railway
- Update StripePaymentHandler to use request.build_absolute_uri() for proper URL generation
- Add wallet top-up success and cancel views with proper user feedback
- This fixes the issue where payment success redirected to old/wrong URLs

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 12:25:51 +05:30
Claude
67ba2de335 first working 2025-07-09 02:15:35 +05:30