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()));
     }
 }
 public function execute($request)
 {
     RequestNotSupportedException::assertSupports($this, $request);
     $model = $request->getModel();
     /** @var PaymentInterface $payment */
     $payment = $this->paymentRepository->findOneBy([$this->identifier => $model['p24_payment_id']]);
     $model['p24_amount'] = $payment->getAmount();
     $state = $this->api->getPaymentStatus($model);
     $details = array_merge($payment->getDetails(), ['state' => $state]);
     $payment->setDetails($details);
     $status = new GetStatus($payment);
     $this->payment->execute($status);
     $nextState = $status->getValue();
     $this->updatePaymentState($payment, $nextState);
     $this->objectManager->flush();
 }