PHPackages                             mews/pos - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. mews/pos

ActiveLibrary[Payment Processing](/categories/payments)

mews/pos
========

Türk bankaları için sanal pos kütüphanesi

1.8.0(3mo ago)32414.6k↓24.1%109[1 issues](https://github.com/mewebstudio/pos/issues)[2 PRs](https://github.com/mewebstudio/pos/pulls)2MITPHPPHP &gt;=7.4CI passing

Since Aug 7Pushed 2mo ago21 watchersCompare

[ Source](https://github.com/mewebstudio/pos)[ Packagist](https://packagist.org/packages/mews/pos)[ Docs](https://github.com/mewebstudio/pos)[ RSS](/packages/mews-pos/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (23)Versions (90)Used By (2)

Türk bankaları için sanal pos paketi (PHP)
==========================================

[](#türk-bankaları-için-sanal-pos-paketi-php)

[![Version](https://camo.githubusercontent.com/497d9efbdfb607f3758a5d2b862dad1c43f593e9e01f1185da5001e4e0fa827f/68747470733a2f2f706f7365722e707567782e6f72672f6d6577732f706f732f76657273696f6e)](https://packagist.org/packages/mews/pos)[![Monthly Downloads](https://camo.githubusercontent.com/8d18522bbeb152caada275315fe4e7f9ca2d6f62180dbcbca440695e2e3dc71d/68747470733a2f2f706f7365722e707567782e6f72672f6d6577732f706f732f642f6d6f6e74686c79)](https://packagist.org/packages/mews/pos)[![License](https://camo.githubusercontent.com/f6ba399ef31719318543053358a3954d7e4857d1819f138afdebb2889ed6f8a3/68747470733a2f2f706f7365722e707567782e6f72672f6d6577732f706f732f6c6963656e7365)](https://packagist.org/packages/mews/pos)[![PHP Version Require](https://camo.githubusercontent.com/c7e4bb692cd65758aa6831326a10f44d5692ef098cafc1d7e3da2ee9071265fd/68747470733a2f2f706f7365722e707567782e6f72672f6d6577732f706f732f726571756972652f706870)](https://packagist.org/packages/mews/pos)

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:

[](#deskteklenen-payment-gatewayler--bankalar)

GatewayDesktekleyen
bankalarDesteklenen
Ödeme TipleriDesteklenen SorgularTosla
(eski AKÖde)?NonSecure
3DPay
3DHostİptal
İade
Durum sorgulama
Sipariş Tarihçesini sorgulama
Özel SorguParamPos?NonSecure
3DSecure
3DPay
3DHost (test edilmesi gerekiyor)İptal
İade
Durum sorgulama
Geçmiş İşlemleri sorgulama
Özel SorguAkbankPos
(Akbankın yeni altyapısı)AkbankNonSecure
3DSecur
3DPay
3DHost
Tekrarlanan Ödemeİptal
İade
Sipariş Tarihçesini sorgulama
Geçmiş İşlemleri sorgulama
Özel SorguEstV3Pos
(Asseco/Payten)
Eski `EstPos` altyapının
sha512 hash algoritmasıyla uygulaması.Akbank
TEB
İşbank
Şekerbank
Halkbank
Finansbank
ZiraatNonSecure
3DSecure
3DPay
3DHost
3DPayHost
Tekrarlanan Ödemeİptal
İade
Durum sorgulama
Sipariş Tarihçesini sorgulama
Özel SorguPayFlex MPI VPOS V4Ziraat
Vakıfbank VPOS 7/24
İşbankNonSecure
3DSecure
Tekrarlanan Ödemeİptal
İade
Durum sorgulama
Özel SorguPayFlex
Common Payment V4
(Ortak Ödeme)Ziraat
Vakıfbank
İşbank3DPay
3DHostÖzel SorguGaranti Virtual POSGarantiNonSecure
3DSecure
3DPay
3DHost
Tekrarlanan Ödemeİptal
İade
Durum sorgulama
Sipariş Tarihçesini sorgulama
Geçmiş İşlemleri sorgulama
Özel SorguPosNetYapıKrediNonSecure
3DSecure
İptal
İade
Durum sorgulama
Özel SorguPosNetV1
(JSON API)Albaraka TürkNonSecure
3DSecureİptal
İade
Durum sorgulama
Özel SorguPayForFinansbank
Enpara
Ziraat KatılımNonSecure
3DSecure
3DPay
3DHostİptal
İade
Durum sorgulama
Sipariş Tarihçesini sorgulama
Geçmiş İşlemleri sorgulama
Özel SorguInterPOSDeniz bankNonSecure
3DSecure
3DPay
3DHostİptal
İade
Durum sorgulama
Özel SorguKuveyt POS
TDV2.0.0Kuveyt TürkNonSecure
3DSecureİptal
İade
Durum sorgulama
(SOAP API)
Özel SorguVakifKatilimPosVakıf KatılımNonSecure (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

[](#ana-başlıklar)

- [Özellikler](#ozellikler)
- [Changelog](./docs/CHANGELOG.md)
- [Minimum Gereksinimler](#minimum-gereksinimler)
- [Kurulum](#kurulum)
- [Farklı Banka Sanal Poslarını Eklemek](#farkli-banka-sanal-poslarini-eklemek)
- [Ornek Kodlar](#ornek-kodlar)

    - [3DSecure, 3DPay ve 3DHost Ödeme Örneği](./docs/THREED-PAYMENT-EXAMPLE.md)
    - [3DSecure, 3DPay ve 3DHost Modal Box ile Ödeme Örneği](./docs/THREED-SECURE-AND-PAY-PAYMENT-IN-MODALBOX-EXAMPLE.md)
    - [QR Code ile Ödeme Örneği](./docs/QR-CODE-PAYMENT-EXAMPLE.md)
    - [Non Secure Ödeme Örneği](./docs/NON-SECURE-PAYMENT-EXAMPLE.md)
    - [Ön otorizasyon ve Ön otorizasyon kapama](./docs/PRE-AUTH-POST-EXAMPLE.md)
    - [Ödeme İptal](./docs/CANCEL-EXAMPLE.md)
    - [Ödeme İade](./docs/REFUND-EXAMPLE.md)
    - [Ödeme Durum Sorgulama](./docs/STATUS-EXAMPLE.md)
    - [Özel Sorgular](./docs/CUSTOM-QUERY-EXAMPLE.md)
- [Popup Windowda veya Iframe icinde odeme yapma](#popup-windowda-veya-iframe-icinde-odeme-yapma)
- [Troubleshoots](#troubleshoots)
- [Genel Kültür](#genel-kultur)
- [Docker ile test ortamı](#docker-ile-test-ortami)

### Ozellikler

[](#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`ve `PosInterface::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](https://www.php-fig.org/psr/psr-3/) logger desteği
- [PSR-18](https://www.php-fig.org/psr/psr-18/) HTTP Client desteği

#### Farkli Gateway'ler Tek islem akisi

[](#farkli-gatewayler-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.

### Minimum Gereksinimler

[](#minimum-gereksinimler)

- PHP &gt;= 7.4
- ext-dom
- ext-json
- ext-openssl
- ext-libxml
- ext-zlib
- ext-SimpleXML
- ext-soap (sadece KuveytPos için)
- [PSR-18](https://packagist.org/providers/psr/http-client-implementation): HTTP Client
- [PSR-14](https://packagist.org/providers/psr/event-dispatcher-implementation): Event Dispatcher

### Kurulum

[](#kurulum)

#### Frameworks

[](#frameworks)

- **Symfony** kurulum için [mews/pos-bundle](https://github.com/mewebstudio/PosBundle)kullanabilirsiniz.
- **Laravel** kurulum için [mews/laravel-pos](https://github.com/mewebstudio/laravel-pos)kullanabilirsiniz.

#### Basic kurulum

[](#basic-kurulum)

```
$ composer require symfony/event-dispatcher mews/pos
```

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:

```
$ composer require php-http/curl-client nyholm/psr7 symfony/event-dispatcher mews/pos
```

Diğer PSR-18 uygulamasını sağlayan kütüphaneler:

Sonra kendi projenizin dizinindeyken alttaki komutu çalıştırarak ayarlar dosyasını projenize kopyalayınız.

```
$ cp ./vendor/mews/pos/config/pos_production.php ./pos_prod_ayarlar.php
```

Test ortamda geliştirecekseniz test ayarları da kopyalanız:

```
$ cp ./vendor/mews/pos/config/pos_test.php ./pos_test_ayarlar.php
```

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:

```
$yeniAyarlar = require __DIR__ . '/pos_prod_ayarlar.php';
// veya test ortamı için $yeniAyarlar = require __DIR__ . '/pos_test_ayarlar.php';

$pos = \Mews\Pos\Factory\PosFactory::createPosGateway($account, $yeniAyarlar, $eventDispatcher);
```

*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

[](#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.

```
