Version 1.6.0

This commit is contained in:
IGNY8 VPS (Salman)
2026-01-08 00:36:32 +00:00
parent 7ad1f6bdff
commit 3028db5197
7 changed files with 855 additions and 4450 deletions

View File

@@ -1,7 +1,7 @@
# IGNY8 Change Log
**Current Version:** 1.4.0
**Last Updated:** January 6, 2026
**Current Version:** 1.6.0
**Last Updated:** January 8, 2026
---
@@ -9,6 +9,7 @@
| Version | Date | Summary |
|---------|------|---------|
| 1.6.0 | Jan 8, 2026 | **Major** - Payment System Refactor Complete: Stripe, PayPal, Bank Transfer flows finalized; Simplified signup (no payment redirect); Country-based payment rules; Webhook security; PDF invoices |
| 1.5.0 | *Planned* | Image Generation System Overhaul, Quality Tier Refinements, Credit Service Enhancements |
| 1.4.0 | Jan 5, 2026 | **Major** - AI Model Architecture Overhaul, IntegrationProvider Model, AIModelConfig with Credit System, SystemAISettings, Django Admin Reorganization |
| 1.3.2 | Jan 3, 2026 | **Major** - Publishing Scheduler, Onboarding Wizard, Content Calendar, Design System Consolidation, Site Dashboard redesign |
@@ -36,6 +37,173 @@
---
## v1.6.0 - January 8, 2026
### Major Release: Payment System Refactor Complete
This release completes the comprehensive refactoring of the payment system, including all three payment gateways (Stripe, PayPal, Bank Transfer), simplified signup flow, and enhanced security.
---
### 💳 Payment Gateway Integration
**Stripe Integration:**
- Subscription checkout sessions
- Credit package checkout
- Billing portal for subscription management
- Webhook processing with idempotency
- Signature verification enforced
**PayPal Integration:**
- One-time orders for credit packages
- Subscription orders for plans
- Order capture flow
- Webhook signature verification enabled
- Amount validation on capture
**Bank Transfer (Pakistan):**
- Manual payment submission
- File upload for payment proof
- Admin approval workflow
- Email notifications on approval/rejection
---
### 🔄 Simplified Signup Flow
**Before:** Payment gateway redirect from signup page
**After:** Signup creates account only, payment on /account/plans
**Changes:**
- Removed Stripe/PayPal checkout creation from registration
- Account created with `status='pending_payment'` for paid plans
- User redirected to Plans & Billing page to complete payment
- Single `/signup` route (removed `/signup/pk` variant)
---
### 🌍 Country-Based Payment Rules
**Global Users (non-PK):**
- Stripe (Credit/Debit Card) ✅
- PayPal ✅
- Bank Transfer ❌
**Pakistan Users (PK):**
- Stripe (Credit/Debit Card) ✅
- PayPal ❌ (not available in Pakistan)
- Bank Transfer ✅
---
### 🎨 Frontend Components
**New Components:**
- `PendingPaymentView` - Full-page payment interface for new users
- `BankTransferForm` - Bank transfer submission with proof upload
- `PaymentGatewaySelector` - Gateway selection UI
**Updated Components:**
- `PlansAndBillingPage` - Conditional rendering based on user state
- `PendingPaymentBanner` - Alert for pending payments
- `PayInvoiceModal` - Invoice payment modal
---
### 🔒 Security Enhancements
- **Webhook Idempotency:** `WebhookEvent` model tracks processed events
- **PayPal Signature Verification:** Enabled and enforced
- **Stripe Signature Verification:** Already enforced
- **Amount Validation:** PayPal capture validates amount matches expected
- **Manual Reference Uniqueness:** Database constraint prevents duplicates
---
### 📄 PDF Invoice Generation
- Added `reportlab` for professional PDF generation
- Logo integration from frontend assets
- Proper formatting (no HTML tags in output)
- Clean layout with company info, line items, totals
- Payment information section for paid invoices
---
### 🗄️ Database Changes
**New Migration:** `0029_add_webhook_event_and_manual_reference_constraint`
**New Model:** `WebhookEvent`
```python
class WebhookEvent(models.Model):
provider = models.CharField(choices=['stripe', 'paypal'])
event_id = models.CharField(max_length=255)
event_type = models.CharField(max_length=100)
payload = models.JSONField()
status = models.CharField() # pending, processed, failed
processed_at = models.DateTimeField(null=True)
```
**Updated Model:** `Payment`
- Added unique constraint on `manual_reference`
---
### 📚 Documentation
**Consolidated:** Three payment documentation files merged into one:
- `PAYMENT-SYSTEM-ARCHITECTURE.md` → Removed
- `PAYMENT-SYSTEM-AUDIT-REPORT.md` → Removed
- `PAYMENT-SYSTEM-REFACTOR-PLAN.md` → Removed
**New:** `90-REFERENCE/PAYMENT-SYSTEM.md`
- Complete payment system documentation
- All flows, endpoints, models in one file
- Current state only (no planning artifacts)
---
### 📦 Backend Files Changed
| File | Changes |
|------|---------|
| `billing/views/stripe_views.py` | Idempotency, enhanced logging |
| `billing/views/paypal_views.py` | Signature verification, amount validation, idempotency |
| `billing/views/refund_views.py` | Fixed imports |
| `billing/services/stripe_service.py` | Full service implementation |
| `billing/services/paypal_service.py` | Full service implementation |
| `billing/services/pdf_service.py` | Professional PDF generation with logo |
| `billing/services/email_service.py` | Payment notification emails |
| `billing/models.py` | WebhookEvent model, payment method choices |
| `auth/serializers.py` | Removed checkout creation from registration |
| `auth/urls.py` | Added country list endpoint |
---
### 📱 Frontend Files Changed
| File | Changes |
|------|---------|
| `SignUpFormUnified.tsx` | Simplified, removed payment selection |
| `PlansAndBillingPage.tsx` | Conditional views, state handling |
| `PendingPaymentView.tsx` | New component for new user payments |
| `BankTransferForm.tsx` | New component for bank transfers |
| `PaymentGatewaySelector.tsx` | New component for gateway selection |
| `billing.api.ts` | Country-based gateway availability |
| `authStore.ts` | Removed checkout URL handling |
---
### 🗑️ Removed
- `/signup/pk` route (consolidated into `/signup`)
- `SignUpPK.tsx` page component
- Payment gateway redirect from signup
- Three separate payment documentation files
---
## v1.5.0 - Planned
### Upcoming Release: Image Generation System Overhaul