Пример #1
0
 /**
  * @param Request $request
  * @return PaymentResult
  * @throws SecurityException
  */
 public function handleReturn(Request $request)
 {
     $paymentResult = PaymentResult::createFromRequest($request);
     $recievedSignature = $request->getParameter('merchantSig');
     $computedSignature = $this->context->getSignaturesGenerator()->generatePaymentResultSignature($paymentResult);
     if ($recievedSignature !== $computedSignature) {
         throw new SecurityException('Signatures does not match');
     }
     if ($paymentResult->isAuthorised()) {
         $this->onReturn($this, $paymentResult);
     } else {
         $this->onCancel($this, $paymentResult);
     }
     return $paymentResult;
 }