developertugrul / garanti-pos
Garanti BBVA Virtual POS integration package for Laravel
Requires
- php: ^8.0
- illuminate/http: ^9.0|^10.0|^11.0|^12.0|^13.0
- illuminate/support: ^9.0|^10.0|^11.0|^12.0|^13.0
README
Garanti Bankası Sanal POS (GVP) altyapısı ile %100 uyumlu, modern ve kapsamlı Laravel paketi. Bu paket ile standart tahsilatlardan, 3D işlemlere, GarantiPay'den CepBank işlemlerine kadar Garanti Sanal POS'un sunduğu tüm özellikleri projenize entegre edebilirsiniz.
📖 Detaylı Çevrimiçi Dökümantasyon: https://developertugrul.github.io/garanti-pos/
Author: https://tugrulyildirim.com
Kurulum (Installation)
- Paketi projenize dahil edin:
composer require developertugrul/garanti-pos
- Konfigürasyon dosyasını dışa aktarın:
php artisan vendor:publish --provider="Developertugrul\GarantiPos\GarantiPosServiceProvider"
.envdosyanıza Garanti POS bilgilerinizi ekleyin:
GARANTI_POS_MODE=TEST # Canlı için PROD GARANTI_POS_TERMINAL_ID=12345678 GARANTI_POS_PROV_USER_ID=PROVAUT GARANTI_POS_PROV_PASSWORD=Sifreniz GARANTI_POS_MERCHANT_ID=1234567 GARANTI_POS_STORE_KEY=3DSecureAnahtari GARANTI_POS_CURRENCY=949 # 949: TL, 840: USD, 978: EUR GARANTI_POS_PROV_OOS_USER_ID=PROVOOS # OOS ve GarantiPay işlemleri için GARANTI_POS_OOS_USER_ID=oosuser
Özellikler (Features)
- Normal Satış (Non-3D): 3D secure kullanmadan ödeme alma (Banka izni gerektirir).
- 3D Pay: 3D doğrulamasının ardından anında ödemenin çekildiği yöntem.
- 3D OOS Pay (Ortak Ödeme Sayfası): Müşterinin kart bilgilerini bankanın kendi güvenli sayfasında girdiği sistem.
- 3D Model (2 Adımlı): 3D doğrulamasının alındığı ve ardından arka planda otorizasyon yapılarak tahsilatın tamamlandığı sistem.
- İptal (Cancel): Gün sonu alınmamış işlemlerin iptali.
- İade (Refund): Gün sonu alınmış işlemlerin iadesi (Kısmi iade desteklenir).
- Ön Provizyon & Kapama (PreAuth / PostAuth): Karttan provizyon (bloke) alma ve daha sonra bu tutarı tahsil etme (veya İptal etme).
- Puan İşlemleri: Kredi kartındaki puanların sorgulanması ve tahsilat için kullanılması.
- Sipariş & Geçmiş Sorgulama: İşlemlerin anlık banka durumlarının sorgulanması.
- GarantiPay: Kullanıcıların mobil uygulama üzerinden ödeme yapabilmesi için form oluşturulması (PROVOOS uyumlu).
- CepBank: CepBank uygulaması ile yapılan ödemelerin onaylanıp tahsil edilmesi.
- Tekrarlı Satış (Recurring): Düzenli abonelik benzeri tahsilatlar.
- TCKN Doğrulama: İşlem esnasında kimlik doğrulama.
- SMS & DCC Onayları: Önceden alınmış onayların iletilmesi (
paySms/payDcc). - Tüketici Kredisi & Ticari Kart:
extendedcreditvecommercialcardextendedcreditgibi B2B, kredili, ötelemeli özel ödeme tipleri tam uyumlulukla desteklenir. - Güvenli 3D Doğrulaması: 3D doğrulamasında bankadan dönen
hashimzasının otomatik doğrulanması (PCI DSS uyumlu ve güvenli 2. adım). - Tam Kapsam: Dökümantasyonda geçen (BIN sorgulama dahil) her bir uç nokta desteklenmektedir.
Dökümantasyon (Documentation)
Tüm metodlar, form yapıları, API istek ve yanıt detayları, HTML çıktıları vb. detaylı dökümantasyon için Çevrimiçi Dökümantasyon (GitHub Pages) sayfasını ziyaret edebilir veya indirdiğiniz dizindeki docs/index.html dosyasına göz atabilirsiniz. Dökümantasyon Bootstrap 5 ile tasarlanmış olup her bir özelliğin entegrasyonu mevcuttur.
Geliştirici (Developer)
Bu paket, e-ticaret projelerinde hızlı ve güvenilir sanal pos entegrasyonu sağlamak amacıyla geliştirilmiştir.
- Geliştirici: Tuğrul Yıldırım
- Web Sitesi: https://tugrulyildirim.com
Kullanım Örneği (3D Secure)
use Developertugrul\GarantiPos\Facades\GarantiPos; // Form oluşturulur ve blade'e gönderilir $formHtml = GarantiPos::build3DForm( ['order_id' => 'Siparis123', 'amount' => '1000', 'installment' => ''], // 10.00 TL ['number' => '5400...', 'expire_month' => '12', 'expire_year' => '25', 'cvv' => '123'], route('payment.success'), route('payment.error') ); // Blade dosyanızda {!! $formHtml !!}
3D Hash Doğrulama (Güvenlik)
3D işlemin dönüşünde bankadan gelen POST isteğini pay3DModel metoduna gönderdiğinizde imza (hash) kontrolü otomatik yapılır. Kendiniz kontrol etmek isterseniz:
use Developertugrul\GarantiPos\Services\HashGenerator; if (!HashGenerator::validate3DHash($request->all(), config('garanti-pos.store_key'))) { throw new \Exception("Güvenlik ihlali: 3D Hash uyuşmazlığı!"); }
Lisans
MIT License.