示例#1
0
 /**
  * Vytvoreni platby s udaji o zakaznikovi pomoci WS z eshopu
  *
  * @param long $eshopGoId - identifikator eshopu - GoId
  * @param string $productName - popis objednavky zobrazujici se na platebni brane
  * @param int $totalPriceInCents - celkova cena objednavky v halerich
  * @param string $variableSymbol - identifikator objednavky v eshopu
  * @param string $successURL - URL stranky, kam je zakaznik presmerovan po uspesnem zaplaceni
  * @param string $failedURL - URL stranky, kam je zakaznik presmerovan po zruseni platby / neuspesnem zaplaceni
  * @param string $secret - kryptovaci heslo pridelene eshopu
  * @param string $paymentChannels - platebni kanaly, ktere se zobrazi na plat. brane
  *
  * Informace o zakaznikovi
  * @param string $firstName   - Jmeno zakaznika
  * @param string $lastName    - Prijmeni
  *
  * Adresa
  * @param string $city        - Mesto
  * @param string $street      - Ulice
  * @param string $postalCode  - PSC
  * @param string $countryCode - Kod zeme. Validni kody jsou uvedeny ve tride CountryCode
  * @param string $email       - Email zakaznika
  * @param string $phoneNumber - Tel. cislo
  *
  * @return paymentSessionId
  * @return -1 vytvoreni platby neprobehlo uspesne
  * @return -2 chyba komunikace WS
  */
 public static function createCustomerEshopPayment($eshopGoId, $productName, $totalPriceInCents, $variableSymbol, $successURL, $failedURL, $secret, $paymentChannels, $firstName, $lastName, $city, $street, $postalCode, $countryCode, $email, $phoneNumber)
 {
     try {
         ini_set("soap.wsdl_cache_enabled", "0");
         $go_client = new SoapClient(GopayConfig::ws(), array());
         /*
          * Sestaveni pozadavku pro zalozeni platby
          */
         $encryptedSignature = GopayHelper::encrypt(GopayHelper::hash(GopayHelper::concatPaymentCommand((double) $eshopGoId, $productName, (int) $totalPriceInCents, $variableSymbol, $failedURL, $successURL, $secret)), $secret);
         $customerData = array("firstName" => $firstName, "lastName" => $lastName, "city" => $city, "street" => $street, "postalCode" => $postalCode, "countryCode" => $countryCode, "email" => $email, "phoneNumber" => $phoneNumber);
         $customerPaymentCommand = array("eshopGoId" => (double) $eshopGoId, "productName" => trim($productName), "totalPrice" => (int) $totalPriceInCents, "variableSymbol" => trim($variableSymbol), "successURL" => trim($successURL), "failedURL" => trim($failedURL), "encryptedSignature" => $encryptedSignature, "customerData" => $customerData, "paymentChannels" => join($paymentChannels, ","));
         /*
          * Vytvareni platby na strane GoPay prostrednictvim WS
          */
         $payment_status = $go_client->__call('createCustomerPaymentSession', array('paymentCommand' => $customerPaymentCommand));
         /*
          * Kontrola stavu platby - musi byt ve stavu WAITING, kontrola parametru platby
          */
         if (GopayHelper::checkEshopPaymentResult($payment_status, 'WAITING', (double) $eshopGoId, $variableSymbol, (int) $totalPriceInCents, $productName, $secret)) {
             return $payment_status->paymentSessionId;
         } else {
             /*
              * Chyba pri vytvareni platby
              */
             return -1;
         }
     } catch (SoapFault $f) {
         /*
          * Chyba pri komunikaci s WS
          */
         return -2;
     }
 }