Files
assetmgt/PAYMENT_IMPLEMENTATION_SUMMARY.md
“VeLiTi” 653e33d7e9 Add software tool functionality with device connection and upgrade options
- 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.
2025-12-21 14:16:55 +01:00

3.5 KiB

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