code: public function execute($request)
      {
          /** @var $request CallRequest */
          RequestNotSupportedException::assertSupports($this, $request);
  
          $model = ArrayObject::ensureArrayObject($request->getModel());
  
          if ($model['transaction_id']) {
              return;
          }
  
          $model['transaction_id'] = date('His'); // TODO store and increment in a file
  
          $renderTemplate = new RenderTemplate($this->templateName, array(
              'form' => $this->api->request($model->getArrayCopy()),
          ));
  
          $this->gateway->execute($renderTemplate);
  
          throw new HttpResponse($renderTemplate->getResult());
      }
docs: {@inheritDoc}
  
  @throws \Payum\Core\Reply\HttpRedirect       if authorization required.