voxyfy/anadolupay
最新稳定版本:v0.1.0
Composer 安装命令:
composer require voxyfy/anadolupay
包简介
Unified Laravel 12 payment gateway abstraction for Turkish providers.
README 文档
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.
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-18