I created one module for bank transfer which will collect data from customer. This is working fine when i placed an order. But when i edit an order from admin and try to add comments to order then it is giving below error message.
1 exception(s):
Exception #0 (Magento\Framework\Webapi\Exception): Request does not match any route.
Exception #0 (Magento\Framework\Webapi\Exception): Request does not match any route.
#0 /var/www/html/b2b/vendor/magento/module-webapi/Controller/Rest/RequestValidator.php(83): Magento\Webapi\Controller\Rest\Router->match(Object(Magento\Framework\Webapi\Rest\Request))
#1 /var/www/html/b2b/vendor/magento/module-webapi/Controller/Rest/RequestValidator.php(68): Magento\Webapi\Controller\Rest\RequestValidator->checkPermissions()
#2 /var/www/html/b2b/vendor/magento/module-webapi/Controller/Rest/InputParamsResolver.php(86): Magento\Webapi\Controller\Rest\RequestValidator->validate()
#3 /var/www/html/b2b/app/code/Ibnab/Additional/Observer/SaveBankInfoToOrderObserver.php(21): Magento\Webapi\Controller\Rest\InputParamsResolver->resolve()
Here is the complete code of my observer .
<?php
namespace Ibnab\Additional\Observer;
use Magento\Framework\Event\Observer as EventObserver;
use Magento\Framework\Event\ObserverInterface;
use Magento\OfflinePayments\Model\Banktransfer;
class SaveBankInfoToOrderObserver implements ObserverInterface {
protected $_inputParamsResolver;
protected $_quoteRepository;
protected $logger;
protected $_state;
public function __construct(\Magento\Webapi\Controller\Rest\InputParamsResolver $inputParamsResolver, \Magento\Quote\Model\QuoteRepository $quoteRepository, \Psr\Log\LoggerInterface $logger,\Magento\Framework\App\State $state) {
$this->_inputParamsResolver = $inputParamsResolver;
$this->_quoteRepository = $quoteRepository;
$this->logger = $logger;
$this->_state = $state;
}
public function execute(EventObserver $observer) {
$inputParams = $this->_inputParamsResolver->resolve();
if($this->_state->getAreaCode() != \Magento\Framework\App\Area::AREA_ADMINHTML){
foreach ($inputParams as $inputParam) {
if ($inputParam instanceof \Magento\Quote\Model\Quote\Payment) {
$paymentData = $inputParam->getData('additional_data');
$paymentOrder = $observer->getEvent()->getPayment();
$order = $paymentOrder->getOrder();
$quote = $this->_quoteRepository->get($order->getQuoteId());
$paymentQuote = $quote->getPayment();
$method = $paymentQuote->getMethodInstance()->getCode();
if ($method == Banktransfer::PAYMENT_METHOD_BANKTRANSFER_CODE) {
if(isset($paymentData['bankowner'])){
$paymentQuote->setData('bankowner', $paymentData['bankowner']);
$paymentOrder->setData('bankowner', $paymentData['bankowner']);
}
if(isset($paymentData['banknumber'])){
$paymentQuote->setData('banknumber', $paymentData['banknumber']);
$paymentOrder->setData('banknumber', $paymentData['banknumber']);
}
if(isset($paymentData['banktransid'])){
$paymentQuote->setData('banktransid', $paymentData['banktransid']);
$paymentOrder->setData('banktransid', $paymentData['banktransid']);
}
if(isset($paymentData['bankname'])){
$paymentQuote->setData('bankname', $paymentData['bankname']);
$paymentOrder->setData('bankname', $paymentData['bankname']);
}
}
}
}
// print_r($paymentQuote);exit;
}
}
}
Can any one help me on how to resolve this error?