public function execute($request) { RequestNotSupportedException::assertSupports($this, $request); $model = ArrayObject::ensureArrayObject($request->getModel()); $httpRequest = new GetHttpRequest(); $this->payment->execute($httpRequest); if ($httpRequest->request) { $model->replace($httpRequest->request); $this->payment->execute(new Notify($model)); } else { throw new HttpPostRedirect($this->api->getNewPaymentUrl(), $this->api->buildFormParamsForPostRequest($model->toUnsafeArray())); } }