Example #1
0
 /**
  * Sestaveni platebniho tlacitka formou odkazu pro jednoduchou integraci
  *
  * @param float $targetGoId - identifikace prijemce - GoId pridelene GoPay
  * @param string $productName - nazev objednavky / zbozi
  * @param int $totalPrice - cena objednavky v halerich
  * @param string $currency - identifikator meny
  * @param string $orderNumber - identifikace objednavky u prijemce
  * @param string $successURL - URL, kam se ma prejit po uspesnem zaplaceni
  * @param string $failedURL - URL, kam se ma prejit po neuspesnem zaplaceni
  * @param array $paymentChannels - pole plat. metod, ktere se zobrazi na brane
  * @param array $defaultPaymentChannel - vychozi platebni metoda
  * @param string $secureKey - kryptovaci klic prideleny prijemci, urceny k podepisovani komunikace
  *
  * @param boolean $preAuthorization - jedna-li se o predautorizovanou platbu
  * @param boolean $recurrentPayment - jedna-li se o opakovanou platbu
  * @param string $recurrenceDateTo - do kdy se ma opakovana platba provadet
  * @param string $recurrenceCycle - frekvence opakovresultane platby - mesic/tyden/den
  * @param int $recurrencePeriod - pocet plateb v cyklu $recurrenceCycle - kolikrat v mesici/... se opakovana platba provede
  *
  * 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
  *
  * @param string $p1 - volitelne parametry, ketre budou po navratu z platebni brany predany e-shopu
  * @param string $p2 - volitelne parametry, ketre budou po navratu z platebni brany predany e-shopu
  * @param string $p3 - volitelne parametry, ketre budou po navratu z platebni brany predany e-shopu
  * @param string $p4 - volitelne parametry, ketre budou po navratu z platebni brany predany e-shopu
  *
  * @param string $lang - jazyk platebni brany
  *
  * @return string HTML kod platebniho tlacitka
  */
 public static function createPaymentHref($targetGoId, $productName, $totalPrice, $currency, $orderNumber, $successURL, $failedURL, $preAuthorization, $recurrentPayment, $recurrenceDateTo, $recurrenceCycle, $recurrencePeriod, $paymentChannels, $defaultPaymentChannel, $secureKey, $firstName, $lastName, $city, $street, $postalCode, $countryCode, $email, $phoneNumber, $p1, $p2, $p3, $p4, $lang)
 {
     $paymentChannelsString = !empty($paymentChannels) ? join($paymentChannels, ",") : "";
     $encryptedSignature = GopayHelper::encrypt(GopayHelper::hash(GopayHelper::concatPaymentCommand((double) $targetGoId, $productName, (int) $totalPrice, $currency, $orderNumber, $failedURL, $successURL, $preAuthorization, $recurrentPayment, $recurrenceDateTo, $recurrenceCycle, $recurrencePeriod, $paymentChannelsString, $secureKey)), $secureKey);
     $params = "";
     $params .= "paymentCommand.targetGoId=" . $targetGoId;
     $params .= "&paymentCommand.productName=" . urlencode($productName);
     $params .= "&paymentCommand.totalPrice=" . $totalPrice;
     $params .= "&paymentCommand.currency=" . $currency;
     $params .= "&paymentCommand.orderNumber=" . urlencode($orderNumber);
     $params .= "&paymentCommand.successURL=" . urlencode($successURL);
     $params .= "&paymentCommand.failedURL=" . urlencode($failedURL);
     $params .= "&paymentCommand.paymentChannels=" . urlencode($paymentChannelsString);
     $params .= "&paymentCommand.defaultPaymentChannel=" . urlencode($defaultPaymentChannel);
     $params .= "&paymentCommand.encryptedSignature=" . urlencode($encryptedSignature);
     $params .= "&paymentCommand.preAuthorization=" . GopayHelper::castBoolean2String($preAuthorization);
     $params .= "&paymentCommand.recurrentPayment=" . GopayHelper::castBoolean2String($recurrentPayment);
     $params .= "&paymentCommand.recurrenceDateTo=" . urlencode($recurrenceDateTo);
     $params .= "&paymentCommand.recurrenceCycle=" . urlencode($recurrenceCycle);
     $params .= "&paymentCommand.recurrencePeriod=" . $recurrencePeriod;
     $params .= "&paymentCommand.customerData.firstName=" . urlencode($firstName);
     $params .= "&paymentCommand.customerData.lastName=" . urlencode($lastName);
     $params .= "&paymentCommand.customerData.city=" . urlencode($city);
     $params .= "&paymentCommand.customerData.street=" . urlencode($street);
     $params .= "&paymentCommand.customerData.postalCode=" . urlencode($postalCode);
     $params .= "&paymentCommand.customerData.countryCode=" . urlencode($countryCode);
     $params .= "&paymentCommand.customerData.email=" . urlencode($email);
     $params .= "&paymentCommand.customerData.phoneNumber=" . urlencode($phoneNumber);
     $params .= "&paymentCommand.p1=" . urlencode($p1);
     $params .= "&paymentCommand.p2=" . urlencode($p2);
     $params .= "&paymentCommand.p3=" . urlencode($p3);
     $params .= "&paymentCommand.p4=" . urlencode($p4);
     $params .= "&paymentCommand.lang=" . $lang;
     $output = "";
     $output .= "<a target='_blank' href='" . GopayConfig::baseIntegrationURL() . "?" . $params . "'>";
     $output .= " Zaplatit ";
     $output .= "</a>";
     return $output;
 }
Example #2
0
 /**
  * Sestaveni platebniho tlacitka jako odkazu
  * 
  *
  * @param float $buyerGoId - identifikace uzivatele - GoId uzivatele pridelene GoPay
  * @param int $totalPrice - cena objednavky v halerich
  * @param string $productName - nazev objednvky / zbozi
  * @param string $variableSymbol - identifikace akt. objednavky
  * @param string $successURL - URL, kam se ma prejit po uspesnem zaplaceni
  * @param string $failedURL - URL, kam se ma prejit po neuspesnem zaplaceni
  * @param string $secret - kryptovaci heslo pridelene uzivateli, urcene k podepisovani komunikace
  * @param string $iconUrl - URL ikony tlacitka - viz konstanty tridy 
  * 
  * @return HTML kod platebniho tlacitka
  */
 public static function createBuyerHref($buyerGoId, $totalPrice, $productName, $variableSymbol, $successURL, $failedURL, $secret, $iconUrl)
 {
     $encryptedSignature = GopayHelper::encrypt(GopayHelper::hash(GopayHelper::concatPaymentCommand((double) $buyerGoId, $productName, (int) $totalPrice, $variableSymbol, $failedURL, $successURL, $secret)), $secret);
     $params = "";
     $params .= "paymentCommand.buyerGoId=" . $buyerGoId;
     $params .= "&paymentCommand.productName=" . urlencode($productName);
     $params .= "&paymentCommand.totalPrice=" . $totalPrice;
     $params .= "&paymentCommand.variableSymbol=" . urlencode($variableSymbol);
     $params .= "&paymentCommand.successURL=" . urlencode($successURL);
     $params .= "&paymentCommand.failedURL=" . urlencode($failedURL);
     $params .= "&paymentCommand.encryptedSignature=" . urlencode($encryptedSignature);
     $formBuffer = "";
     $formBuffer .= "<a target='_blank' href='" . GopayConfig::buyerBaseIntegrationURL() . "?" . $params . "' >";
     if (empty($iconUrl)) {
         $formBuffer .= " Zaplatit ";
     } else {
         $formBuffer .= " <img src='" . $iconUrl . "' border='0' style='border:none;'/> ";
     }
     $formBuffer .= "</a>";
     return $formBuffer;
 }
 /**
  * Vytvoreni platby uzivatele pomoci WS
  *
  * @param long $buyerGoId - identifikator uzivatele - GoId
  * @param string $productName - popis objednavky zobrazujici se na platebni brane
  * @param int $totalPriceInCents - celkova cena objednavky v halerich
  * @param string $variableSymbol - identifikator objednavky
  * @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 uzivateli
  *
  * @return paymentSessionId
  * @return -1 vytvoreni platby neprobehlo uspesne
  * @return -2 chyba komunikace WS
  */
 public static function createBuyerPayment($buyerGoId, $productName, $totalPriceInCents, $variableSymbol, $successURL, $failedURL, $secret)
 {
     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) $buyerGoId, $productName, (int) $totalPriceInCents, $variableSymbol, $failedURL, $successURL, $secret)), $secret);
         $payment_command = array("buyerGoId" => (double) $buyerGoId, "productName" => trim($productName), "totalPrice" => (int) $totalPriceInCents, "variableSymbol" => trim($variableSymbol), "successURL" => trim($successURL), "failedURL" => trim($failedURL), "encryptedSignature" => $encryptedSignature);
         /*
          * Vytvareni platby na strane GoPay prostrednictvim WS
          */
         $payment_status = $go_client->__call('createPaymentSession', array('paymentCommand' => $payment_command));
         /*
          * Kontrola stavu platby - musi byt ve stavu WAITING, kontrola parametru platby
          */
         if (GopayHelper::checkBuyerPaymentResult($payment_status, 'WAITING', (double) $buyerGoId, $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;
     }
 }
Example #4
0
 /**
  * Vytvoreni platby s udaji o zakaznikovi pomoci WS z eshopu
  *
  * @param string $targetGoId - identifikator prijemce - GoId
  * @param string $productName - popis objednavky zobrazujici se na platebni brane
  * @param int $totalPriceInCents - celkova cena objednavky v halerich
  * @param string $currency - mena, ve ktere platba probiha
  * @param string $orderNumber - identifikator objednavky
  * @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 boolean $preAuthorization - jedna-li se o predautorizovanou platbu
  * @param boolean $recurrentPayment - jedna-li se o opakovanou platbu
  * @param string $recurrenceDateTo - datum, do nehoz budou provadeny opakovane platby. Jedna se textovy retezec ve formatu yyyy-MM-dd.
  * @param string $recurrenceCycle - zakladni casovou jednotku opakovani. Nabyva hodnot [DAY, WEEK, MONTH], pro opakování od CS a.s. lze pouzit pouze hodnotu DAY.
  * @param int $recurrencePeriod - definuje periodu opakovane platby. Napr. při konfiguraci DAY,5 bude platba provadena kazdy 5. den
  * @param string $paymentChannels - pole platebnich kanalu, ktere se zobrazi na platebni brane
  * @param string $defaultPaymentChannel - platebni kanal, ktery se zobrazi (predvybere) na platebni brane po presmerovani
  * @param string $secureKey - kryptovaci klic prideleny prijemci
  *
  * 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
  *
  * @param string $p1 - $p4 - volitelne parametry (max. 128 znaku).
  * @param $p2
  * @param $p3
  * @param $p4
  * @param string $lang - jazyk plat. brany
  * Parametry jsou vraceny v nezmenene podobe jako soucast volani dotazu na stav platby $paymentStatus (viz metoda isPaymentDone)
  * @return string paymentSessionId
  * @throws \Exception
  */
 public static function createBasePayment($targetGoId, $productName, $totalPriceInCents, $currency, $orderNumber, $successURL, $failedURL, $preAuthorization, $recurrentPayment, $recurrenceDateTo, $recurrenceCycle, $recurrencePeriod, $paymentChannels, $defaultPaymentChannel, $secureKey, $firstName, $lastName, $city, $street, $postalCode, $countryCode, $email, $phoneNumber, $p1, $p2, $p3, $p4, $lang)
 {
     try {
         ini_set("soap.wsdl_cache_enabled", "0");
         $go_client = GopayConfig::createSoapClient();
         $paymentChannelsString = !empty($paymentChannels) ? join($paymentChannels, ",") : "";
         /*
          * Sestaveni pozadavku pro zalozeni platby
          */
         $encryptedSignature = GopayHelper::encrypt(GopayHelper::hash(GopayHelper::concatPaymentCommand((double) $targetGoId, $productName, (int) $totalPriceInCents, $currency, $orderNumber, $failedURL, $successURL, $preAuthorization, $recurrentPayment, $recurrenceDateTo, $recurrenceCycle, $recurrencePeriod, $paymentChannelsString, $secureKey)), $secureKey);
         $customerData = array("firstName" => $firstName, "lastName" => $lastName, "city" => $city, "street" => $street, "postalCode" => $postalCode, "countryCode" => $countryCode, "email" => $email, "phoneNumber" => $phoneNumber);
         $paymentCommand = array("targetGoId" => (double) $targetGoId, "productName" => trim($productName), "totalPrice" => (int) $totalPriceInCents, "currency" => trim($currency), "orderNumber" => trim($orderNumber), "failedURL" => trim($failedURL), "successURL" => trim($successURL), "preAuthorization" => GopayHelper::castString2Boolean($preAuthorization), "recurrentPayment" => GopayHelper::castString2Boolean($recurrentPayment), "recurrenceDateTo" => $recurrenceDateTo, "recurrenceCycle" => trim($recurrenceCycle), "recurrencePeriod" => $recurrencePeriod, "paymentChannels" => $paymentChannelsString, "defaultPaymentChannel" => $defaultPaymentChannel, "encryptedSignature" => $encryptedSignature, "customerData" => $customerData, "p1" => $p1, "p2" => $p2, "p3" => $p3, "p4" => $p4, "lang" => $lang);
         /*
          * Vytvareni platby na strane GoPay prostrednictvim WS
          */
         $paymentStatus = $go_client->__call('createPayment', array('paymentCommand' => $paymentCommand));
         /*
          * Kontrola stavu platby - musi byt ve stavu CREATED, kontrola parametru platby
          */
         if ($paymentStatus->result == GopayHelper::CALL_COMPLETED && $paymentStatus->sessionState == GopayHelper::CREATED && $paymentStatus->paymentSessionId > 0) {
             return $paymentStatus->paymentSessionId;
         } else {
             throw new \Exception("Create payment failed: " . $paymentStatus->resultDescription);
         }
     } catch (\SoapFault $f) {
         /*
          * Chyba pri komunikaci s WS
          */
         throw new \Exception("Communication with WS failed");
     }
 }