w3/yapikredi-pos
Composer 安装命令:
composer require w3/yapikredi-pos
包简介
Yapı Kredi Bank Virtual POS Integration for PHP
README 文档
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.
Katkıda Bulunanlar
w3/yapikredi-pos 适用场景与选型建议
w3/yapikredi-pos 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 06 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 w3/yapikredi-pos 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 w3/yapikredi-pos 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 25
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-06-18