code: public function execute($request)
      {
          /** @var $request Capture */
          RequestNotSupportedException::assertSupports($this, $request);
  
          $model = ArrayObject::ensureArrayObject($request->getModel());
  
          if ( null !== $model['token'] )
  			return;
  
          if (false == $model['return_url'] && $request->getToken()) {
              $model['return_url'] = $request->getToken()->getTargetUrl();
          }
  
          if (false == $model['cancel_url'] && $request->getToken()) {
              $model['cancel_url'] = $request->getToken()->getTargetUrl();
          }
  
          $this->payment->execute(new SetExpressCheckout($model));
  
          if ( $model['error_code'] == '00' )
  		{
  			if ( !isset($model['checkout_url']) )
  			{
  				throw new \LogicException('Payment gateway Nganluong is not returned "checkout_url"');
  			}
  			
              throw new HttpRedirect(	$model['checkout_url'] );
  		}
          else
  		{
              return;   // failed
          }
      }
docs: {@inheritDoc}
  
  @param Capture $request