From 1106c92b94fe768babd567c68c2e29fd3d961de4 Mon Sep 17 00:00:00 2001 From: deryacakmak <97deryacakmak@gmail.com> Date: Wed, 3 Jun 2026 11:10:11 +0300 Subject: [PATCH 1/4] Add MealVoucherCardTokenizationAdapter with init, regenerate, and complete methods and related sample scripts --- ...omplete_meal_voucher_card_tokenization.php | 13 ++++++++++ .../init_meal_voucher_card_tokenization.php | 16 ++++++++++++ ...enerate_meal_voucher_card_tokenization.php | 15 +++++++++++ src/Adapter/BkmExpressPaymentAdapter.php | 6 ----- .../MealVoucherCardTokenizationAdapter.php | 25 +++++++++++++++++++ src/Craftgate.php | 6 +++++ 6 files changed, 75 insertions(+), 6 deletions(-) create mode 100644 samples/complete_meal_voucher_card_tokenization.php create mode 100644 samples/init_meal_voucher_card_tokenization.php create mode 100644 samples/regenerate_meal_voucher_card_tokenization.php create mode 100644 src/Adapter/MealVoucherCardTokenizationAdapter.php diff --git a/samples/complete_meal_voucher_card_tokenization.php b/samples/complete_meal_voucher_card_tokenization.php new file mode 100644 index 0000000..a9e99a5 --- /dev/null +++ b/samples/complete_meal_voucher_card_tokenization.php @@ -0,0 +1,13 @@ + '412289' +); + +$response = SampleConfig::craftgate()->mealVoucherCardTokenization()->complete($sessionId, $request); + +print_r($response); diff --git a/samples/init_meal_voucher_card_tokenization.php b/samples/init_meal_voucher_card_tokenization.php new file mode 100644 index 0000000..2020257 --- /dev/null +++ b/samples/init_meal_voucher_card_tokenization.php @@ -0,0 +1,16 @@ + ApmType::SETCARD, + 'mealVoucherCardTokenizationData' => array( + 'callbackUrl' => 'https://webhook.site/e806070a-da76-4d02-a67b-54ba9e8332d3' + ) +); + +$response = SampleConfig::craftgate()->mealVoucherCardTokenization()->init($request); + +print_r($response); diff --git a/samples/regenerate_meal_voucher_card_tokenization.php b/samples/regenerate_meal_voucher_card_tokenization.php new file mode 100644 index 0000000..a629ef8 --- /dev/null +++ b/samples/regenerate_meal_voucher_card_tokenization.php @@ -0,0 +1,15 @@ + array( + 'callbackUrl' => 'https://webhook.site/e806070a-da76-4d02-a67b-54ba9e8332d3' + ) +); + +$response = SampleConfig::craftgate()->mealVoucherCardTokenization()->regenerate($sessionId, $request); + +print_r($response); diff --git a/src/Adapter/BkmExpressPaymentAdapter.php b/src/Adapter/BkmExpressPaymentAdapter.php index 99b2634..cb49996 100644 --- a/src/Adapter/BkmExpressPaymentAdapter.php +++ b/src/Adapter/BkmExpressPaymentAdapter.php @@ -16,12 +16,6 @@ public function complete(array $request) return $this->httpPost($path, $request); } - public function retrievePayment($ticketId) - { - $path = "/payment/v1/bkm-express/payments/" . $ticketId; - return $this->httpGet($path); - } - public function retrievePaymentByToken($token) { $path = "/payment/v1/bkm-express/" . $token; diff --git a/src/Adapter/MealVoucherCardTokenizationAdapter.php b/src/Adapter/MealVoucherCardTokenizationAdapter.php new file mode 100644 index 0000000..55fc027 --- /dev/null +++ b/src/Adapter/MealVoucherCardTokenizationAdapter.php @@ -0,0 +1,25 @@ +httpPost($path, $request); + } + + public function regenerate(string $sessionId, array $request) + { + $path = "/payment/v1/meal-voucher/card-tokenizations/{$sessionId}/regenerate"; + return $this->httpPost($path, $request); + } + + public function complete(string $sessionId, array $request) + { + $path = "/payment/v1/meal-voucher/card-tokenizations/{$sessionId}/complete"; + return $this->httpPost($path, $request); + } +} diff --git a/src/Craftgate.php b/src/Craftgate.php index d96d4ad..d3fb3d3 100644 --- a/src/Craftgate.php +++ b/src/Craftgate.php @@ -10,6 +10,7 @@ use Craftgate\Adapter\InstallmentAdapter; use Craftgate\Adapter\JuzdanPaymentAdapter; use Craftgate\Adapter\MasterpassPaymentAdapter; +use Craftgate\Adapter\MealVoucherCardTokenizationAdapter; use Craftgate\Adapter\MerchantAdapter; use Craftgate\Adapter\MerchantApmAdapter; use Craftgate\Adapter\OnboardingAdapter; @@ -136,4 +137,9 @@ public function bkmExpress() { return new BkmExpressPaymentAdapter($this->options); } + + public function mealVoucherCardTokenization() + { + return new MealVoucherCardTokenizationAdapter($this->options); + } } From dd3a9bf4a29107c284d31be5288a12e998934152 Mon Sep 17 00:00:00 2001 From: deryacakmak <97deryacakmak@gmail.com> Date: Wed, 3 Jun 2026 11:11:18 +0300 Subject: [PATCH 2/4] Update sample script with placeholder values for session and validation code in `complete_meal_voucher_card_tokenization.php` --- samples/complete_meal_voucher_card_tokenization.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/complete_meal_voucher_card_tokenization.php b/samples/complete_meal_voucher_card_tokenization.php index a9e99a5..bf21a32 100644 --- a/samples/complete_meal_voucher_card_tokenization.php +++ b/samples/complete_meal_voucher_card_tokenization.php @@ -2,10 +2,10 @@ require_once('config/sample_config.php'); -$sessionId = '8340ef48-faad-475c-9185-3f5381623e2f'; +$sessionId = '$sessionId'; $request = array( - 'validationCode' => '412289' + 'validationCode' => '111111' ); $response = SampleConfig::craftgate()->mealVoucherCardTokenization()->complete($sessionId, $request); From b2ba5342e60c5feaa3f79bc481b42acfe641022c Mon Sep 17 00:00:00 2001 From: deryacakmak <97deryacakmak@gmail.com> Date: Wed, 3 Jun 2026 11:39:08 +0300 Subject: [PATCH 3/4] Remove deprecated BKM Express payment retrieval sample script --- samples/retrieve_bkm_express_payment.php | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 samples/retrieve_bkm_express_payment.php diff --git a/samples/retrieve_bkm_express_payment.php b/samples/retrieve_bkm_express_payment.php deleted file mode 100644 index d7aaa57..0000000 --- a/samples/retrieve_bkm_express_payment.php +++ /dev/null @@ -1,7 +0,0 @@ -bkmExpress()->retrievePayment("dcfdc163-0545-46d7-8f86-5a11718e56ec"); - -print_r($response); From f03301928d8c002e1ef186677402c1d313a6ebad Mon Sep 17 00:00:00 2001 From: deryacakmak <97deryacakmak@gmail.com> Date: Thu, 4 Jun 2026 11:36:04 +0300 Subject: [PATCH 4/4] Update callback URL placeholder and session variable in meal voucher tokenization samples --- samples/init_meal_voucher_card_tokenization.php | 2 +- samples/regenerate_meal_voucher_card_tokenization.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/init_meal_voucher_card_tokenization.php b/samples/init_meal_voucher_card_tokenization.php index 2020257..00b41dd 100644 --- a/samples/init_meal_voucher_card_tokenization.php +++ b/samples/init_meal_voucher_card_tokenization.php @@ -7,7 +7,7 @@ $request = array( 'apmType' => ApmType::SETCARD, 'mealVoucherCardTokenizationData' => array( - 'callbackUrl' => 'https://webhook.site/e806070a-da76-4d02-a67b-54ba9e8332d3' + 'callbackUrl' => 'https://www.yourdomain.com/callback' ) ); diff --git a/samples/regenerate_meal_voucher_card_tokenization.php b/samples/regenerate_meal_voucher_card_tokenization.php index a629ef8..1911e07 100644 --- a/samples/regenerate_meal_voucher_card_tokenization.php +++ b/samples/regenerate_meal_voucher_card_tokenization.php @@ -6,10 +6,10 @@ $request = array( 'mealVoucherCardTokenizationData' => array( - 'callbackUrl' => 'https://webhook.site/e806070a-da76-4d02-a67b-54ba9e8332d3' + 'callbackUrl' => 'https://www.yourdomain.com/callback' ) ); -$response = SampleConfig::craftgate()->mealVoucherCardTokenization()->regenerate($sessionId, $request); +$response = SampleConfig::craftgate()->mealVoucherCardTokenization()->regenerate(session-id, $request); print_r($response);