w3 / yapikredi-pos
Yapı Kredi Bank Virtual POS Integration for PHP
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/w3/yapikredi-pos
Requires
- php: >=7.4
- ext-curl: *
- ext-json: *
- ext-simplexml: *
Requires (Dev)
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2025-12-18 21:38:30 UTC
README
Bu paket, Yapı Kredi Bankası'nın Sanal POS sistemi ile kolay kullanımlı bir entegrasyon sağlar ve entegrasyon dokümantasyonunda belirtildiği gibi 3D Secure 2.1 protokolünü uygular.
Kurulum
Paketi composer aracılığıyla kurabilirsiniz:
composer require w3/yapikredi-pos
Kullanım
Temel Yapılandırma
use W3\YapiKrediPos\YapiKrediPos; // Yapı Kredi POS istemcisini başlatın $pos = new YapiKrediPos( 'YOUR_MERCHANT_ID', // Yapı Kredi Bankası tarafından sağlanan Üye İşyeri ID 'YOUR_TERMINAL_ID', // Yapı Kredi Bankası tarafından sağlanan Terminal ID 'YOUR_POSNET_ID', // Yapı Kredi Bankası tarafından sağlanan POS Net ID 'YOUR_MERCHANT_KEY', // Güvenli iletişim için üye işyeri anahtarı 'test' // Ortam: 'test' veya 'production' );
Laravel Entegrasyonu
Bu paket Laravel entegrasyonu ile birlikte gelir. Paketi kurduktan sonra, yapılandırma dosyasını yayınlayın:
php artisan vendor:publish --provider="W3\YapiKrediPos\Laravel\YapiKrediPosServiceProvider" --tag="config"
Bu, Laravel uygulamanızda bir config/yapikredi-pos.php dosyası oluşturacaktır. .env dosyanızda aşağıdaki ortam değişkenlerini ayarlayarak paketi yapılandırabilirsiniz:
YAPIKREDI_MERCHANT_ID=your_merchant_id
YAPIKREDI_TERMINAL_ID=your_terminal_id
YAPIKREDI_POSNET_ID=your_posnet_id
YAPIKREDI_MERCHANT_KEY=your_merchant_key
YAPIKREDI_ENVIRONMENT=test
Daha sonra paketi Laravel uygulamanızda kullanabilirsiniz:
// Bağımlılık enjeksiyonu kullanarak public function checkout(YapiKrediPos $pos) { // $pos örneğini kullanın } // Facade kullanarak use YapiKrediPos; public function checkout() { $response = YapiKrediPos::threeDSecureAuth() ->setOrderId(uniqid('order_')) // ... diğer parametreler ->send(); } // Servis konteyneri kullanarak $pos = app('yapikredi-pos');
3D Secure Ödeme Akışı
Adım 1: 3D Secure Kimlik Doğrulamasını Başlatın
// Bu işlem için benzersiz bir sipariş ID'si oluşturun $orderId = uniqid('order_'); // 3D Secure kimlik doğrulamasını başlatın $response = $pos->threeDSecureAuth() ->setOrderId($orderId) ->setCardNumber('4506349116608409') // Test kart numarası ->setExpiryMonth('12') ->setExpiryYear('30') ->setCvv('000') ->setAmount(100.50) // TL cinsinden tutar ->setCurrency('TL') // Para birimi kodu ->setInstallment(0) // 0 tek ödeme için, veya taksit sayısı ->setReturnUrl('https://your-website.com/payment/callback') ->send(); // Kimlik doğrulama isteğinin başarılı olup olmadığını kontrol edin if ($response->isSuccessful()) { // Sipariş ID'sini daha sonra kullanmak üzere oturumda veya veritabanında saklayın $_SESSION['order_id'] = $orderId; // 3D Secure yönlendirmesi için HTML formunu alın echo $response->getRedirectForm('Ödemeye Devam Et'); // Veya formu manuel olarak oluşturabilirsiniz: // echo '<form method="POST" action="' . $response->getFormAction() . '">'; // echo '<input type="hidden" name="data" value="' . $response->getFormData() . '">'; // echo '<button type="submit">Ödemeye Devam Et</button>'; // echo '</form>'; } else { // Kimlik doğrulama hatasını işleyin echo 'Hata: ' . $response->getErrorMessage(); }
Adım 2: 3D Secure Geri Dönüşünü İşleyin
// Geri dönüş URL işleyicinizde: // Bankanın yanıtından 3D Secure verilerini alın $threeDSecureData = $_POST['data'] ?? ''; // Sipariş ID'sini oturumdan veya veritabanından alın $orderId = $_SESSION['order_id'] ?? ''; // Ödemeyi tamamlayın try { $response = $pos->threeDSecurePayment() ->setOrderId($orderId) ->setThreeDSecureData($threeDSecureData) ->setAmount(100.50) // Kimlik doğrulamada kullanılan tutarla eşleşmelidir ->setCurrency('TL') // Kimlik doğrulamada kullanılan para birimiyle eşleşmelidir ->setInstallment(0) // Kimlik doğrulamada kullanılan taksit sayısıyla eşleşmelidir ->send(); // Ödemenin başarılı olup olmadığını kontrol edin if ($response->isSuccessful()) { // Ödeme başarılı echo 'Ödeme başarılı!'; echo 'İşlem ID: ' . $response->getTransactionId(); echo 'Yetkilendirme Kodu: ' . $response->getAuthCode(); } else { // Ödeme başarısız echo 'Ödeme başarısız: ' . $response->getErrorMessage(); } } catch (\W3\YapiKrediPos\Exception\PaymentException $e) { // Ödeme istisnasını işleyin echo 'Ödeme hatası: ' . $e->getMessage(); echo 'Hata kodu: ' . $e->getErrorCode(); } catch (\W3\YapiKrediPos\Exception\ConnectionException $e) { // Bağlantı istisnasını işleyin echo 'Bağlantı hatası: ' . $e->getMessage(); } catch (\W3\YapiKrediPos\Exception\ValidationException $e) { // Doğrulama istisnasını işleyin echo 'Doğrulama hatası: ' . $e->getMessage(); }
Hata Yönetimi
Paket, farklı hata senaryoları için farklı türde istisnalar fırlatır:
ValidationException: İstek parametreleri geçersiz olduğunda fırlatılırConnectionException: Yapı Kredi POS API'sine bağlanırken bir hata olduğunda fırlatılırPaymentException: Ödeme reddedildiğinde veya başarısız olduğunda fırlatılırYapiKrediPosException: Diğer tüm hatalar için temel istisna sınıfı
Özellikler
- Yapı Kredi Bankası'nın POSNET sistemi ile 3D Secure 2.1 entegrasyonu
- Hem 3D hem de 3D olmayan işlemler için destek
- Kolay yapılandırma ve kurulum
- Kapsamlı hata yönetimi
- Laravel ve diğer PHP çerçeveleriyle uyumlu
Gereksinimler
- PHP 7.4 veya daha yüksek
- ext-curl
- ext-json
- ext-simplexml
Lisans
MIT Lisansı (MIT). Daha fazla bilgi için lütfen Lisans Dosyasına bakın.