voxyfy / anadolupay
Unified Laravel 12 payment gateway abstraction for Turkish providers.
Fund package maintenance!
Requires
- php: ^8.2
- illuminate/support: ^12.0
Requires (Dev)
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.8
- orchestra/testbench: ^10.0.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
This package is not auto-updated.
Last update: 2026-03-02 12:47:25 UTC
README
AnadoluPay is a Laravel payment abstraction layer for Turkish payment providers. It orchestrates payment flows and normalizes responses, while leaving UI rendering and final business decisions to the consuming application.
Gereksinimler
- PHP 8.2 veya üzeri
- Laravel 12.x
Kurulum
composer require voxyfy/anadolupay
Laravel auto-discovery varsayılan olarak aktiftir; ek bir adım gerekmez.
Konfigürasyon dosyasını yayınlamak isterseniz:
php artisan vendor:publish --tag="anadolupay-config"
Yapılandırma
Iyzico 3DS için gerekli ortam değişkenleri:
IYZICO_API_KEY=xxx IYZICO_SECRET_KEY=xxx IYZICO_BASE_URL=https://sandbox-api.iyzipay.com IYZICO_CALLBACK_URL=https://example.com/anadolupay/callback/iyzico
Notlar:
IYZICO_BASE_URLsandbox veya production host olabilir.IYZICO_CALLBACK_URLdışarıdan erişilebilir olmalıdır.
3DS Ödeme Başlatma (iyzico)
Akış özeti:
- Uygulama
createPayment(...)ile 3DS başlatma isteği yapar. - Iyzico
threeDSHtmlContentdöner (base64 HTML). - Uygulama bu HTML'i decode edip kullanıcıya render eder.
- 3DS tamamlanınca callback URL'inize yönlendirme yapılır.
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Voxyfy\AnadoluPay\DTO\CreatePaymentData; use Voxyfy\AnadoluPay\Facades\AnadoluPay; class PaymentController extends Controller { public function pay(Request $request) { $data = new CreatePaymentData( amount: 100.00, currency: 'TRY', orderId: 'SIPARIS-123', customer: [ 'name' => 'Ahmet Yilmaz', 'email' => 'ahmet@example.com', 'phone' => '+905551112233', 'card' => [ 'cardHolderName' => 'Ahmet Yilmaz', 'cardNumber' => '5528790000000008', 'expireYear' => '2030', 'expireMonth' => '12', 'cvc' => '123', ], ], successUrl: 'https://example.com/success', failUrl: 'https://example.com/fail', ); $response = AnadoluPay::driver('iyzico')->createPayment($data); $threeDsHtml = $response->raw['threeDSHtmlContent'] ?? null; return response()->json([ 'threeDSHtmlContent' => $threeDsHtml, ]); } }
threeDSHtmlContent Render Etme
threeDSHtmlContent base64-encoded bir HTML dokümanıdır, bir URL değildir.
AnadoluPay bunu render etmez veya decode etmez; bu sorumluluk uygulamanızdadır.
$response = AnadoluPay::driver('iyzico')->createPayment($data); $html = base64_decode($response->raw['threeDSHtmlContent']); return response($html);
Callback ve Webhook Doğrulama
- Iyzico redirect callback'inde
status,paymentId,conversationData,mdStatusalanları gelir. - Gateway bu payload'u doğrular, ardından 3DS auth çağrısını yapar ve sonucu normalize eder.
- Webhook bildirimleri için de
verify(...)çağrısı aynı şekilde çalışır. - İmza doğrulaması etkinse imza yoksa veya eşleşmezse
InvalidSignatureExceptionfırlatılır. - İmza doğrulaması ayarı:
IYZICO_VALIDATE_SIGNATURE(lokalde false yapılabilir).
AnadoluPay yalnızca doğrulama ve normalizasyon yapar. Sipariş onayı, stok düşme, fatura kesme gibi iş kuralları uygulama tarafında yönetilmelidir.
Basit bir callback örneği:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Voxyfy\AnadoluPay\DTO\VerifyPaymentData; use Voxyfy\AnadoluPay\Facades\AnadoluPay; class IyzicoCallbackController extends Controller { public function handle(Request $request) { $result = AnadoluPay::driver('iyzico')->verify(new VerifyPaymentData( payload: $request->all(), headers: $request->headers->all(), rawBody: $request->getContent(), )); return response()->json([ 'success' => $result->success, 'status' => $result->status, 'paymentId' => $result->paymentId, ]); } }
Testler
composer test
Değişiklik Günlüğü
Son değişiklikler hakkında daha fazla bilgi için CHANGELOG dosyasına bakın.
Katkıda Bulunma
Katkılarınızı bekliyoruz! Detaylar için CONTRIBUTING dosyasına bakın.
Güvenlik Açıkları
Bir güvenlik açığı keşfederseniz, lütfen security@voxyfy.com adresine e-posta gönderin.
Lisans
MIT Lisansı (MIT). Daha fazla bilgi için Lisans Dosyası'na bakın.