diff --git a/README.md b/README.md
index 9c318f68..2671af5a 100644
--- a/README.md
+++ b/README.md
@@ -10,6 +10,17 @@ Bu paket ile amaçlanan; ortak bir arayüz sınıfı ile, tüm Türk banka sanal
### Deskteklenen Payment Gateway'ler / Bankalar:
+- **AKÖde**
+
+ Desktekleyen bankalar: Akbank
+
+ Desteklenen özellikler:
+ - NonSecure, 3DPay ve 3DHost ödeme
+ - Ödeme İptal ve İade
+ - Ödeme durum sorgulama
+ - Tarihçe sorgulama
+
+
- **EST POS** (Asseco/Payten)
Desktekleyen bankalar: Akbank, TEB, İşbank, Şekerbank, Halkbank ve Finansbank
@@ -115,10 +126,11 @@ Bu paket ile amaçlanan; ortak bir arayüz sınıfı ile, tüm Türk banka sanal
- 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 sorgulama (`PosInterface::TX_STATUS`)
+ - Sipariş/Ödeme durum sorgulama (`PosInterface::TX_STATUS`)
- Sipariş/Ödeme geçmişi sorgulama (`PosInterface::TX_HISTORY`)
- Sipariş/Para iadesi yapma (`PosInterface::TX_REFUND`)
- Sipariş iptal etme (`PosInterface::TX_CANCEL`)
+ - 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
diff --git a/config/pos_production.php b/config/pos_production.php
index 0b4bdebf..b68e8c3e 100644
--- a/config/pos_production.php
+++ b/config/pos_production.php
@@ -20,6 +20,15 @@
'gateway_3d_host' => 'https://sanalpos.sanalakpos.com.tr/fim/est3Dgate',
],
],
+ 'akode' => [
+ 'name' => 'AKBANK T.A.S.',
+ 'class' => Mews\Pos\Gateways\AkOdePos::class,
+ 'gateway_endpoints' => [
+ 'payment_api' => 'https://api.akodepos.com/api/Payment',
+ 'gateway_3d' => 'https://api.akodepos.com/api/Payment/ProcessCardForm',
+ 'gateway_3d_host' => 'https://api.akodepos.com/api/Payment/threeDSecure',
+ ],
+ ],
'finansbank' => [
'name' => 'QNB Finansbank',
'class' => Mews\Pos\Gateways\EstV3Pos::class,
diff --git a/config/pos_test.php b/config/pos_test.php
index 5f71ba30..6dd7939c 100644
--- a/config/pos_test.php
+++ b/config/pos_test.php
@@ -18,6 +18,15 @@
'gateway_3d' => 'https://entegrasyon.asseco-see.com.tr/fim/est3Dgate',
],
],
+ 'akode' => [
+ 'name' => 'AKBANK T.A.S.',
+ 'class' => Mews\Pos\Gateways\AkOdePos::class,
+ 'gateway_endpoints' => [
+ 'payment_api' => 'https://ent.akodepos.com/api/Payment',
+ 'gateway_3d' => 'https://ent.akodepos.com/api/Payment/ProcessCardForm',
+ 'gateway_3d_host' => 'https://ent.akodepos.com/api/Payment/threeDSecure',
+ ],
+ ],
'yapikredi' => [
'name' => 'Yapıkredi',
'class' => Mews\Pos\Gateways\PosNet::class,
diff --git a/examples/_common-codes/regular/cancel.php b/examples/_common-codes/regular/cancel.php
index 2b062bd2..1a57f97f 100644
--- a/examples/_common-codes/regular/cancel.php
+++ b/examples/_common-codes/regular/cancel.php
@@ -20,6 +20,7 @@ function createCancelOrder(PosInterface $pos, \Symfony\Component\HttpFoundation\
'currency' => $lastResponse['currency'] ?? PosInterface::CURRENCY_TRY,
'ref_ret_num' => $lastResponse['ref_ret_num'],
'ip' => filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ? $ip : '127.0.0.1',
+ 'rand' => substr(md5(uniqid(time())), 0, 23), //AkOde
];
if (get_class($pos) === \Mews\Pos\Gateways\GarantiPos::class) {
diff --git a/examples/_common-codes/regular/form.php b/examples/_common-codes/regular/form.php
index 3c211444..d4587764 100644
--- a/examples/_common-codes/regular/form.php
+++ b/examples/_common-codes/regular/form.php
@@ -15,6 +15,9 @@
$session->set('order', $order);
$transaction = $request->get('tx', PosInterface::TX_PAY);
+// examples'da post odeme butonu gostermek icin degeri kullanilir.
+$session->set('tx', $transaction);
+
$card = createCard($pos, $request->request->all());
require '../../_templates/_payment_response.php';
diff --git a/examples/_common-codes/regular/post-auth.php b/examples/_common-codes/regular/post-auth.php
index 66c9eb27..3422b4fa 100644
--- a/examples/_common-codes/regular/post-auth.php
+++ b/examples/_common-codes/regular/post-auth.php
@@ -20,6 +20,7 @@ function createPostPayOrder(PosInterface $pos, \Symfony\Component\HttpFoundation
'amount' => $lastResponse['amount'],
'currency' => $lastResponse['currency'] ?? PosInterface::CURRENCY_TRY,
'ip' => filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ? $ip : '127.0.0.1',
+ 'rand' => substr(md5(uniqid(time())), 0, 23), //AkOde
];
if (get_class($pos) === \Mews\Pos\Gateways\PosNetV1Pos::class || get_class($pos) === \Mews\Pos\Gateways\PosNet::class) {
diff --git a/examples/_common-codes/regular/refund.php b/examples/_common-codes/regular/refund.php
index 70c1d478..ab21114a 100644
--- a/examples/_common-codes/regular/refund.php
+++ b/examples/_common-codes/regular/refund.php
@@ -21,6 +21,7 @@ function createRefundOrder(PosInterface $pos, \Symfony\Component\HttpFoundation\
'currency' => $lastResponse['currency'] ?? PosInterface::CURRENCY_TRY,
'ref_ret_num' => $lastResponse['ref_ret_num'],
'ip' => filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ? $ip : '127.0.0.1',
+ 'rand' => substr(md5(uniqid(time())), 0, 23), //AkOde
];
if (get_class($pos) === \Mews\Pos\Gateways\GarantiPos::class) {
diff --git a/examples/_common-codes/regular/status.php b/examples/_common-codes/regular/status.php
index 1b5f99b7..de6c50f3 100644
--- a/examples/_common-codes/regular/status.php
+++ b/examples/_common-codes/regular/status.php
@@ -19,6 +19,7 @@ function createStatusOrder(PosInterface $pos, \Symfony\Component\HttpFoundation\
'id' => $lastResponse['order_id'], // MerchantOrderId
'currency' => $lastResponse['currency'] ?? PosInterface::CURRENCY_TRY,
'ip' => filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ? $ip : '127.0.0.1',
+ 'rand' => substr(md5(uniqid(time())), 0, 23), //AkOde
];
if (get_class($pos) === \Mews\Pos\Gateways\KuveytPos::class) {
$statusOrder['remote_order_id'] = $lastResponse['remote_order_id']; // OrderId
diff --git a/examples/_main_config.php b/examples/_main_config.php
index 17167eb8..f3dcd715 100644
--- a/examples/_main_config.php
+++ b/examples/_main_config.php
@@ -125,7 +125,7 @@ function getNewOrder(
'fail_url' => $failUrl, // https://example.com/payment
// gateway'e gore zorunlu olan degerler
- 'rand' => md5(uniqid(time())), // EstPos, Garanti, PayFor, InterPos, VakifBank
+ 'rand' => substr(md5(uniqid(time())), 0, 23), // AkOdePos, EstPos, Garanti, PayFor, InterPos, VakifBank
];
if ($lang) {
diff --git a/examples/_templates/_header.php b/examples/_templates/_header.php
index f6a04aa8..9fcccb8b 100644
--- a/examples/_templates/_header.php
+++ b/examples/_templates/_header.php
@@ -1,5 +1,5 @@
-
+
= $templateTitle; ?>
@@ -28,6 +28,7 @@