developertugrul/garanti-pos

Garanti BBVA Virtual POS integration package for Laravel

Maintainers

Package info

github.com/developertugrul/garanti-pos

pkg:composer/developertugrul/garanti-pos

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.11 2026-06-05 11:05 UTC

This package is auto-updated.

Last update: 2026-06-05 11:07:06 UTC


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)

  1. Paketi projenize dahil edin:
composer require developertugrul/garanti-pos
  1. Konfigürasyon dosyasını dışa aktarın:
php artisan vendor:publish --provider="Developertugrul\GarantiPos\GarantiPosServiceProvider"
  1. .env dosyanı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: extendedcredit ve commercialcardextendedcredit gibi B2B, kredili, ötelemeli özel ödeme tipleri tam uyumlulukla desteklenir.
  • Güvenli 3D Doğrulaması: 3D doğrulamasında bankadan dönen hash imzası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.

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.