- Implemented the software tool page with user interface for connecting devices. - Added functionality to display connection status and software upgrade options. - Included a help modal with step-by-step instructions for users. - Integrated error handling and user permission checks. - Enhanced user experience with dynamic content updates and visual feedback.
104 lines
3.5 KiB
Markdown
104 lines
3.5 KiB
Markdown
# Payment Integration Implementation Summary
|
|
|
|
## Overview
|
|
Complete payment integration for software upgrades using existing ecommerce infrastructure (transaction API, invoice API, PHPMailer, DomPDF).
|
|
|
|
## New Files to Create
|
|
|
|
### 1. `/webhook_mollie.php` (Root directory)
|
|
**Purpose**: Mollie webhook handler specifically for software upgrades
|
|
**Based on**: Existing webhook.php from commerce product
|
|
**Key features**:
|
|
- ✅ Uses `/v2/transactions/` API for status updates (consistent with commerce)
|
|
- ✅ Uses `/v2/invoice/` API for invoice generation
|
|
- ✅ Creates PDF invoice with DomPDF
|
|
- ✅ Sends email via PHPMailer
|
|
- ✅ Creates software license
|
|
- ✅ Multi-language support
|
|
- ✅ Sends to bookkeeping if configured
|
|
|
|
**Webhook URL**: `https://yourdomain.com/webhook_mollie.php`
|
|
|
|
### 2. `/api/v2/post/payment.php`
|
|
**Purpose**: Create Mollie payment for software upgrade
|
|
**Input**: serial_number, version_id, user_data
|
|
**Output**: {checkout_url, payment_id}
|
|
**Security**: Server-side price calculation
|
|
|
|
### 3. `/api/v2/get/payment.php`
|
|
**Purpose**: Retrieve payment status
|
|
**Input**: ?payment_id=xxx
|
|
**Output**: {payment_id, payment_status, serial_number, equipment_id, ...}
|
|
|
|
## Modified Files
|
|
|
|
### 1. `/assets/functions.php`
|
|
**Add new functions**:
|
|
- `generateUniqueLicenseKey()` - Generate unique license keys
|
|
- `generateSoftwareInvoice($invoice_data, $order_id, $language)` - Generate HTML invoice for software upgrades
|
|
- Based on existing `generateInvoice()` function
|
|
- Custom template for software licenses
|
|
- Shows: Device serial number, software version, license key, expiry date
|
|
- Returns: [$html_content, $customer_email, $order_id]
|
|
|
|
### 2. `/assets/softwaretool.js`
|
|
**Modify**:
|
|
- `processPayment()` - Call `/v2/post/payment` API
|
|
- `downloadAndInstallSoftware()` - Add serial number verification
|
|
|
|
### 3. `/softwaretool.php`
|
|
**Add**: Payment return detection (`?payment_id=xxx`)
|
|
|
|
## Database
|
|
**No changes needed** - Uses existing:
|
|
- `transactions` table (txn_id, payment_status, payment_amount, etc.)
|
|
- `transactions_items` table (item_id, item_options with JSON)
|
|
|
|
## Payment Status Codes (Matching Commerce System)
|
|
- `0` = Pending
|
|
- `1` = Paid
|
|
- `101` = Open/Pending (Mollie)
|
|
- `102` = Failed
|
|
- `103` = Expired
|
|
- `999` = Canceled
|
|
|
|
## Implementation Order
|
|
|
|
1. ✅ Add Mollie constants to config.php
|
|
2. Create helper functions in functions.php:
|
|
- `generateUniqueLicenseKey()`
|
|
- `generateSoftwareInvoice()`
|
|
3. Create `/api/v2/post/payment.php`
|
|
4. Create `/api/v2/get/payment.php`
|
|
5. Create `/webhook_mollie.php`
|
|
6. Modify frontend JavaScript
|
|
7. Modify softwaretool.php
|
|
8. Test in DEBUG mode
|
|
9. Test with Mollie sandbox
|
|
10. Deploy to production
|
|
|
|
## Key Benefits
|
|
|
|
1. **Consistent with ecommerce** - Uses same API structure
|
|
2. **Professional invoices** - PDF generation + email delivery
|
|
3. **Complete audit trail** - Transactions + invoices + licenses
|
|
4. **Multi-language** - Invoice language based on customer country
|
|
5. **Bookkeeping integration** - Auto-send to bookkeeping email
|
|
6. **Refund handling** - Webhook detects refunds (TODO: disable license)
|
|
|
|
## Invoice Email Template
|
|
|
|
The email will include:
|
|
- Subject: "Software Upgrade - Invoice: [ORDER_ID]"
|
|
- HTML body with invoice details
|
|
- PDF attachment (Invoice_[ORDER_ID].pdf)
|
|
- Sent to customer email + bookkeeping (if configured)
|
|
|
|
**Invoice contains:**
|
|
- Customer details (name, address, email)
|
|
- Order ID / Transaction ID
|
|
- Software upgrade details (version, device serial number)
|
|
- License key + expiry date (2099-12-31)
|
|
- Price breakdown
|
|
- Company information
|