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 @@