Download the PHP package emreyilmaz99/php-trsanalpos without Composer
On this page you can find all versions of the php package emreyilmaz99/php-trsanalpos. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download emreyilmaz99/php-trsanalpos
More information about emreyilmaz99/php-trsanalpos
Files in emreyilmaz99/php-trsanalpos
Package php-trsanalpos
Short Description Türkiye'deki banka ve ödeme kuruluşlarının sanal POS entegrasyonlarını tek bir Laravel paketi altında birleştiren kütüphane. evrenonur/sanalpos fork'u + hosted payment, event dispatcher, idempotency, webhook validation, capability interfaces, live sandbox doğrulamaları.
License MIT
Informations about the package php-trsanalpos
php-TRsanalpos
Bu paket evrenonur/sanalpos kütüphanesinin MIT lisanslı fork'u olarak başlamış, üzerine birkaç ek modül eklenmiştir. Orijinal kütüphane CP.VPOS (.NET) projesinin PHP/Laravel portudur.
SanalPos: Sanal Pos Entegrasyonlarını Basitleştirin
SanalPos, Türkiye'deki birçok bankanın ve ödeme kuruluşunun sanal POS entegrasyonlarını tek bir kod tabanı ile kullanmayı mümkün kılan PHP/Laravel kütüphanesidir. Bu sayede geliştiriciler, her banka için ayrı ayrı kod yazmak zorunda kalmadan, tüm sanal POS işlemlerini tek bir kütüphane üzerinden gerçekleştirebilirler.
Bu fork'taki ek modüller
- Hosted Payment (kart bankada — PCI-DSS SAQ-A uyumlu akış): Iyzico CheckoutForm, Garanti BBVA Ortak Ödeme Sayfası, Akbank
/payhosting, NestPay3D_PAY_HOSTING, Payten SESSIONTOKEN, Vakıfbank Common Payment, Vakıf Katılım CommonPaymentPage, PayNKolay form-redirect, Intertech VPOS (Denizbank + QNB Finansbank) - Live sandbox doğrulaması: Iyzico, Garanti BBVA, Akbank, NestPay İş Bankası, NestPay Ziraat Bankası canlı sandbox'larında uçtan uca test edilmiş. NestPay ailesi için aynı recipe 12 banka kapsar.
- Event dispatcher (framework-agnostic + Laravel-aware):
PaymentInitiated,PaymentSucceeded,PaymentFailedevent'leri. - Idempotency:
SaleRequest::idempotency_keyile aynı butona iki kez basma korumalı.DuplicateRequestException+ cache-backed dedup. - Webhook validation helper: IP whitelist + timestamp (replay attack) kontrolü.
- PII redaction: Kart numarası ve CVV otomatik maskelenir (
__debugInfo+JsonSerializable); plain-text PAN log'a sızmaz. - Capability marker interfaces:
SupportsHostedPayment,SupportsRefund,SupportsSaleQuery,SupportsInstallmentQuery.$gateway instanceof SupportsHostedPaymentile çağırmadan önce kontrol. - HTTP request/response logging: PSR-3 logger (LoggerAware trait) üzerinden, PII maskeli.
- PHPStan + GitHub Actions CI: Level 3 + baseline.
Özellikler
- Tek Kod Tabanı: Farklı bankaların sanal pos entegrasyonları için ayrı ayrı kod yazmaya gerek kalmadan, tek bir API ile tüm işlemleri gerçekleştirebilirsiniz.
- Basitleştirilmiş İşlem Akışı: Sanal pos işlemleri için gerekli tüm adımlar kütüphane tarafından otomatik olarak halledilir.
- 3D Güvenli Ödeme Desteği: 3D Güvenli Ödeme işlemleri için gerekli tüm adımlar desteklenir.
- Geniş Banka Kapsamı: 35+ banka ve ödeme kuruluşu desteği.
- Ödeme Kuruluşu Komisyon Politikası: CCPayment tabanlı kuruluşlarda taksit komisyonunu müşteriye veya satıcıya yansıtma seçeneği desteklenir.
- Laravel Entegrasyonu: ServiceProvider, Facade ve config dosyası ile tam Laravel uyumluluğu.
- Bağımsız Kullanım: Laravel olmadan da
SanalPosClientstatik sınıfı ile kullanılabilir.
Gereksinimler
- PHP >= 8.3
- Laravel 10, 11, 12 veya 13
- ext-simplexml, ext-openssl, ext-json
Kurulum
Composer ile projenize ekleyin:
Laravel otomatik olarak ServiceProvider'ı ve Facade'ı kaydeder. Config dosyasını yayınlamak için:
Not: PHP namespace'i (
EvrenOnur\SanalPos) orijinal paketle aynı kalmıştır — fork olduğu için breaking change yaratmamak adına. Sadece composer paket adı değişmiştir.
Kullanılabilir Sanal POS'lar
Hosted (banka barındırmalı) sütunu, müşterinin kart bilgisini bankanın kendi sayfasında girdiği akışı belirtir (PCI-DSS SAQ-A uyumu). ⚠️ işareti, gateway override edilmiş ancak içeriğin henüz tam doğrulanmadığını gösterir (CCPayment ailesi için doc'a göre flow yazıldı, sandbox doğrulaması bekliyor).
| Sanal POS | Satış | Satış 3D | İptal | İade | Hosted |
|---|---|---|---|---|---|
| Paynet | ✔️ | ✔️ | ✔️ | ✔️ | ❌ |
| Akbank | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Akbank Nestpay | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Alternatif Bank | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Anadolubank | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Denizbank | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| QNB Finansbank | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Finansbank Nestpay | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Garanti BBVA | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Halkbank | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| ING Bank | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| İş Bankası | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Şekerbank | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Türk Ekonomi Bankası | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Türkiye Finans | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Vakıfbank | ✔️ | ✔️ | ✔️ | ✔️ | ❌ |
| Yapı Kredi Bankası | ✔️ | ✔️ | ❌ | ❌ | ❌ |
| Ziraat Bankası | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Kuveyt Türk | ✔️ | ✔️ | ❌ | ❌ | ❌ |
| Vakıf Katılım | ✔️ | ✔️ | ❌ | ❌ | ❌ |
| Cardplus | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Paratika | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Payten (MSU) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| ZiraatPay | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| VakıfPayS | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Iyzico | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Sipay | ✔️ | ✔️ | ✔️ | ✔️ | ⚠️ |
| QNBpay | ✔️ | ✔️ | ✔️ | ✔️ | ⚠️ |
| ParamPos | ✔️ | ✔️ | ✔️ | ✔️ | ❌ |
| PayBull | ✔️ | ✔️ | ✔️ | ✔️ | ⚠️ |
| Parolapara | ✔️ | ✔️ | ✔️ | ✔️ | ⚠️ |
| IQmoney | ✔️ | ✔️ | ✔️ | ✔️ | ⚠️ |
| Ahlpay | ✔️ | ✔️ | ✔️ | ✔️ | ❌ |
| Moka | ✔️ | ✔️ | ✔️ | ✔️ | ❌ |
| Vepara | ✔️ | ✔️ | ✔️ | ✔️ | ⚠️ |
| Tami | ✔️ | ✔️ | ✔️ | ✔️ | ❌ |
| HalkÖde | ✔️ | ✔️ | ✔️ | ✔️ | ⚠️ |
| PayNKolay | ✔️ | ✔️ | ✔️ | ✔️ | ❌ |
Capability matrisini otomatik üretmek için:
php tools/capability-matrix.php
API Bilgilerinin Ayarlanması - MerchantAuth
| Alan | Tür | Açıklama |
|---|---|---|
bank_code |
string |
Banka/ödeme kuruluşu kodu. BankService sabitlerini kullanın. |
merchant_id |
string |
Firma kodu / Üye işyeri numarası |
merchant_user |
string |
API kullanıcı adı |
merchant_password |
string |
API kullanıcı şifresi |
merchant_storekey |
string |
3D store key / güvenlik anahtarı |
test_platform |
bool |
true → test ortamı, false → canlı ortam |
installment_commission_policy |
InstallmentCommissionPolicy |
CCPayment tabanlı kuruluşlarda taksit komisyonunun nasıl yansıtılacağını belirler. Varsayılan: Default |
Taksit Komisyon Politikası
CCPayment altyapısını kullanan ödeme kuruluşlarında taksitli işlemlerde oluşan komisyon için aşağıdaki seçenekler kullanılabilir:
InstallmentCommissionPolicy::Default: Gateway varsayılan davranışı kullanılırInstallmentCommissionPolicy::ChargeToCustomer: Komisyon müşteriye yansıtılırInstallmentCommissionPolicy::AbsorbByMerchant: Komisyon satıcı üzerinde bırakılır
Kullanım Örnekleri
3D'siz Direkt Satış İşlemi
payment_3d->confirm = false gönderilmesi halinde 3D'siz çekim işlemi yapılır ve direkt olarak nihai sonuç döner.
3D Secure Satış İşlemi
payment_3d->confirm = true gönderilmesi halinde 3D'li satış işlemi başlatılır. payment_3d->return_url alanına 3D'den gelecek olan cevabın iletilmesi istenen URL girilmelidir.
3D Secure Satış İşlemi - 2. Adım
İptal İşlemi
İade İşlemi
BIN Taksit Sorgulama
Laravel Facade ile Kullanım
Sanal POS API Bilgileri
| Sanal POS | bank_code | merchant_id | merchant_user | merchant_password | merchant_storekey |
|---|---|---|---|---|---|
| Akbank | BankService::AKBANK |
İş Yeri No | merchantSafeId | Terminal Safe ID | Secret Key |
| Akbank Nestpay | BankService::AKBANK_NESTPAY |
Mağaza Kodu | Api Kullanıcısı | Api Şifresi | 3D Storekey |
| Garanti BBVA | BankService::GARANTI_BBVA |
Firma Kodu | Terminal No | PROVAUT Şifresi | 3D Anahtarı |
| Vakıfbank | BankService::VAKIFBANK |
Üye İşyeri No | POS No | Api Şifresi | — |
| Yapı Kredi | BankService::YAPI_KREDI |
Firma Kodu | Terminal No | PosNet ID | ENCKEY |
| Iyzico | BankService::IYZICO |
Üye İşyeri No | API Anahtarı | Güvenlik Anahtarı | — |
| Paynet | BankService::PAYNET |
Paynet Merchant ID | Basic Auth kullanıcısı | Basic Auth şifresi | — |
| Sipay | BankService::SIPAY |
Üye İşyeri ID | Uygulama Anahtarı | Uygulama Parolası | Merchant Key |
| QNBpay | BankService::QNBPAY |
Üye İşyeri ID | Uygulama Anahtarı | Uygulama Parolası | Merchant Key |
| ParamPos | BankService::PARAMPOS |
Client Code | Kullanıcı Adı | Şifre | Guid Anahtar |
| Moka | BankService::MOKA |
Bayi Kodu | Api Kullanıcısı | Api Şifresi | — |
| Ahlpay | BankService::AHLPAY |
Member ID | Api Kullanıcısı | Api Şifresi | API Key |
| Payten (MSU) | BankService::PAYTEN |
Firma Kodu | Api Kullanıcısı | Api Şifresi | — |
| Tami | BankService::TAMI |
Üye İşyeri No | Terminal No | KidValue|KValue | Secret Key |
| PayNKolay | BankService::PAYNKOLAY |
sx (Token) | sx list | sx iptal | Secret Key |
Nestpay bankalarında (Alternatif Bank, Anadolubank, Denizbank, Halkbank, ING Bank, İş Bankası, Şekerbank, TEB, Türkiye Finans, Ziraat Bankası, Cardplus) alan eşlemesi aynıdır: Mağaza Kodu, Api Kullanıcısı, Api Şifresi, 3D Storekey.
Proje Yapısı
Yapılandırma
Config dosyasında (config/sanalpos.php) aşağıdaki ayarlar mevcuttur:
| Ayar | Env Değişkeni | Varsayılan | Açıklama |
|---|---|---|---|
test_mode |
SANALPOS_TEST_MODE |
true |
Tüm işlemleri test ortamına yönlendirir |
timeout |
SANALPOS_TIMEOUT |
60 |
HTTP istek zaman aşımı (saniye) |
verify_ssl |
SANALPOS_VERIFY_SSL |
true |
SSL sertifika doğrulaması (production'da true olmalıdır) |
connect_timeout |
SANALPOS_CONNECT_TIMEOUT |
10 |
HTTP bağlantı kurma zaman aşımı (saniye) |
Hata Yönetimi
HTTP istekleri sırasında oluşan hatalar HttpRequestException olarak fırlatılır:
Test
Lisans
MIT lisansı altında dağıtılmaktadır. Detaylar için LICENSE dosyasına bakınız.
Referans
Bu PHP paketi, cempehlivan/CP.VPOS (.NET) kütüphanesinin mimari yapısı ve iş akışları temel alınarak geliştirilmiştir.
All versions of php-trsanalpos with dependencies
illuminate/support Version ^10.0|^11.0|^12.0|^13.0
guzzlehttp/guzzle Version ^7.0
psr/log Version ^2.0|^3.0
ext-simplexml Version *
ext-openssl Version *
ext-json Version *