From c5dd76e7087703a99b627957d9f4d3508848afc7 Mon Sep 17 00:00:00 2001 From: siemsonNarson Date: Tue, 25 Feb 2020 13:30:21 +0100 Subject: [PATCH 1/3] adding session into private field and update with memo function --- Model/Api/Order.php | 15 ++++++++++----- Model/Api/Order/Helper.php | 5 +++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Model/Api/Order.php b/Model/Api/Order.php index b206de9..6a8dfc5 100755 --- a/Model/Api/Order.php +++ b/Model/Api/Order.php @@ -3,6 +3,8 @@ namespace Riskified\Decider\Model\Api; use Magento\Checkout\Model\Session; +use Riskified\Decider\Model\Api\Order\Helper; +use Riskified\Decider\Model\Api\Order\Log; use Riskified\OrderWebhook\Model; class Order @@ -61,6 +63,7 @@ class Order * @var \Magento\Framework\Api\SearchCriteriaBuilder */ private $searchCriteriaBuilder; + private $session; /** * Order constructor. @@ -89,6 +92,7 @@ public function __construct( \Riskified\Decider\Model\QueueFactory $queueFactory, \Magento\Sales\Api\OrderRepositoryInterface $orderRepository, \Magento\Checkout\Model\Session $checkoutSession, + \Magento\Framework\Session\SessionManager $sessionManager, \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder ) { $this->_api = $api; @@ -99,6 +103,7 @@ public function __construct( $this->_backendAuthSession = $backendAuthSession; $this->_messageManager = $messageManager; $this->logger = $logger; + $this->session = $sessionManager; $this->date = $date; $this->queueFactory = $queueFactory; $this->orderRepository = $orderRepository; @@ -292,7 +297,7 @@ private function load($model) unset($order_array['browser_ip']); unset($order_array['cart_token']); $order_array['source'] = 'admin'; - }else{ + } else { $order_array['source'] = 'web'; } @@ -361,7 +366,7 @@ public function loadOrderByOrigId($full_orig_id) /** * validate if provided is is matching - */ + */ $order_id = false; $increment_id = false; @@ -446,9 +451,9 @@ public function scheduleSubmissionRetry(\Magento\Sales\Model\Order $order, $acti if ($existingRetries->getSize() == 0) { $queue = $this->queueFactory->create(); $queue->addData(array( - 'order_id' => $order->getId(), - 'action' => $action, - 'updated_at' => $this->date->gmtDate() + 'order_id' => $order->getId(), + 'action' => $action, + 'updated_at' => $this->date->gmtDate() ))->save(); $this->logger->log("New retry scheduled successfully"); diff --git a/Model/Api/Order/Helper.php b/Model/Api/Order/Helper.php index 933a4dd..92e2d43 100755 --- a/Model/Api/Order/Helper.php +++ b/Model/Api/Order/Helper.php @@ -448,6 +448,11 @@ public function getRefundDetails() return $refundObjectCollection; } + public function getCreditMemoFromRegistry() + { + return $this->registry->registry('creditMemo'); + } + /** * @return null|Model\PaymentDetails * @throws \Exception From 471209889cbec01716a9c72f05a2fea0c36bf513 Mon Sep 17 00:00:00 2001 From: siemsonNarson Date: Wed, 26 Feb 2020 09:26:22 +0100 Subject: [PATCH 2/3] adding csrf-valiadtor plugin --- Plugin/CsrfValidatorSkip.php | 24 ++++++++++++++++++++++++ etc/di.xml | 3 +++ 2 files changed, 27 insertions(+) create mode 100644 Plugin/CsrfValidatorSkip.php diff --git a/Plugin/CsrfValidatorSkip.php b/Plugin/CsrfValidatorSkip.php new file mode 100644 index 0000000..bd7f95c --- /dev/null +++ b/Plugin/CsrfValidatorSkip.php @@ -0,0 +1,24 @@ +getModuleName() == 'decider') { + return; + } + $proceed($request, $action); + } +} \ No newline at end of file diff --git a/etc/di.xml b/etc/di.xml index 6fa9a08..e927f08 100755 --- a/etc/di.xml +++ b/etc/di.xml @@ -33,4 +33,7 @@ + + + \ No newline at end of file From dda59f4cc3737e04918480adf2552c0cd7e55303 Mon Sep 17 00:00:00 2001 From: siemsonNarson Date: Wed, 4 Mar 2020 10:34:57 +0100 Subject: [PATCH 3/3] updated refund endpoint --- Model/Api/Order.php | 4 ++++ Model/Api/Order/Helper.php | 9 --------- Model/Observer/OrderPaymentRefund.php | 3 +-- etc/adminhtml/events.xml | 2 +- 4 files changed, 6 insertions(+), 12 deletions(-) diff --git a/Model/Api/Order.php b/Model/Api/Order.php index 6a8dfc5..d3a0364 100755 --- a/Model/Api/Order.php +++ b/Model/Api/Order.php @@ -148,14 +148,17 @@ public function post($order, $action) break; case Api::ACTION_UPDATE: $orderForTransport = $this->load($order); + $this->logger->log(serialize($orderForTransport)); $response = $transport->updateOrder($orderForTransport); break; case Api::ACTION_SUBMIT: $orderForTransport = $this->load($order); + $this->logger->log(serialize($orderForTransport)); $response = $transport->submitOrder($orderForTransport); break; case Api::ACTION_CANCEL: $orderForTransport = $this->_orderHelper->getOrderCancellation(); + $this->logger->log(serialize($orderForTransport)); $response = $transport->cancelOrder($orderForTransport); break; case Api::ACTION_FULFILL: @@ -164,6 +167,7 @@ public function post($order, $action) break; case Api::ACTION_REFUND: $orderForTransport = $this->loadRefund(); + $this->logger->log(serialize($orderForTransport)); $response = $transport->refundOrder($orderForTransport); break; } diff --git a/Model/Api/Order/Helper.php b/Model/Api/Order/Helper.php index 92e2d43..3ff028f 100755 --- a/Model/Api/Order/Helper.php +++ b/Model/Api/Order/Helper.php @@ -440,19 +440,10 @@ public function getRefundDetails() array_push($refundObjectCollection, $this->buildRefundDetailsObject($memo)); } } - $currentMemo = $this->getCreditMemoFromRegistry(); - if(!is_null($currentMemo)){ - array_push($refundObjectCollection, $this->buildRefundDetailsObject($currentMemo)); - } return $refundObjectCollection; } - public function getCreditMemoFromRegistry() - { - return $this->registry->registry('creditMemo'); - } - /** * @return null|Model\PaymentDetails * @throws \Exception diff --git a/Model/Observer/OrderPaymentRefund.php b/Model/Observer/OrderPaymentRefund.php index 843ba5b..86bc4a3 100644 --- a/Model/Observer/OrderPaymentRefund.php +++ b/Model/Observer/OrderPaymentRefund.php @@ -53,9 +53,8 @@ public function __construct( public function execute(\Magento\Framework\Event\Observer $observer) { try { - $order = $observer->getPayment()->getOrder(); $creditMemo = $observer->getEvent()->getCreditmemo(); - $this->saveMemoInRegistry($creditMemo); + $order = $creditMemo->getOrder(); $this->apiOrderLayer->post($order, Api::ACTION_REFUND); } catch (\Exception $e) { $this->messageManager->addErrorMessage( diff --git a/etc/adminhtml/events.xml b/etc/adminhtml/events.xml index fa45db1..d3494fe 100755 --- a/etc/adminhtml/events.xml +++ b/etc/adminhtml/events.xml @@ -32,7 +32,7 @@ - +