code: public function execute($request)
      {
          RequestNotSupportedException::assertSupports($this, $request);
  
          /** @var PaymentInterface $payment */
          $payment = $request->getSource();
  
          $model = ArrayObject::ensureArrayObject($payment->getDetails());
  
          //$model['DESCRIPTION'] = $payment->getDescription();
          if (false == $model['amount']) {
              $this->gateway->execute($currency = new GetCurrency($payment->getCurrencyCode()));
              if (2 < $currency->exp) {
                  throw new RuntimeException('Unexpected currency exp.');
              }
              $divisor = pow(10, 2 - $currency->exp);
  
              $model['currency_code'] = $currency->numeric;
              $model['amount'] = abs($payment->getTotalAmount() / $divisor);
          }
  
          if (false == $model['order_id']) {
              $model['order_id'] = $payment->getNumber();
          }
  
          if (false == $model['customer_id']) {
              $model['customer_id'] = $payment->getClientId();
          }
          if (false == $model['customer_email']) {
              $model['customer_email'] = $payment->getClientEmail();
          }
  
          $request->setResult((array) $model);
      }
docs: {@inheritDoc}
  
  @param Convert $request