From 832cf42befd450907579561d0ab463498c5b2c0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Derya=20=C3=87akmak?= <36774966+deryacakmak@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:20:51 +0300 Subject: [PATCH] Add BKM Express Integration (#126) * BKM Express Integration * Abb BKM Express Integration --- samples/complete_bkm_express_payment.php | 13 +++++++++ samples/init_bkm_express_payment.php | 36 ++++++++++++++++++++++++ samples/retrieve_bkm_express_payment.php | 7 +++++ src/Adapter/BkmExpressPaymentAdapter.php | 24 ++++++++++++++++ src/Craftgate.php | 5 ++++ src/Model/PaymentAuthenticationType.php | 1 + 6 files changed, 86 insertions(+) create mode 100644 samples/complete_bkm_express_payment.php create mode 100644 samples/init_bkm_express_payment.php create mode 100644 samples/retrieve_bkm_express_payment.php create mode 100644 src/Adapter/BkmExpressPaymentAdapter.php diff --git a/samples/complete_bkm_express_payment.php b/samples/complete_bkm_express_payment.php new file mode 100644 index 0000000..086527d --- /dev/null +++ b/samples/complete_bkm_express_payment.php @@ -0,0 +1,13 @@ + true, + 'message' => 'İşlem Başarılı', + 'ticketId' => 'dcfdc163-0545-46d7-8f86-5a11718e56ec' +); + +$response = SampleConfig::craftgate()->bkmExpress()->complete($request); + +print_r($response); diff --git a/samples/init_bkm_express_payment.php b/samples/init_bkm_express_payment.php new file mode 100644 index 0000000..86cec62 --- /dev/null +++ b/samples/init_bkm_express_payment.php @@ -0,0 +1,36 @@ + 100, + 'paidPrice' => 100, + 'currency' => Currency::TL, + 'paymentGroup' => PaymentGroup::LISTING_OR_SUBSCRIPTION, + 'conversationId' => '456d1297-908e-4bd6-a13b-4be31a6e47d5', + 'items' => array( + array( + 'externalId' => Guid::generate(), + 'name' => 'Item 1', + 'price' => 30 + ), + array( + 'externalId' => Guid::generate(), + 'name' => 'Item 2', + 'price' => 50 + ), + array( + 'externalId' => Guid::generate(), + 'name' => 'Item 3', + 'price' => 20 + ) + ) +); + +$response = SampleConfig::craftgate()->bkmExpress()->init($request); + +print_r($response); diff --git a/samples/retrieve_bkm_express_payment.php b/samples/retrieve_bkm_express_payment.php new file mode 100644 index 0000000..d7aaa57 --- /dev/null +++ b/samples/retrieve_bkm_express_payment.php @@ -0,0 +1,7 @@ +bkmExpress()->retrievePayment("dcfdc163-0545-46d7-8f86-5a11718e56ec"); + +print_r($response); diff --git a/src/Adapter/BkmExpressPaymentAdapter.php b/src/Adapter/BkmExpressPaymentAdapter.php new file mode 100644 index 0000000..6bd3925 --- /dev/null +++ b/src/Adapter/BkmExpressPaymentAdapter.php @@ -0,0 +1,24 @@ +httpPost($path, $request); + } + + public function complete(array $request) + { + $path = "/payment/v1/bkm-express/complete"; + return $this->httpPost($path, $request); + } + + public function retrievePayment($ticketId) + { + $path = "/payment/v1/bkm-express/payments/" . $ticketId; + return $this->httpGet($path); + } +} diff --git a/src/Craftgate.php b/src/Craftgate.php index 0916ccf..f025cfc 100644 --- a/src/Craftgate.php +++ b/src/Craftgate.php @@ -3,6 +3,7 @@ namespace Craftgate; use Craftgate\Adapter\BankAccountTrackingAdapter; +use Craftgate\Adapter\BkmExpressPaymentAdapter; use Craftgate\Adapter\FileReportingAdapter; use Craftgate\Adapter\FraudAdapter; use Craftgate\Adapter\HookAdapter; @@ -124,4 +125,8 @@ public function juzdan() { return new JuzdanPaymentAdapter($this->options); } + public function bkmExpress() + { + return new BkmExpressPaymentAdapter($this->options); + } } diff --git a/src/Model/PaymentAuthenticationType.php b/src/Model/PaymentAuthenticationType.php index 5986006..4f2560d 100644 --- a/src/Model/PaymentAuthenticationType.php +++ b/src/Model/PaymentAuthenticationType.php @@ -6,4 +6,5 @@ class PaymentAuthenticationType { const THREE_DS = 'THREE_DS'; const NON_THREE_DS = 'NON_THREE_DS'; + const BKM_EXPRESS = 'BKM_EXPRESS'; }