From 5dce555350daaff23c05e861fd2e911f477b852b Mon Sep 17 00:00:00 2001 From: Ivan Pugach Date: Thu, 25 Jan 2024 16:21:50 +0200 Subject: [PATCH 1/5] [PT-887] OXID Hosted checkout --- Controller/CancelController.php | 15 +++++++ Controller/DeclineController.php | 15 +++++++ Controller/MonduCheckoutController.php | 7 ++- Controller/SuccessController.php | 60 ++++++++++++++++++++++++++ Core/Http/HttpRequest.php | 5 ++- Core/Http/MonduClient.php | 14 ++++-- Core/Mappers/MonduOrderMapper.php | 11 ++++- metadata.php | 5 ++- out/src/js/mondu_checkout.js | 14 +++--- 9 files changed, 131 insertions(+), 15 deletions(-) create mode 100644 Controller/CancelController.php create mode 100644 Controller/DeclineController.php create mode 100644 Controller/SuccessController.php diff --git a/Controller/CancelController.php b/Controller/CancelController.php new file mode 100644 index 0000000..b0df9e3 --- /dev/null +++ b/Controller/CancelController.php @@ -0,0 +1,15 @@ +addErrorToDisplay('Mondu: Order has been canceled'); + Registry::getUtils()->redirect(Registry::getConfig()->getShopSecureHomeUrl() . 'cl=basket', false); + } +} diff --git a/Controller/DeclineController.php b/Controller/DeclineController.php new file mode 100644 index 0000000..198c700 --- /dev/null +++ b/Controller/DeclineController.php @@ -0,0 +1,15 @@ +addErrorToDisplay('Mondu: Order has been declined'); + Registry::getUtils()->redirect(Registry::getConfig()->getShopSecureHomeUrl() . 'cl=basket', false); + } +} diff --git a/Controller/MonduCheckoutController.php b/Controller/MonduCheckoutController.php index a238780..2fbcf25 100644 --- a/Controller/MonduCheckoutController.php +++ b/Controller/MonduCheckoutController.php @@ -31,14 +31,17 @@ public function createOrder() $orderData = $this->_orderMapper->getMappedOrderData($paymentMethod); $response = $this->_client->createOrder($orderData); - $token = isset($response['uuid']) ? $response['uuid'] : 'error'; + $token = $response['uuid'] ?? 'error'; if ($token !== 'error') { $session = Registry::getSession(); $session->setVariable('mondu_order_uuid', $token); } - echo json_encode(['token' => $token]); + echo json_encode([ + 'token' => $token, + 'hostedCheckoutUrl' => $response['hosted_checkout_url'] ?? false + ]); exit(); } diff --git a/Controller/SuccessController.php b/Controller/SuccessController.php new file mode 100644 index 0000000..6d5b263 --- /dev/null +++ b/Controller/SuccessController.php @@ -0,0 +1,60 @@ +_client = oxNew(MonduClient::class); + $this->_oOrder = $order; + $this->_oMonduOrder = null; + $this->getMonduOrder(); + } + + /** + * @throws \Exception + */ + public function createOrder() + { + $monduId = Registry::get(Request::class)->getRequestEscapedParameter('order_uuid'); + $externalReferenceId = Registry::get(Request::class)->getRequestEscapedParameter('external_reference_id'); + + if (!$monduId || !$externalReferenceId) { + throw new \Exception('Mondu: Not found'); + } + + try { + $response = $this->_client->authorizeOrder([ + 'orderUid' => $monduId, + 'external_reference_id' => $externalReferenceId + ]); + + } catch (Exception $e) { + throw new \Exception('Mondu: Error during the order process'); + } + } + + protected function getMonduOrder() + { + if ($this->_oOrder && $this->_oOrder->isMonduPayment() && !$this->_oMonduOrder) { + $this->_oMonduOrder = array_values($this->_oOrder->getMonduOrders()->getArray())[0]; + } + } +} diff --git a/Core/Http/HttpRequest.php b/Core/Http/HttpRequest.php index bb0ac0c..0dbd952 100644 --- a/Core/Http/HttpRequest.php +++ b/Core/Http/HttpRequest.php @@ -143,7 +143,10 @@ public function send_request(string $url, array $data, string $method) $response = json_decode($response, true); - if (@$response['errors'] != null || @$response['error'] != null) { + if ( + (isset($response['errors']) && $response['errors'] != null) || + (isset($response['error']) && $response['error'] != null) + ) { throw new InvalidRequestException('[MONDU__ERROR] ' . json_encode($response), $data, $response); } diff --git a/Core/Http/MonduClient.php b/Core/Http/MonduClient.php index cfa7147..c8745d2 100644 --- a/Core/Http/MonduClient.php +++ b/Core/Http/MonduClient.php @@ -13,8 +13,8 @@ class MonduClient { private Config $_config; private HttpRequest $_client; - private $_baseUrl = ''; - private $_logger = null; + private $_baseUrl; + private $_logger; public function __construct() { @@ -40,6 +40,12 @@ public function createOrder($data = []) return $order['order'] ?? null; } + public function authorizeOrder($data = []) + { + $order = $this->sendRequest('POST', 'orders', $data); + return $order['order'] ?? null; + } + public function updateOrderExternalInfo($orderUuid, $data = []) { $order = $this->sendRequest('POST', 'orders/' . $orderUuid . '/update_external_info', $data); @@ -108,8 +114,8 @@ protected function sendRequest($method = 'GET', $url = '', $body = []) { try { $url = $this->_baseUrl . $url; - $response = $this->_client->send_request($url, $body, $method); - return $response; + + return $this->_client->send_request($url, $body, $method); } catch (InvalidRequestException $e) { $this->_logger->error("MonduClient [{$method} {$url}]: Failed with an exception message: {$e->getString()}"); diff --git a/Core/Mappers/MonduOrderMapper.php b/Core/Mappers/MonduOrderMapper.php index 566bf29..4c8a3a2 100644 --- a/Core/Mappers/MonduOrderMapper.php +++ b/Core/Mappers/MonduOrderMapper.php @@ -2,6 +2,7 @@ namespace OxidEsales\MonduPayment\Core\Mappers; +use OxidEsales\Eshop\Core\Registry; use OxidEsales\MonduPayment\Core\Utils\MonduHelper; class MonduOrderMapper @@ -36,20 +37,26 @@ protected function getBasketUser() public function getMappedOrderData($paymentMethod) { + $session = Registry::getSession(); $basket = $this->getBasket(); - + $monduOrderUuid = $session->getVariable('mondu_order_uuid'); $tax = array_values($basket->getProductVats(false))[0]; $discount = $basket->getTotalDiscount()->getPrice(); $shipping = $basket->getDeliveryCost()->getPrice(); + $externalReferenceId = uniqid('M_OX_'); $data = [ "currency" => $basket->getBasketCurrency()->name, "payment_method" => $paymentMethod, - "external_reference_id" => uniqid('M_OX_'), + "external_reference_id" => $externalReferenceId, "gross_amount_cents" => round($basket->getPriceForPayment() * 100), "buyer" => MonduHelper::removeEmptyElementsFromArray($this->getBuyerData()), "billing_address" => MonduHelper::removeEmptyElementsFromArray($this->getUserBillingAddress()), "shipping_address" => MonduHelper::removeEmptyElementsFromArray($this->getUserDeliveryAddress()), + "success_url" => Registry::getConfig()->getShopSecureHomeUrl() . 'cl=oemondusuccess&fnc=createOrder&external_reference_id=' . $externalReferenceId . '&order_uuid=' . $monduOrderUuid, + "cancel_url" => Registry::getConfig()->getShopSecureHomeUrl() . 'cl=oemonducancel', + "declined_url" => Registry::getConfig()->getShopSecureHomeUrl() . 'cl=oemondudeclined', + "state_flow" => 'authorization_flow', "lines" => [[ "tax_cents" => round($tax * 100), "shipping_price_cents" => round($shipping * 100), diff --git a/metadata.php b/metadata.php index 87bdd65..24003fb 100644 --- a/metadata.php +++ b/metadata.php @@ -34,7 +34,10 @@ ), 'controllers' => array( 'oemonducheckout' => \OxidEsales\MonduPayment\Controller\MonduCheckoutController::class, - 'oemonduwebhooks' => \OxidEsales\MonduPayment\Controller\MonduWebhooksController::class + 'oemonduwebhooks' => \OxidEsales\MonduPayment\Controller\MonduWebhooksController::class, + 'oemonducancel' => \OxidEsales\MonduPayment\Controller\CancelController::class, + 'oemondudecline' => \OxidEsales\MonduPayment\Controller\DeclineController::class, + 'oemondusuccess' => \OxidEsales\MonduPayment\Controller\SuccessController::class ), 'blocks' => array( array( diff --git a/out/src/js/mondu_checkout.js b/out/src/js/mondu_checkout.js index 67682e0..98839f3 100644 --- a/out/src/js/mondu_checkout.js +++ b/out/src/js/mondu_checkout.js @@ -36,13 +36,17 @@ class MonduCheckout { event.preventDefault(); if (this._isWidgetLoaded) { - const token = await this._getMonduToken(); + const monduOrderData = await this._getMonduOrderData(); - if (!token) { + if (!monduOrderData || !monduOrderData.token) { window.location.href = this._paymentUrl; } - this._renderWidget(token); + if (monduOrderData.hostedCheckoutUrl) { + window.location.href = monduOrderData.hostedCheckoutUrl; + } else { + this._renderWidget(monduOrderData.token); + } } } @@ -57,13 +61,13 @@ class MonduCheckout { }); } - async _getMonduToken() { + async _getMonduOrderData() { try { const client = new HttpRequest(); const { data } = await client.post('?cl=oemonducheckout&fnc=createOrder', {}); if (data.token !== 'error') { - return data.token; + return data; } else { return null; } From d52dfca2b39e7e97280c240b5bb927df826a6a84 Mon Sep 17 00:00:00 2001 From: Ivan Pugach Date: Fri, 26 Jan 2024 11:19:25 +0200 Subject: [PATCH 2/5] [PT-887] Implement Hosted Checkout --- Controller/OrderController.php | 118 ++++++++++++++++++++++++++---- Controller/SuccessController.php | 60 --------------- Core/Http/MonduClient.php | 6 ++ Core/Mappers/MonduOrderMapper.php | 7 +- Core/Utils/MonduHelper.php | 2 +- metadata.php | 3 +- 6 files changed, 117 insertions(+), 79 deletions(-) delete mode 100644 Controller/SuccessController.php diff --git a/Controller/OrderController.php b/Controller/OrderController.php index 9ea163d..3cc178d 100644 --- a/Controller/OrderController.php +++ b/Controller/OrderController.php @@ -2,22 +2,114 @@ namespace OxidEsales\MonduPayment\Controller; +use OxidEsales\Eshop\Application\Model\Basket; +use OxidEsales\Eshop\Application\Model\Order; +use OxidEsales\Eshop\Application\Model\User; +use OxidEsales\Eshop\Core\Exception\StandardException; use OxidEsales\Eshop\Core\Registry; +use OxidEsales\Eshop\Core\Request; +use OxidEsales\Eshop\Core\UtilsView; +use OxidEsales\MonduPayment\Core\Http\MonduClient; use OxidEsales\MonduPayment\Core\Utils\MonduHelper; +use Symfony\Component\Config\Definition\Exception\Exception; class OrderController extends OrderController_parent { - public function isMonduPayment() - { - $session = Registry::getSession(); - $paymentId = $session->getVariable("paymentid"); - - return MonduHelper::isMonduPayment($paymentId); - } - - public function getPaymentPageUrl() - { - $shopUrl = $this->getConfig()->getShopSecureHomeURL(); - return $shopUrl . '&cl=payment&payerror=2'; - } + private MonduClient $_client; + private User|null|false $_oUser; + + public function __construct() + { + parent::__construct(); + + $this->_client = oxNew(MonduClient::class); + $this->_oUser = $this->getUser(); + } + + public function isMonduPayment() + { + $session = Registry::getSession(); + $paymentId = $session->getVariable('paymentid'); + + return MonduHelper::isMonduPayment($paymentId); + } + + public function getPaymentPageUrl() + { + $shopUrl = \OxidEsales\Eshop\Core\Registry::getConfig()->getShopSecureHomeURL(); + return $shopUrl . '&cl=payment&payerror=2'; + } + + /** + * @throws \Exception + */ + public function execute() + { + if($this->isMonduPayment()){ + $orderUuid = Registry::get(Request::class)->getRequestEscapedParameter('order_uuid'); + + if (!$orderUuid) { + throw new \Exception('Mondu: Not found'); + } + + $monduOrder = $this->_client->getMonduOrder($orderUuid); + $response = $this->_client->confirmOrder($orderUuid, [ + 'external_reference_id' => $monduOrder['external_reference_id'] + ]); + + if (isset($response['state']) && $response['state'] == 'confirmed') { + try { + $iSuccess = $this->monduExecute($this->getBasket()); + + return $this->_getNextStep($iSuccess); + } catch (Exception $e) { + throw new \Exception('Mondu: Error during the order process'); + } + } + } + + // if user is not logged in set the user + if(!$this->getUser() && isset($this->_oUser)){ + $this->setUser($this->_oUser); + } + + return parent::execute(); + } + + /** + * Save order to database, delete order_id from session and redirect to thank you page + * + * @param Basket $oBasket + * + * @return bool|int|mixed + */ + protected function monduExecute(Basket $oBasket) + { + if (!Registry::getSession()->getVariable('sess_challenge')) { + Registry::getSession()->setVariable('sess_challenge', Registry::getUtilsObject()->generateUID()); + } + + $oBasket->calculateBasket(true); + + $oOrder = oxNew(Order::class); + try { + $iSuccess = $oOrder->finalizeOrder($oBasket, $oBasket->getUser()); + } catch (StandardException $e) { + Registry::get(UtilsView::class)->addErrorToDisplay($e); + } + + if ($iSuccess === 1) { + // performing special actions after user finishes order (assignment to special user groups) + $this->_oUser->onOrderExecute($oBasket, $iSuccess); + + if ($this->isRegisterNewUserNeeded()) { + $oEmail = oxNew(\OxidEsales\Eshop\Core\Email::class); + $oEmail->sendForgotPwdEmail($this->_oUser->oxuser__oxusername->value); + } + + Registry::getSession()->setVariable('paymentid', 'oxmondu'); + } + + return $iSuccess; + } } diff --git a/Controller/SuccessController.php b/Controller/SuccessController.php deleted file mode 100644 index 6d5b263..0000000 --- a/Controller/SuccessController.php +++ /dev/null @@ -1,60 +0,0 @@ -_client = oxNew(MonduClient::class); - $this->_oOrder = $order; - $this->_oMonduOrder = null; - $this->getMonduOrder(); - } - - /** - * @throws \Exception - */ - public function createOrder() - { - $monduId = Registry::get(Request::class)->getRequestEscapedParameter('order_uuid'); - $externalReferenceId = Registry::get(Request::class)->getRequestEscapedParameter('external_reference_id'); - - if (!$monduId || !$externalReferenceId) { - throw new \Exception('Mondu: Not found'); - } - - try { - $response = $this->_client->authorizeOrder([ - 'orderUid' => $monduId, - 'external_reference_id' => $externalReferenceId - ]); - - } catch (Exception $e) { - throw new \Exception('Mondu: Error during the order process'); - } - } - - protected function getMonduOrder() - { - if ($this->_oOrder && $this->_oOrder->isMonduPayment() && !$this->_oMonduOrder) { - $this->_oMonduOrder = array_values($this->_oOrder->getMonduOrders()->getArray())[0]; - } - } -} diff --git a/Core/Http/MonduClient.php b/Core/Http/MonduClient.php index c8745d2..9dd8ea5 100644 --- a/Core/Http/MonduClient.php +++ b/Core/Http/MonduClient.php @@ -52,6 +52,12 @@ public function updateOrderExternalInfo($orderUuid, $data = []) return $order['order'] ?? null; } + public function confirmOrder($orderUuid, $data = []) + { + $order = $this->sendRequest('POST', 'orders/' . $orderUuid . '/confirm', $data); + return $order['order'] ?? null; + } + public function getMonduOrder($orderUuid) { $order = $this->sendRequest('GET', 'orders/' . $orderUuid); diff --git a/Core/Mappers/MonduOrderMapper.php b/Core/Mappers/MonduOrderMapper.php index 4c8a3a2..7f8d993 100644 --- a/Core/Mappers/MonduOrderMapper.php +++ b/Core/Mappers/MonduOrderMapper.php @@ -43,6 +43,7 @@ public function getMappedOrderData($paymentMethod) $tax = array_values($basket->getProductVats(false))[0]; $discount = $basket->getTotalDiscount()->getPrice(); $shipping = $basket->getDeliveryCost()->getPrice(); + $shopUrl = Registry::getConfig()->getCurrentShopUrl(); $externalReferenceId = uniqid('M_OX_'); $data = [ @@ -53,9 +54,9 @@ public function getMappedOrderData($paymentMethod) "buyer" => MonduHelper::removeEmptyElementsFromArray($this->getBuyerData()), "billing_address" => MonduHelper::removeEmptyElementsFromArray($this->getUserBillingAddress()), "shipping_address" => MonduHelper::removeEmptyElementsFromArray($this->getUserDeliveryAddress()), - "success_url" => Registry::getConfig()->getShopSecureHomeUrl() . 'cl=oemondusuccess&fnc=createOrder&external_reference_id=' . $externalReferenceId . '&order_uuid=' . $monduOrderUuid, - "cancel_url" => Registry::getConfig()->getShopSecureHomeUrl() . 'cl=oemonducancel', - "declined_url" => Registry::getConfig()->getShopSecureHomeUrl() . 'cl=oemondudeclined', + "success_url" => $shopUrl . '?cl=order&fnc=execute&order_uuid=' . $monduOrderUuid . '&sDeliveryAddressMD5=' . $this->getBasketUser()->getEncodedDeliveryAddress(), + "cancel_url" => $shopUrl . '?cl=oemonducancel', + "declined_url" => $shopUrl . '?cl=oemondudeclined', "state_flow" => 'authorization_flow', "lines" => [[ "tax_cents" => round($tax * 100), diff --git a/Core/Utils/MonduHelper.php b/Core/Utils/MonduHelper.php index 326d208..2aa3a74 100644 --- a/Core/Utils/MonduHelper.php +++ b/Core/Utils/MonduHelper.php @@ -22,7 +22,7 @@ public static function showErrorMessage($message = '') public static function isMonduPayment($paymentId = '') { - return stripos($paymentId, "oxmondu") !== false; + return stripos($paymentId, 'oxmondu') !== false; } public static function isMonduModuleActive() diff --git a/metadata.php b/metadata.php index 24003fb..66f68cb 100644 --- a/metadata.php +++ b/metadata.php @@ -36,8 +36,7 @@ 'oemonducheckout' => \OxidEsales\MonduPayment\Controller\MonduCheckoutController::class, 'oemonduwebhooks' => \OxidEsales\MonduPayment\Controller\MonduWebhooksController::class, 'oemonducancel' => \OxidEsales\MonduPayment\Controller\CancelController::class, - 'oemondudecline' => \OxidEsales\MonduPayment\Controller\DeclineController::class, - 'oemondusuccess' => \OxidEsales\MonduPayment\Controller\SuccessController::class + 'oemondudecline' => \OxidEsales\MonduPayment\Controller\DeclineController::class ), 'blocks' => array( array( From 11483a8f69357a627e2db72b00c830291e072d36 Mon Sep 17 00:00:00 2001 From: Ivan Pugach Date: Sun, 28 Jan 2024 12:50:43 +0200 Subject: [PATCH 3/5] [PT-887] OXID Hosted checkout. Remove redundant actions --- Controller/OrderController.php | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Controller/OrderController.php b/Controller/OrderController.php index 3cc178d..d20e6e4 100644 --- a/Controller/OrderController.php +++ b/Controller/OrderController.php @@ -89,9 +89,10 @@ protected function monduExecute(Basket $oBasket) Registry::getSession()->setVariable('sess_challenge', Registry::getUtilsObject()->generateUID()); } + $iSuccess = 0; $oBasket->calculateBasket(true); - $oOrder = oxNew(Order::class); + try { $iSuccess = $oOrder->finalizeOrder($oBasket, $oBasket->getUser()); } catch (StandardException $e) { @@ -101,13 +102,6 @@ protected function monduExecute(Basket $oBasket) if ($iSuccess === 1) { // performing special actions after user finishes order (assignment to special user groups) $this->_oUser->onOrderExecute($oBasket, $iSuccess); - - if ($this->isRegisterNewUserNeeded()) { - $oEmail = oxNew(\OxidEsales\Eshop\Core\Email::class); - $oEmail->sendForgotPwdEmail($this->_oUser->oxuser__oxusername->value); - } - - Registry::getSession()->setVariable('paymentid', 'oxmondu'); } return $iSuccess; From f20220a7c1fd022270a305143fee9f305899e8f2 Mon Sep 17 00:00:00 2001 From: Ivan Pugach Date: Mon, 5 Feb 2024 23:20:32 +0200 Subject: [PATCH 4/5] [PT-887] Hosted checkout. Fix the issue for the declined controller. --- Controller/{DeclineController.php => DeclinedController.php} | 2 +- metadata.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename Controller/{DeclineController.php => DeclinedController.php} (80%) diff --git a/Controller/DeclineController.php b/Controller/DeclinedController.php similarity index 80% rename from Controller/DeclineController.php rename to Controller/DeclinedController.php index 198c700..1d6cf0a 100644 --- a/Controller/DeclineController.php +++ b/Controller/DeclinedController.php @@ -5,7 +5,7 @@ use OxidEsales\Eshop\Core\Registry; use OxidEsales\Eshop\Core\UtilsView; -class DeclineController extends \OxidEsales\Eshop\Application\Controller\FrontendController +class DeclinedController extends \OxidEsales\Eshop\Application\Controller\FrontendController { public function render() { diff --git a/metadata.php b/metadata.php index 66f68cb..8a28c96 100644 --- a/metadata.php +++ b/metadata.php @@ -36,7 +36,7 @@ 'oemonducheckout' => \OxidEsales\MonduPayment\Controller\MonduCheckoutController::class, 'oemonduwebhooks' => \OxidEsales\MonduPayment\Controller\MonduWebhooksController::class, 'oemonducancel' => \OxidEsales\MonduPayment\Controller\CancelController::class, - 'oemondudecline' => \OxidEsales\MonduPayment\Controller\DeclineController::class + 'oemondudeclined' => \OxidEsales\MonduPayment\Controller\DeclinedController::class ), 'blocks' => array( array( From 2d312cd1cd43c8ef924d930d5134aa53b8eeb662 Mon Sep 17 00:00:00 2001 From: Ivan Pugach Date: Thu, 8 Feb 2024 01:23:40 +0200 Subject: [PATCH 5/5] [PT-887] Hosted checkout. Flow improvements --- Controller/CancelController.php | 2 +- Controller/DeclinedController.php | 2 +- Controller/OrderController.php | 4 +--- Core/Http/MonduClient.php | 6 ------ 4 files changed, 3 insertions(+), 11 deletions(-) diff --git a/Controller/CancelController.php b/Controller/CancelController.php index b0df9e3..9715f08 100644 --- a/Controller/CancelController.php +++ b/Controller/CancelController.php @@ -10,6 +10,6 @@ class CancelController extends \OxidEsales\Eshop\Application\Controller\Frontend public function render() { Registry::get(UtilsView::class)->addErrorToDisplay('Mondu: Order has been canceled'); - Registry::getUtils()->redirect(Registry::getConfig()->getShopSecureHomeUrl() . 'cl=basket', false); + Registry::getUtils()->redirect(Registry::getConfig()->getShopSecureHomeUrl() . 'cl=payment', false); } } diff --git a/Controller/DeclinedController.php b/Controller/DeclinedController.php index 1d6cf0a..69538dc 100644 --- a/Controller/DeclinedController.php +++ b/Controller/DeclinedController.php @@ -10,6 +10,6 @@ class DeclinedController extends \OxidEsales\Eshop\Application\Controller\Fronte public function render() { Registry::get(UtilsView::class)->addErrorToDisplay('Mondu: Order has been declined'); - Registry::getUtils()->redirect(Registry::getConfig()->getShopSecureHomeUrl() . 'cl=basket', false); + Registry::getUtils()->redirect(Registry::getConfig()->getShopSecureHomeUrl() . 'cl=payment', false); } } diff --git a/Controller/OrderController.php b/Controller/OrderController.php index d20e6e4..0322274 100644 --- a/Controller/OrderController.php +++ b/Controller/OrderController.php @@ -53,9 +53,7 @@ public function execute() } $monduOrder = $this->_client->getMonduOrder($orderUuid); - $response = $this->_client->confirmOrder($orderUuid, [ - 'external_reference_id' => $monduOrder['external_reference_id'] - ]); + $response = $this->_client->confirmOrder($orderUuid); if (isset($response['state']) && $response['state'] == 'confirmed') { try { diff --git a/Core/Http/MonduClient.php b/Core/Http/MonduClient.php index 9dd8ea5..1df7df9 100644 --- a/Core/Http/MonduClient.php +++ b/Core/Http/MonduClient.php @@ -40,12 +40,6 @@ public function createOrder($data = []) return $order['order'] ?? null; } - public function authorizeOrder($data = []) - { - $order = $this->sendRequest('POST', 'orders', $data); - return $order['order'] ?? null; - } - public function updateOrderExternalInfo($orderUuid, $data = []) { $order = $this->sendRequest('POST', 'orders/' . $orderUuid . '/update_external_info', $data);