コード例 #1
0
ファイル: Gateway.php プロジェクト: payum/core
 /**
  * {@inheritDoc}
  */
 public function execute($request, $catchReply = false)
 {
     $context = new Context($this, $request, $this->stack);
     array_push($this->stack, $context);
     try {
         $this->extensions->onPreExecute($context);
         if (false == $context->getAction()) {
             if (false == ($action = $this->findActionSupported($context->getRequest()))) {
                 throw RequestNotSupportedException::create($context->getRequest());
             }
             $context->setAction($action);
         }
         $this->extensions->onExecute($context);
         $context->getAction()->execute($request);
         $this->extensions->onPostExecute($context);
         array_pop($this->stack);
     } catch (ReplyInterface $reply) {
         $context->setReply($reply);
         $this->extensions->onPostExecute($context);
         array_pop($this->stack);
         if ($catchReply && $context->getReply()) {
             return $context->getReply();
         }
         if ($context->getReply()) {
             throw $context->getReply();
         }
     } catch (\Exception $e) {
         $context->setException($e);
         $this->onPostExecuteWithException($context);
     }
     return;
 }
コード例 #2
0
ファイル: Payment.php プロジェクト: Studio-40/Payum
 /**
  * {@inheritDoc}
  */
 public function execute($request, $catchReply = false)
 {
     $action = null;
     try {
         $this->extensions->onPreExecute($request);
         if (false == ($action = $this->findActionSupported($request))) {
             throw RequestNotSupportedException::create($request);
         }
         $this->extensions->onExecute($request, $action);
         $action->execute($request);
         $this->extensions->onPostExecute($request, $action);
     } catch (ReplyInterface $reply) {
         $reply = $this->extensions->onReply($reply, $request, $action) ?: $reply;
         if ($catchReply) {
             return $reply;
         }
         throw $reply;
     } catch (\Exception $e) {
         $this->extensions->onException($e, $request, $action ?: null);
         throw $e;
     }
     return null;
 }
コード例 #3
0
ファイル: Payment.php プロジェクト: sanchojaf/oldmytriptocuba
 /**
  * {@inheritDoc}
  */
 public function execute($request, $catchInteractive = false)
 {
     $action = null;
     try {
         $this->extensions->onPreExecute($request);
         if (false == ($action = $this->findActionSupported($request))) {
             throw RequestNotSupportedException::create($request);
         }
         $this->extensions->onExecute($request, $action);
         $action->execute($request);
         $this->extensions->onPostExecute($request, $action);
     } catch (InteractiveRequestInterface $interactiveRequest) {
         $interactiveRequest = $this->extensions->onInteractiveRequest($interactiveRequest, $request, $action) ?: $interactiveRequest;
         if ($catchInteractive) {
             return $interactiveRequest;
         }
         throw $interactiveRequest;
     } catch (\Exception $e) {
         $this->extensions->onException($e, $request, $action ?: null);
         throw $e;
     }
     return null;
 }
コード例 #4
0
 /**
  * @test
  */
 public function shouldCreateWithSuggestionsOnIdentityAsModel()
 {
     $request = new Capture(new Identity('theId', \stdClass::class));
     $exception = RequestNotSupportedException::create($request);
     $this->assertInstanceOf(RequestNotSupportedException::class, $exception);
     $this->assertEquals('Request Capture{model: Identity} is not supported. Make sure the storage extension for "stdClass" is registered to the gateway. Make sure the storage find method returns an instance by id "theId". Make sure the gateway supports the requests and there is an action which supports this request (The method returns true). There may be a bug, so look for a related issue on the issue tracker.', $exception->getMessage());
 }
コード例 #5
0
 /**
  * @test
  */
 public function shouldCreateWithObjectRequest()
 {
     $exception = RequestNotSupportedException::create(new \stdClass());
     $this->assertInstanceOf('Payum\\Core\\Exception\\RequestNotSupportedException', $exception);
     $this->assertEquals('Request stdClass is not supported.', $exception->getMessage());
 }