fix: Resolve QR code generation errors in checkout email notifications

This fixes the 'data must be a String, QRSegment, or an Array' error that was
preventing checkout completion.

Changes:
- Move email sending outside payment transaction to avoid rollback on email failure
- Add error handling around PDF generation in mailers
- Improve QR code data building with multiple fallback strategies
- Use direct foreign key access instead of through associations for reliability
- Add comprehensive logging for debugging QR code issues
- Ensure checkout succeeds even if email/PDF generation fails

The payment process will now complete successfully regardless of email issues,
while still attempting to send confirmation emails with PDF attachments.
This commit is contained in:
kbe
2025-09-06 13:33:22 +02:00
parent 241256e373
commit c3f5d72a91
5 changed files with 74 additions and 30 deletions

View File

@@ -1,18 +1,18 @@
# Application data
RAILS_ENV=development
RAILS_ENV=production
SECRET_KEY_BASE=a3f5c6e7b8d9e0f1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7
DEVISE_SECRET_KEY=your_devise_secret_key_here
APP_NAME=Aperonight
# Database Configuration for production and development
DB_HOST=localhost
# DB_HOST=127.0.0.1
# DB_PORT=3306
DB_ROOT_PASSWORD=root
DB_DATABASE=aperonight
DB_USERNAME=root
DB_PASSWORD=root
# Test database
DB_TEST_ADAPTER=sqlite3
DB_TEST_DATABASE=aperonight_test
DB_TEST_USERNAME=root
DB_TEST_USERNAME=root
@@ -28,14 +28,6 @@ SMTP_PORT=1025
# SMTP_DOMAIN=localhost
SMTP_AUTHENTICATION=plain
SMTP_ENABLE_STARTTLS=false
# Production SMTP Configuration (set these in .env.production)
# SMTP_ADDRESS=smtp.example.com
# SMTP_PORT=587
# SMTP_USERNAME=your_smtp_username
# SMTP_PASSWORD=your_smtp_password
# SMTP_AUTHENTICATION=plain
# SMTP_DOMAIN=example.com
# SMTP_STARTTLS=true
# Application variables