Download the PHP package mews/pos without Composer
On this page you can find all versions of the php package mews/pos. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Package pos
Short Description Türk bankaları için sanal pos kütüphanesi
License MIT
Homepage https://github.com/mewebstudio/pos
Informations about the package pos
Türk bankaları için sanal pos paketi (PHP)
Bu paket ile amaçlanan; ortak bir arayüz sınıfı ile, tüm Türk banka sanal pos sistemlerinin kullanılabilmesidir.
Deskteklenen Payment Gateway'ler / Bankalar:
Gateway | Desktekleyen bankalar |
Desteklenen Ödeme Tipleri |
Desteklenen Sorgular |
---|---|---|---|
Tosla (AKÖde) | ? | NonSecure 3DPay 3DHost |
İptal İade Durum sorgulama Sipariş Tarihçesini sorgulama Özel Sorgu |
AkbankPos (Akbankın yeni altyapısı) |
Akbank | NonSecure 3DSecur 3DPay 3DHost Tekrarlanan Ödeme |
İptal İade Sipariş Tarihçesini sorgulama Geçmiş İşlemleri sorgulama Özel Sorgu |
EST POS (Asseco/Payten) deprecated |
Akbank TEB İşbank Şekerbank Halkbank Finansbank Ziraat |
NonSecure 3DSecure 3DPay 3DHost 3DPayHost Tekrarlanan Ödeme |
İptal İade Durum sorgulama Sipariş Tarihçesini sorgulama Özel Sorgu |
EST V3 POS EstPos altyapının daha güvenli (sha512) hash algoritmasıyla uygulaması. |
-----"----- | -----"----- | -----"----- |
PayFlex MPI VPOS V4 | Ziraat Vakıfbank VPOS 7/24 İşbank |
NonSecure 3DSecure Tekrarlanan Ödeme |
İptal İade Durum sorgulama Özel Sorgu |
PayFlex Common Payment V4 (Ortak Ödeme) |
Ziraat Vakıfbank İşbank |
NonSecure 3DPay 3DHost |
İptal İade Özel Sorgu |
Garanti Virtual POS | Garanti | NonSecure 3DSecure 3DPay 3DHost Tekrarlanan Ödeme |
İptal İade Durum sorgulama Sipariş Tarihçesini sorgulama Geçmiş İşlemleri sorgulama Özel Sorgu |
PosNet | YapıKredi | NonSecure 3DSecure |
İptal İade Durum sorgulama Özel Sorgu |
PosNetV1 (JSON API) |
Albaraka Türk | NonSecure 3DSecure |
İptal İade Durum sorgulama Özel Sorgu |
PayFor | Finansbank Enpara |
NonSecure 3DSecure 3DPay 3DHost |
İptal İade Durum sorgulama Sipariş Tarihçesini sorgulama Geçmiş İşlemleri sorgulama Özel Sorgu |
InterPOS | Deniz bank | NonSecure 3DSecure 3DPay 3DHost |
İptal İade Durum sorgulama Özel Sorgu |
Kuveyt POS TDV2.0.0 | Kuveyt Türk | NonSecure 3DSecure |
İptal İade Durum sorgulama (SOAP API) Özel Sorgu |
VakifKatilimPos | Vakıf Katılım | NonSecure (test edilmesi gerekiyor) 3DSecure 3DHost (test edilmesi gerekiyor) |
İptal İade Durum sorgulama Sipariş Tarihçesini sorgulama Geçmiş İşlemleri sorgulama Özel Sorgu |
Ana başlıklar
- Özellikler
- Latest updates
- Minimum Gereksinimler
- Kurulum
- Farklı Banka Sanal Poslarını Eklemek
-
Ornek Kodlar
- 3DSecure, 3DPay ve 3DHost Ödeme Örneği
- 3DSecure, 3DPay ve 3DHost Modal Box ile Ödeme Örneği
- Non Secure Ödeme Örneği
- Ön otorizasyon ve Ön otorizasyon kapama
- Ödeme İptal
- Ödeme İade
- Ödeme Durum Sorgulama
- Özel Sorgular
- Popup Windowda veya Iframe icinde odeme yapma
- Troubleshoots
- Genel Kültür
- Docker ile test ortamı
Ozellikler
- Non Secure E-Commerce modeliyle ödeme (
PosInterface::MODEL_NON_SECURE
) - 3D Secure modeliyle ödeme (
PosInterface::MODEL_3D_SECURE
) - 3D Pay modeliyle ödeme (
PosInterface::MODEL_3D_PAY
) - 3D Host modeliyle ödeme (
PosInterface::MODEL_3D_HOST
) - Sipariş/Ödeme durum sorgulama (
PosInterface::TX_TYPE_STATUS
) - Sipariş Tarihçesini sorgulama
sorgulama (
PosInterface::TX_TYPE_ORDER_HISTORY
) - Geçmiş işlemleri sorgulama (
PosInterface::TX_TYPE_HISTORY
) - Sipariş/Para iadesi yapma (
PosInterface::TX_TYPE_REFUND
vePosInterface::TX_TYPE_PARTIAL_REFUND
) - Sipariş iptal etme (
PosInterface::TX_TYPE_CANCEL
) - Özel Sorgular (
PosInterface::TX_TYPE_CUSTOM_QUERY
) - API istek verilerinin gateway API'na gönderilmeden önce değiştirebilme
- Farklı Para birimler ile ödeme desteği
- Tekrarlanan (Recurring) ödeme talimatları
- PSR-3 logger desteği
- PSR-18 HTTP Client desteği
Farkli Gateway'ler Tek islem akisi
- Bir (3DSecure, 3DPay, 3DHost, NonSecure) ödeme modelden diğerine geçiş çok az değişiklik gerektirir.
- Aynı tip işlem için farklı POS Gateway'lerden dönen değerler aynı formata normalize edilmiş durumda. Yani kod güncellemenize gerek yok.
- Aynı tip işlem için farklı Gateway'lere gönderilecek değerler de genel olarak aynı formatta olacak şekilde normalize edilmiştir.
Latest updates
Son yapılan değişiklikler için CHANGELOG
.
Minimum Gereksinimler
- PHP >= 7.4
- ext-dom
- ext-json
- ext-openssl
- ext-libxml
- ext-zlib
- ext-SimpleXML
- ext-soap (sadece KuveytPos için)
- PSR-18: HTTP Client
- PSR-14: Event Dispatcher
Kurulum
Frameworks
- Symfony kurulum için mews/pos-bundle kullanabilirsiniz.
- Laravel kurulum için mews/laravel-pos kullanabilirsiniz.
Basic kurulum
Kütüphane belli bir HTTP Client'ile zorunlu bağımlılığı yoktur. PSR-18 HTTP Client standarta uyan herhangi bir kütüphane kullanılabilinir. Projenizde zaten kurulu PSR-18 uygulaması varsa otomatik onu kullanır.
Veya hızlı başlangıç için:
Diğer PSR-18 uygulamasını sağlayan kütüphaneler: https://packagist.org/providers/psr/http-client-implementation
Sonra kendi projenizin dizinindeyken alttaki komutu çalıştırarak ayarlar dosyasını projenize kopyalayınız.
Test ortamda geliştirecekseniz test ayarları da kopyalanız:
Kopyaladıktan sonra ayarlardaki kullanmayacağınız banka ayarları silebilirsiniz.
Bundan sonra Pos
nesnemizi, yeni ayarlarımıza göre oluşturup kullanmamız
gerekir.
Örnek:
_Kütüphanede yer alan pos_production.php
ve pos_test.php
ayar dosyaları
projenizde direk kullanmayınız!
Yukarda belirtildiği gibi kopyalayarak kullanmanız tavsiye edilir._
Farkli Banka Sanal Poslarini Eklemek
Projenize kopyaladığınız ./pos_prod_ayarlar.php
dosyasına farklı banka ayarı
eklemek için alttaki örneği kullanabilirsiniz.
Ornek Kodlar
Örnekleri /docs
ve /examples
dizini içerisinde bulabilirsiniz.
3D ödeme örnek kodlar genel olarak kart bilgilerini website sunucusuna POST
eder (index.php
=> form.php
),
ondan sonra da işlenip gateway'e yönlendiriliyor.
Bu şekilde farklı bankalar arası implementation degişmemesi sağlanmakta (ortak
kredi kart formu ve aynı işlem akışı).
Genel olarak kart bilgilerini, website sunucusuna POST yapmadan,
direk gateway'e yönlendirecek şekilde kullanılabilinir (genelde, banka örnek
kodları bu şekilde implement edilmiş).
Fakat
- birden fazla bank seçeneği olunca veya müşteri banka degiştirmek istediğinde kart bilgi formunu ona göre güncellemeniz gerekecek.
- üstelik YKB POSNet, Vakıf Katılım ve VakıfBank POS kart bilgilerini website sunucusu tarafından POST edilmesini gerektiriyor.
Popup Windowda veya Iframe icinde odeme yapma
Müşteriyi banka sayfasına redirect etmeden iframe üzerinden veya popup window üzerinden ödeme akışı examples'da ve /docs'da 3D ödeme ile örnek PHP ve JS kodlar yer almaktadır.
Dikkat edilmesi gerekenler
- Popup window taraycı tarafından engellenebilir bu yüzden onun yerine modal box içinde iframe kullanılması tavsiye edilir.
Troubleshoots
Session sıfırlanması
Cookie session kullanığınızda, kullanıcı gatewayden geri websitenize
yönlendirilidiğinde session sıfırlanabilir.
Response'da samesite
değeri set etmeniz
gerekiyor. çözüm.
Shared hosting'lerde IP tanımsız hatası
- Shared hosting'lerde Cpanel'de gördüğünüz IP'den farklı olarak fiziksel sunucun bir tane daha IP'si olur. O IP adres Cpanel'de gözükmez, hosting firmanızdan sorup öğrenmeniz gerekmekte. Bu hatayı alırsanız hosting firmanın verdiği IP adrese'de banka gateway'i tarafından izin verilmesini sağlayın.
-
kütüphane ortam değerini de kontrol etmeyi unutmayınız.
- test ortamı için
$pos->setTestMode(true);
- canlı ortam için
$pos->setTestMode(false);
(default olarakfalse
)
ortam değeri hem bankaya istek gönderirken hem de gelen isteği işlerken doğru deger olması gerekiyor.
- test ortamı için
Debugging
Kütüphane PSR-3 standarta uygun logger uygulamayı destekler. Örnekler: https://packagist.org/providers/psr/log-implementation .
Monolog logger kullanım örnegi:
Genel Kultur
Ödeme modelleri hakkında bilgi edinmek istiyorsanız bu makaleyi inceleyebilirsiniz.
Otorizasyon, Ön Otorizasyon, Ön Provizyon Kapama İşlemler arasındaki farklar
- Otorizasyon - bildiğimiz ve genel olarak kullandığımız işlem. Tek seferde
ödeme işlemi biter.
Bu işlem için kullanıcıdan hep kredi kart bilgisini alınır.
İşlemin kütüphanedeki karşılığı
PosInterface::TX_TYPE_PAY_AUTH
- Ön Otorizasyon - müşteriden parayı direk çekmek yerine, işlem sonucunda
para bloke edilir.
Bu işlem için kullanıcıdan hep kredi kart bilgisini alınır.
İşlemin kütüphanedeki karşılığı
PosInterface::TX_TYPE_PAY_PRE_AUTH
- Ön Provizyon Kapama - ön provizyon sonucunda bloke edilen miktarın
çekimini gerçekleştirir.
Ön otorizasyon yapıldıktan sonra, örneğin 1 hafta sonra, Post Otorizasyon
isteği gönderilebilinir.
Bu işlem için kullanıcıdan kredi kart bilgisi alınmaz.
Onun yerine bazı gateway'ler
orderId
degeri istenir, bazıları ise ön provizyon sonucu dönen banka tarafındakiorderId
'yi ister. Satıcı ön otorizasyon isteği iptal etmek isterse decancel
isteği gönderir. Post Otorizasyon İşlemin kütüphanedeki karşılığıPosInterface::TX_TYPE_PAY_POST_AUTH
. Bu işlem sadece NonSecure ödeme modeliyle gerçekleşir. TX_TYPE_PAY_AUTH
vsTX_TYPE_PAY_PRE_AUTH
işlemler genelde bütün ödeme modelleri (NonSecure, 3DSecure, 3DPay ve 3DHost) tarafından desteklenir.
Refund ve Cancel işlemler arasındaki farklar
- Refund - Tamamlanan ödemeyi iade etmek için kullanılır.
Bu işlem bazı gatewaylerde sadece gün kapandıktan sonra yapılabilir.
İade işlemi için miktar zorunlu, çünkü ödenen ve iade edilen miktarı aynı
olmayabilir.
İşlemin kütüphanedeki karşılığı
PosInterface::TX_TYPE_REFUND
- Cancel - Tamamlanan ödemeyi iptal etmek için kullanılır.
Ödeme yapıldıktan sonra gün kapanmadan yapılabilir. Gün kapandıktan
sonra
refund
işlemi kullanmak zorundasınız. Genel olarak miktar bilgisi istenmez, ancak bazı Gateway'ler ister. İşlemin kütüphanedeki karşılığıPosInterface::TX_TYPE_CANCEL
Docker ile test ortami
- Makinenizde Docker kurulu olması gerekir.
- Projenin root klasöründe
docker-compose up -d
komutu çalıştırınız. - docker container'de
composer install
çalıştırınız.
Note: localhost port 80 boş olması gerekiyor.
Sorunsuz çalışması durumda kod örneklerine http://localhost/payten/3d/index.php
şekilde erişebilirsiniz.
http://localhost/ URL projenin examples
klasörünün içine bakar.
Unit testler çalıştırma
Projenin root klasoründe bu satırı çalıştırmanız gerekiyor
Değerli yorum, öneri ve katkılarınızı
Sorun bulursanız veya eklenmesi gereken POS sistemi varsa lütfen issue oluşturun.
License
MIT
All versions of pos with dependencies
ext-simplexml Version *
ext-dom Version *
ext-json Version *
ext-libxml Version *
ext-openssl Version *
ext-zlib Version *
php-http/discovery Version ^1.14
psr/event-dispatcher-implementation Version *
psr/http-client-implementation Version *
psr/log Version ^1.1 || ^2.0 || ^3.0
symfony/http-foundation Version ^4.0 || ^5.0 || ^6.0 || ^7.0
symfony/serializer Version ^4.0 || ^5.0 || ^6.0 || ^7.0