Skip to content

Commit

Permalink
Merge pull request #63 from mewebstudio/60-vakifbank-odeme-calismiyor
Browse files Browse the repository at this point in the history
issue #60 Vakifbak 3D secure odeme sorunlari giderildi
  • Loading branch information
nuryagdym authored Apr 9, 2022
2 parents 3903b88 + 888298b commit 47c0ccf
Show file tree
Hide file tree
Showing 31 changed files with 717 additions and 554 deletions.
25 changes: 13 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,24 @@

Bu paket ile amaçlanan; ortak bir arayüz sınıfı ile, tüm Türk banka sanal pos sistemlerinin kullanılabilmesidir.

EST altyapısı tam olarak test edilmiş ve kullanıma hazırdır. Garanti Ödeme sistemi çalışmaktadır, fakat 3D ödeme kısmının üretim ortamında test edilmesi gerekiyor.
- **EST POS** altyapısı tam olarak test edilmiş ve kullanıma hazırdır. Akbank, TEB ve Ziraat bankası test edilmiştir.
- **Garanti Virtual POS** ödeme sistemi çalışmaktadır, fakat 3D ödeme kısmının üretim ortamında test edilmesi gerekiyor.

YapıKredi Posnet sistemi 3D ödeme çalışmaktadır, fakat `cancel`, `refund` işlemleri test edilmedi.
- **YapıKredi PosNet** sistemi 3D ödeme çalışmaktadır, fakat `cancel`, `refund` işlemleri test edilmedi.

Finansbank'ın PayFor sanal pos sistemini desteklemektedir, Finansbank'ın IP kısıtlaması olmadığı için localhost'ta test `examples` klasöründeki örnek kodları çalıştırabilirsiniz.
- **Finansbank PayFor** sanal pos sistemini desteklemektedir, Finansbank'ın IP kısıtlaması olmadığı için localhost'ta test `examples` klasöründeki örnek kodları çalıştırabilirsiniz.

VakifBank GET 7/24 MPI ve VPOS 7/24 eklendi ama test ortami olmadigi icin test edilemedi, gelen geri donuslere gore hatalar giderilecek.
> EST altyapısında olan Akbank, TEB ve Ziraat bankası test edilmiştir.
- **VakifBank GET 7/24 MPI ve VPOS 7/24** 3D Secure ödemesi çalışır durumda, diğer işlemlerde sorunlar ortaya çıktıkça giderilecek.

### Özellikler
- Standart E-Commerce modeliyle ödeme (model => regular)
- 3D modeliyle ödeme (model => 3d)
- 3D Pay modeliyle ödeme (model => 3d_pay)
- Sipariş/Ödeme sorgulama (status)
- Sipariş/Ödeme geçmişi sorgulama (history)
- Sipariş/Para iadesi yapma (refund)
- Sipariş iptal etme (cancel)
- Standart E-Commerce modeliyle ödeme (model => `regular`)
- 3D Secure modeliyle ödeme (model => `3d`)
- 3D Pay modeliyle ödeme (model => `3d_pay`)
- 3D Host modeliyle ödeme (model => `3d_host`)
- Sipariş/Ödeme sorgulama (`status`)
- Sipariş/Ödeme geçmişi sorgulama (`history`)
- Sipariş/Para iadesi yapma (`refund`)
- Sipariş iptal etme (`cancel`)

### Minimum Gereksinimler
- PHP >= 7.1.3
Expand Down
19 changes: 17 additions & 2 deletions examples/_main_config.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,25 @@
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$root = realpath($_SERVER["DOCUMENT_ROOT"]);
$root = realpath(__DIR__);
require_once "$root/../vendor/autoload.php";

$redis = new Redis();
/*$redis = new Redis();
$redis->connect('pos_redis', 6379);
$sessionHandler = new \Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler($redis);
$sessionHandler = new \Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage([
'cookie_samesite' => 'None'
], $sessionHandler);
*/

$sessionHandler = new \Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage([
'cookie_samesite' => 'None'
]);
$session = new \Symfony\Component\HttpFoundation\Session\Session($sessionHandler);
//banktan donuste eski session'a devam edemiyor, yeni session olusturuluyor
//eski session'deki order bilgiler kayboluyor.
//session id vererek, yeni session olusmasini engelliyoruz
$session->setId('mbu0tkd5vkbkksrkk824f1ib4a');


$hostUrl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http')."://$_SERVER[HTTP_HOST]";
38 changes: 14 additions & 24 deletions examples/vakifbank/3d/_config.php
Original file line number Diff line number Diff line change
@@ -1,34 +1,24 @@
<?php

use Mews\Pos\Exceptions\BankClassNullException;
use Mews\Pos\Exceptions\BankNotFoundException;
use Mews\Pos\Factory\AccountFactory;
use Mews\Pos\Factory\PosFactory;
use Mews\Pos\Gateways\VakifBankPos;
use Symfony\Component\HttpFoundation\Request;
require '../_payment_config.php';

require '../../_main_config.php';

$path = '/vakifbank/3d/';
$baseUrl = $hostUrl.$path;
$baseUrl = $hostUrl.'/vakifbank/3d/';

$successUrl = $failUrl = $baseUrl.'response.php';

$account = AccountFactory::createVakifBankAccount('vakifbank', '000000000111111', '3XTgER89as', 'VP999999', '3d');
$merchantId = '000000000111111';
$terminalId = 'VP000095';
$isyeriSifre = '3XTgER89as';
$account = \Mews\Pos\Factory\AccountFactory::createVakifBankAccount(
'vakifbank',
$merchantId,
$isyeriSifre,
$terminalId,
'3d'
);

$request = Request::createFromGlobals();
$ip = $request->getClientIp();
$pos = getGateway($account);

try {
/**
* @var VakifBankPos $pos
*/
$pos = PosFactory::createPosGateway($account);
$pos->setTestMode(true);
} catch (BankNotFoundException $e) {
dump($e->getCode(), $e->getMessage());
} catch (BankClassNullException $e) {
dump($e->getCode(), $e->getMessage());
}
$transaction = \Mews\Pos\Gateways\AbstractGateway::TX_PAY;

$templateTitle = '3D Model Payment';
89 changes: 0 additions & 89 deletions examples/vakifbank/3d/credit-card-form.php

This file was deleted.

47 changes: 47 additions & 0 deletions examples/vakifbank/3d/form.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?php

use Mews\Pos\Entity\Card\CreditCardVakifBank;
use Symfony\Component\HttpFoundation\RedirectResponse;

require '_config.php';
require '../../template/_header.php';
require '../_header.php';

if ($request->getMethod() !== 'POST') {
echo new RedirectResponse($baseUrl.'index.php');
exit();
}

$order = getNewOrder($baseUrl, $ip, $session, $request->get('installment'));
$session->set('order', $order);

$card = new CreditCardVakifBank(
$request->get('number'),
$request->get('year'),
$request->get('month'),
$request->get('cvv'),
$request->get('name'),
$request->get('type')
);

/**
* provizyonu (odemeyi) tamamlamak icin tekrar kredi kart bilgileri isteniyor, bu yuzden kaydediyoruz
*/
$session->set('card', [
'number' => $request->get('number'),
'year' => $request->get('year'),
'month' => $request->get('month'),
'cvv' => $request->get('cvv'),
'name' => $request->get('name'),
'type' => $request->get('type'),
]);

$pos->prepare($order, $transaction, $card);
try {
$formData = $pos->get3DFormData();
} catch (\Exception $e) {
dd($e);
}

require '../_redirect_form.php';
require '../../template/_footer.php';
11 changes: 11 additions & 0 deletions examples/vakifbank/3d/index.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

require '_config.php';
require '../../template/_header.php';
require '../_header.php';

$url = $baseUrl.'form.php';
$card = $testCards['visa1'];

require '../_credit_card_form.php';
require '../../template/_footer.php';
55 changes: 0 additions & 55 deletions examples/vakifbank/3d/process-credit-card-form.php

This file was deleted.

Loading

0 comments on commit 47c0ccf

Please sign in to comment.