public function execute(\Magento\Framework\Event\Observer $observer)
 {
     /** @var \Magento\Sales\Model\Order $order */
     $payment = $observer->getData(self::DATA_PAYMENT);
     assert($payment instanceof \Magento\Sales\Model\Order\Payment);
     $order = $payment->getOrder();
     $quoteId = $order->getQuoteId();
     $regQuote = $this->_repoPartialQuote->getById($quoteId);
     if ($regQuote) {
         $orderId = $order->getId();
         $customerId = $order->getCustomerId();
         $amount = $regQuote->getBasePartialAmount();
         $req = new \Praxigento\Wallet\Service\Operation\Request\PayForSaleOrder();
         $req->setOrderId($orderId);
         $req->setCustomerId($customerId);
         $req->setBaseAmountToPay($amount);
         $this->_callOperation->payForSaleOrder($req);
     }
 }
 public function capture(\Magento\Payment\Model\InfoInterface $payment, $amount)
 {
     parent::capture($payment, $amount);
     /* collect data */
     assert($payment instanceof \Magento\Sales\Model\Order\Payment);
     /** @var \Magento\Sales\Model\Order $order */
     $order = $payment->getOrder();
     $orderId = $order->getId();
     $customerId = $order->getCustomerId();
     /* perform payment */
     $req = new \Praxigento\Wallet\Service\Operation\Request\PayForSaleOrder();
     $req->setCustomerId($customerId);
     $req->setOrderId($orderId);
     $req->setBaseAmountToPay($amount);
     $resp = $this->callOperation->payForSaleOrder($req);
     /* TODO: add transaction ID to payment */
     $operId = $resp->getOperationId();
     $payment->setTransactionId($operId);
     return $this;
 }