Manual Payment Provider Plugin
A PteroCA plugin that enables manual payment processing (bank transfers, cash payments) as an alternative to automated payment gateways.
Features
- Manual Payment Gateway: Adds "Bank Transfer / Manual Payment" option to payment methods
- Unique Reference Codes: Auto-generates unique payment reference codes (format:
MP-YYYYMMDD-XXXXX) - User-Friendly Instructions: Displays clear payment instructions with bank details
- Admin Verification Panel: EasyAdmin CRUD for admins to verify/reject payments
- Full Integration: Works seamlessly with PteroCA's payment system, events, and notifications
- Audit Trail: Complete logging of all verification actions
Installation
-
Upload plugin via Admin Panel:
- Go to Admin Panel → Plugins → Upload Plugin
- Select the plugin ZIP file
- Click "Upload"
- The plugin will be automatically installed
-
Enable the plugin:
- Go to Admin Panel → Plugins
- Find "Manual Payment Provider"
- Click "Enable"
- The database migration will run automatically
-
Configure plugin settings:
- Go to Admin Panel → Plugins → Manual Payment Provider → Settings
- Enable manual payments
- Fill in required bank details:
- Bank Name
- Bank Account Number
- Account Holder Name
- Optionally configure:
- Custom instructions (HTML supported)
- Minimum payment amount
Configuration
Required Settings
- Enable Manual Payments: Toggle to enable/disable the payment method
- Bank Name: Name of your bank
- Bank Account Number: Account number for receiving payments
- Account Holder Name: Name on the bank account
Optional Settings
- Additional Instructions: Custom HTML instructions displayed to users
- Minimum Payment Amount: Set minimum amount (0 = no minimum)
User Flow
- User goes to "Add Balance" and selects "Bank Transfer / Manual Payment"
- System generates unique reference code (e.g.,
MP-20260208-A3B4C) - User sees payment instructions with:
- Amount to transfer
- Bank details
- Unique reference code (with copy button)
- Custom instructions (if configured)
- User completes bank transfer with reference code in transfer title
- User can return to instructions anytime via "My Payments" → "Continue Payment"
- Admin verifies payment in admin panel
- Balance is automatically added and user receives confirmation email
Admin Panel
Manual Payments Management
Access: Admin Panel → Manual Payments
Features:
- List of all manual payments (pending shown first)
- Reference code with easy copy
- User information
- Payment amount and currency
- Status badges (Pending/Verified/Rejected)
- Creation date and instruction view tracking
Actions:
- Verify Payment: Accept payment and add balance to user account
- Reject Payment: Reject payment with optional reason
- View Details: See full payment information including timestamps
Security:
- Only accessible to administrators (
ROLE_ADMIN) - All actions are logged via
LogService - Verification timestamps and admin info tracked
Technical Details
Database Schema
Table: manual_payment_instruction
id- Primary keypayment_id- Foreign key topaymenttable (one-to-one)reference_code- Unique reference code (indexed)instructions_displayed_at- When user first viewed instructionsadmin_notes- Admin notes (for rejections)verified_by- Foreign key tousertable (admin who verified)verified_at- Verification timestampcreated_at,updated_at- Standard timestamps
Integration Points
Payment Provider Interface:
- Implements
PaymentProviderInterface - Identifier:
manual - Icon:
fas fa-university
Events:
PaymentCreatedEvent- Creates instruction record- All standard payment events work automatically (balance added, emails sent)
Routes:
/manual-payment/instructions/{sessionId}- User instructions page
Services:
ManualPaymentProvider- Payment provider implementationManualPaymentService- Business logic (verification, rejection)ManualPaymentRepository- Database queries
Support & Troubleshooting
Common Issues
"Manual Payment" not showing in payment methods:
- Check if plugin is enabled
- Verify bank details are configured
- Check
manual_payment_enabledsetting is true
Reference code not generating:
- Check plugin logs for errors
- Ensure database migration ran successfully
- Verify
manual_payment_instructiontable exists
Admin cannot verify payments:
- Check user has
ROLE_ADMINpermission - Verify payment status is 'unpaid'
- Check plugin logs for errors
Logs
Plugin logs are written to standard Symfony logs with prefix "Manual Payment".
Check logs at: var/log/dev.log (or prod.log for production)
Price
Related Products
Tools and themes designed to elevate your ecosystem.
User Reviews (0)
No reviews yet. Be the first to review this product!