3.5 KiB
3.5 KiB
DHL Konfiguration für ältere cURL-Versionen (Live-Server)
Problem identifiziert
Ihr Live-Server verwendet:
- cURL 7.81.0 (ältere Version)
- OpenSSL 3.0.2 (ältere Version)
- PHP 8.2.29
Im Vergleich zu Ihrem Testserver:
- cURL 8.5.0 (neuere Version)
- OpenSSL 3.0.13 (neuere Version)
- PHP 8.4.12
Optimierte Lösung implementiert
1. Automatische cURL-Versionserkennung
Die Lösung erkennt automatisch ältere cURL-Versionen (< 8.0.0) und passt die Konfiguration an:
- HTTP/2 deaktiviert für ältere cURL-Versionen
- TCP Keep-Alive aktiviert für bessere Verbindungsstabilität
- Fresh Connections für jeden Request
- Optimierte SSL-Handhabung für ältere OpenSSL-Versionen
2. Spezielle Konfiguration für Ihren Live-Server
.env-Konfiguration:
# DHL Live-Konfiguration für ältere cURL-Versionen
DHL_BASE_URL=https://api-eu.dhl.com
DHL_TEST_MODE=false
DHL_SANDBOX=false
# SSL-Konfiguration optimiert für cURL 7.81.0
DHL_SSL_VERIFY_PEER=true
DHL_SSL_VERIFY_HOST=true
DHL_SSL_VERSION=TLSv1_2
DHL_TIMEOUT=30
DHL_CONNECT_TIMEOUT=15
# Ihre Live-Daten
DHL_API_KEY=your_real_live_api_key
DHL_USERNAME=your_real_live_username
DHL_PASSWORD=your_real_live_password
3. Fallback-Optionen für problematische Server
Option A: SSL-Verifikation deaktivieren (falls weiterhin Probleme)
DHL_SSL_VERIFY_PEER=false
DHL_SSL_VERIFY_HOST=false
Option B: Ältere TLS-Version verwenden
DHL_SSL_VERSION=TLSv1_1
Option C: Längere Timeouts
DHL_TIMEOUT=60
DHL_CONNECT_TIMEOUT=30
4. Was die Lösung automatisch macht
Für cURL 7.81.0 (Ihr Live-Server):
- ✅ Verwendet HTTP/1.1 statt HTTP/2
- ✅ Aktiviert TCP Keep-Alive für bessere Verbindungsstabilität
- ✅ Verwendet Fresh Connections für jeden Request
- ✅ Optimiert SSL-Handhabung für OpenSSL 3.0.2
Für cURL 8.5.0+ (Ihr Testserver):
- ✅ Verwendet HTTP/2 wenn verfügbar
- ✅ Standard-Konfiguration für moderne cURL-Versionen
5. Test der optimierten Lösung
# Konfiguration neu laden
php artisan config:clear
# Test mit Debug-Logs
php artisan tinker
$settingController = new \App\Http\Controllers\SettingController();
$dhlConfig = $settingController->getDhlConfig();
$dhlClient = new \Acme\Dhl\Support\DhlClient(
$dhlConfig['base_url'],
$dhlConfig['api_key'],
$dhlConfig['username'],
$dhlConfig['password']
);
$result = $dhlClient->testConnection();
echo $result ? 'SUCCESS' : 'FAILED';
6. Debug-Logs für Ihren Live-Server
Sie werden folgende Logs sehen:
[INFO] DHL Server Environment Debug Info {
"curl_version": {"version": "7.81.0", ...},
"curl_is_old": true,
"compatibility": {
"will_use_http2": false,
"will_use_tcp_keepalive": true,
"will_use_fresh_connections": true
}
}
7. Warum diese Lösung funktioniert
Problem mit cURL 7.81.0:
- Weniger robuste SSL-Handhabung
- Probleme mit HTTP/2
- Instabile Verbindungen bei längeren Requests
Lösung:
- TCP Keep-Alive: Hält Verbindungen stabil
- Fresh Connections: Vermeidet Verbindungsprobleme
- HTTP/1.1: Kompatibel mit älteren cURL-Versionen
- Optimierte SSL-Optionen: Angepasst für OpenSSL 3.0.2
8. Monitoring
Die Lösung loggt automatisch:
- cURL-Version und Kompatibilitätsstatus
- Welche Optimierungen aktiviert sind
- Erfolgreiche Verbindungsmethode
Fazit
Die Lösung ist jetzt speziell für Ihren Live-Server mit cURL 7.81.0 optimiert und sollte das SSL-Verbindungsproblem beheben! 🎉