Skip to content

Commit

Permalink
docs and examples improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
nuryagdym committed Aug 3, 2024
1 parent 0803845 commit 2f1cd18
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 41 deletions.
68 changes: 33 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Türk bankaları için sanal pos paketi (PHP)

[![Version](http://poser.pugx.org/mews/pos/version)](https://packagist.org/packages/mews/pos)
[![Monthly Downloads](http://poser.pugx.org/mews/pos/d/monthly)](https://packagist.org/packages/mews/pos)
[![License](http://poser.pugx.org/mews/pos/license)](https://packagist.org/packages/mews/pos)
[![PHP Version Require](http://poser.pugx.org/mews/pos/require/php)](https://packagist.org/packages/mews/pos)
[![Version](https://poser.pugx.org/mews/pos/version)](https://packagist.org/packages/mews/pos)
[![Monthly Downloads](https://poser.pugx.org/mews/pos/d/monthly)](https://packagist.org/packages/mews/pos)
[![License](https://poser.pugx.org/mews/pos/license)](https://packagist.org/packages/mews/pos)
[![PHP Version Require](https://poser.pugx.org/mews/pos/require/php)](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.
Expand Down Expand Up @@ -119,20 +119,33 @@ $ composer require php-http/curl-client nyholm/psr7 symfony/event-dispatcher mew
Diğer PSR-18 uygulamasını sağlayan
kütüphaneler: https://packagist.org/providers/psr/http-client-implementation

### Farkli Banka Sanal Poslarini Eklemek
Sonra kendi projenizin dizinindeyken alttaki komutu çalıştırarak
ayarlar dosyasını projenize kopyalayınız.
```sh
$ cp ./vendor/mews/pos/config/pos_production.php ./pos_prod_ayarlar.php
```
Test ortamda geliştirecekseniz test ayarları da kopyalanız:
```sh
$ cp ./vendor/mews/pos/config/pos_test.php ./pos_test_ayarlar.php
```
Kopyaladıktan sonra ayarlardaki kullanmayacagığınız banka ayarları silebilirsiniz.

Kendi projenizin dizinindeyken
Bundan sonra `Pos` nesnemizi, yeni ayarlarımıza göre oluşturup kullanmamız gerekir.
Örnek:
```php
$yeniAyarlar = require __DIR__ . '/pos_prod_ayarlar.php';
// veya ortamı için $yeniAyarlar = require __DIR__ . '/pos_test_ayarlar.php';

```sh
$ cp ./vendor/mews/pos/config/pos_production.php ./pos_ayarlar.php
$pos = \Mews\Pos\Factory\PosFactory::createPosGateway($account, $yeniAyarlar, $eventDispatcher);
```

ya da;

Projenizde bir ayar dosyası oluşturup (`pos_ayarlar.php` gibi),
paket içerisinde `./config/pos_production.php` dosyasının içeriğini buraya
kopyalayın.
_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.
```php
<?php

Expand All @@ -150,7 +163,7 @@ return [
],

// Yeni eklenen banka
'isbank' => [
'isbank' => [ // unique bir isim vermeniz gerekir.
'name' => 'İŞ BANKASI .A.S.',
'class' => \Mews\Pos\Gateways\EstV3Pos::class, // Altyapı sınıfı
'gateway_endpoints' => [
Expand All @@ -160,21 +173,11 @@ return [
],
]
];

```

Bundan sonra nesnemizi, yeni ayarlarımıza göre oluşturup kullanmamız gerekir.
Örnek:

```php
//yeni ayar yolu ya da degeri
$yeniAyarlar = require __DIR__ . '/pos_ayarlar.php';
$pos = \Mews\Pos\Factory\PosFactory::createPosGateway($account, $yeniAyarlar, $eventDispatcher);
```

## Ornek Kodlar

`/examples` ve `/docs` dizini içerisinde.
Örnekleri `/examples` ve `/docs` dizini içerisinde bulabilirsiniz.

3D ödeme örnek kodlar genel olarak kart bilgilerini website sunucusuna POST
eder (`index.php` => `form.php`),
Expand All @@ -184,23 +187,19 @@ 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,
Fakat

- birden fazla bank seçenegi olunca veya müşteri banka degiştirmek istediginde
- 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 ve VakıfBank POS kart bilgilerini website sunucusu
- ü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/` içinde 3D ödeme ile örnek PHP ve JS kodlar yer almaktadır.

Ayrıca Modal Box ile iframe kullarak ödeme
örneği [/docs](./docs/THREED-SECURE-AND-PAY-PAYMENT-IN-MODALBOX-EXAMPLE.md)'ta
bulabilirsiniz.
[examples'da](./examples/) ve [/docs'da](./docs/THREED-SECURE-AND-PAY-PAYMENT-IN-MODALBOX-EXAMPLE.md) 3D ödeme ile örnek PHP ve JS kodlar yer almaktadır.

#### Dikkat edilmesi gerekenler

Expand All @@ -224,10 +223,9 @@ gerekiyor. [çözüm](https://stackoverflow.com/a/51128675/4896948).
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 degerini de kontrol etmeyi unutmayınız, ortama göre bankanın
URL'leri degişir.
- 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 olarak `false`)
- canlı ortam için `$pos->setTestMode(false);` (default olarak `false`)

_ortam değeri hem bankaya istek gönderirken hem de gelen isteği işlerken doğru
deger olması gerekiyor._
Expand Down
3 changes: 2 additions & 1 deletion docs/PRE-AUTH-POST-EXAMPLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ require './vendor/autoload.php';

$sessionHandler = new \Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage([
'cookie_samesite' => 'None',
'cookie_secure' => true,
'cookie_secure' => true,
'cookie_httponly' => true, // Javascriptin session'a erişimini engelliyoruz.
]);
$session = new \Symfony\Component\HttpFoundation\Session\Session($sessionHandler);
$session->start();
Expand Down
3 changes: 2 additions & 1 deletion docs/THREED-PAYMENT-EXAMPLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ require './vendor/autoload.php';

$sessionHandler = new \Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage([
'cookie_samesite' => 'None',
'cookie_secure' => true,
'cookie_secure' => true,
'cookie_httponly' => true, // Javascriptin session'a erişimini engelliyoruz.
]);
$session = new \Symfony\Component\HttpFoundation\Session\Session($sessionHandler);
$session->start();
Expand Down
3 changes: 2 additions & 1 deletion docs/THREED-SECURE-AND-PAY-PAYMENT-IN-MODALBOX-EXAMPLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ require './vendor/autoload.php';

$sessionHandler = new \Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage([
'cookie_samesite' => 'None',
'cookie_secure' => true,
'cookie_secure' => true,
'cookie_httponly' => true, // Javascriptin session'a erişimini engelliyoruz.
]);
$session = new \Symfony\Component\HttpFoundation\Session\Session($sessionHandler);
$session->start();
Expand Down
6 changes: 3 additions & 3 deletions examples/_main_config.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,17 @@

$sessionHandler = new \Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage([
'cookie_samesite' => 'None',
'cookie_secure' => true,
'cookie_secure' => true,
'cookie_httponly' => true, // Javascriptin session'a erişimini engelliyoruz.
]);
$session = new Session($sessionHandler);
$session->start();

$hostUrl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http')."://$_SERVER[HTTP_HOST]";
//$hostUrl .= '/pos/examples';
$subMenu = [];

$handler = new \Monolog\Handler\StreamHandler(__DIR__.'/../var/log/pos.log', \Psr\Log\LogLevel::DEBUG);
$logger = new \Monolog\Logger('pos', [$handler]);
$logger = new \Monolog\Logger('pos', [$handler]);

$eventDispatcher = new Symfony\Component\EventDispatcher\EventDispatcher();

Expand Down

0 comments on commit 2f1cd18

Please sign in to comment.