/**
  * Kontrola stavu platby eshopu
  * - verifikace parametru z redirectu
  * - kontrola stavu platby
  *
  * @param long $paymentSessionId - identifikator platby
  * @param long $eshopGoId - identifikator eshopu - GoId
  * @param string $variableSymbol - identifikator objednavky v eshopu
  * @param int $totalPriceInCents - celkova cena objednavky v halerich
  * @param string $productName - popis objednavky zobrazujici se na platebni brane
  * @param string $secret - kryptovaci heslo pridelene eshopu
  *
  * @return $result
  *  result["code"] 		  - kod vysledku volani
  *  result["description"] - popis vysledku volani
  */
 public static function isEshopPaymentDone($paymentSessionId, $eshopGoId, $variableSymbol, $totalPriceInCents, $productName, $secret)
 {
     $result = array();
     try {
         /*
          * Inicializace WS
          */
         ini_set("soap.wsdl_cache_enabled", "0");
         $go_client = new SoapClient(GopayConfig::ws(), array());
         /*
          * Sestaveni dotazu na stav platby
          */
         $sessionEncryptedSignature = GopayHelper::encrypt(GopayHelper::hash(GopayHelper::concatPaymentSession((double) $eshopGoId, (double) $paymentSessionId, $secret)), $secret);
         $payment_session = array("eshopGoId" => (double) $eshopGoId, "paymentSessionId" => (double) $paymentSessionId, "encryptedSignature" => $sessionEncryptedSignature);
         /*
          * Kontrola stavu platby na strane GoPay prostrednictvim WS
          */
         $payment_status = $go_client->__call('paymentStatusGW2', array('paymentSessionInfo' => $payment_session));
         $result["description"] = $payment_status->resultDescription;
         $result["code"] = $payment_status->sessionState;
         /*
          * Kontrola zaplacenosti objednavky, verifikace parametru objednavky
          */
         if ($result["code"] == GopayHelper::PAYMENT_DONE && !GopayHelper::checkEshopPaymentStatus($payment_status, 'PAYMENT_DONE', (double) $eshopGoId, $variableSymbol, (int) $totalPriceInCents, $productName, $secret) || $result["code"] == GopayHelper::WAITING && !GopayHelper::checkEshopPaymentStatus($payment_status, 'WAITING', (double) $eshopGoId, $variableSymbol, (int) $totalPriceInCents, $productName, $secret) || $result["code"] == GopayHelper::TIMEOUTED && !GopayHelper::checkEshopPaymentStatus($payment_status, 'TIMEOUTED', (double) $eshopGoId, $variableSymbol, (int) $totalPriceInCents, $productName, $secret) || $result["code"] == GopayHelper::CANCELED && !GopayHelper::checkEshopPaymentStatus($payment_status, 'CANCELED', (double) $eshopGoId, $variableSymbol, (int) $totalPriceInCents, $productName, $secret)) {
             /*
              * Platba nesprobehla korektne
              */
             $result["code"] = GopayHelper::FAILED;
         }
     } catch (SoapFault $f) {
         /*
          * Chyba v komunikaci s GoPay serverem
          */
         $result["code"] = GopayHelper::FAILED;
         $result["description"] = GopayHelper::FAILED;
     }
     return $result;
 }