furkanmeclis / surat-kargo
Sürat Kargo SOAP Laravel Client - WSDL generated classes with retry & log middleware
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/furkanmeclis/surat-kargo
Requires
- php: ^8.1
- ext-soap: *
- illuminate/support: ^11.0|^12.0
- spatie/laravel-package-tools: ^1.0
Requires (Dev)
- phpunit/phpunit: ^10.0
- wsdl2phpgenerator/wsdl2phpgenerator: ^3.4
README
Laravel package for Sürat Kargo SOAP service. Includes WSDL-generated PHP classes and retry & log middleware.
Installation
composer require furkanmeclis/surat-kargo
Configuration
Publish the config file:
php artisan vendor:publish --tag=suratkargo-config
Add to your .env file:
SURATKARGO_WSDL=https://webservices.suratkargo.com.tr/services.asmx?wsdl SURATKARGO_USERNAME=your_username SURATKARGO_PASSWORD=your_password SURATKARGO_TIMEOUT=30 SURATKARGO_RETRY_COUNT=3 SURATKARGO_LOG_ENABLED=true SURATKARGO_ENVIRONMENT=prod
Usage
Using Facade
use FurkanMeclis\SuratKargo\Facades\SuratKargo; use FurkanMeclis\SuratKargo\Data\Barkod; // Use WSDL-generated classes $request = new Barkod(); $request->setBarkod('1234567890'); $response = SuratKargo::call('Barkod', [$request]); // Or direct method call $response = SuratKargo->Barkod([$request]);
Using Dependency Injection
use FurkanMeclis\SuratKargo\Client\SuratKargoClient; class YourController { public function __construct( protected SuratKargoClient $suratKargo ) {} public function track() { $request = new \FurkanMeclis\SuratKargo\Data\TakipNo(); $request->setTakipNo('1234567890'); $response = $this->suratKargo->call('TakipNo', [$request]); } }
Direct Generated Services Usage
use FurkanMeclis\SuratKargo\Client\SuratKargoClient; $client = app('suratkargo')->getClient(); // Use Generated Services class methods directly $response = $client->Barkod([$request]);
Features
- ✅ 542+ WSDL-generated PHP classes
- ✅ Automatic retry mechanism (3 attempts: 500ms, 1000ms, 2000ms)
- ✅ Request/Response XML logging (
storage/logs/suratkargo.log) - ✅ Middleware chain (Retry → Log → SOAP)
- ✅ Laravel Service Provider and Facade support
- ✅ Easy configuration via config file
Logging
Logs are written to storage/logs/suratkargo.log:
[2024-01-22 14:30:00] Method: Barkod | Duration: 250ms | Error: none
Request XML:
<?xml version="1.0"?>
...
Response XML:
<?xml version="1.0"?>
...
License
MIT