private static function buildInstallmentURL(PagSeguroConnectionData $connectionData, $amount, $cardBrand = null, $maxInstallmentNoInterest = null)
 {
     $url = $connectionData->getWebserviceUrl() . $connectionData->getResource('url');
     $stringBuilder = "&amount=" . $amount;
     $stringBuilder .= $cardBrand == null ? "" : "&cardBrand=" . $cardBrand;
     $stringBuilder .= $maxInstallmentNoInterest == null ? "" : "&maxInstallmentNoInterest=" . $maxInstallmentNoInterest;
     return "{$url}/?" . $connectionData->getCredentialsUrlQuery() . $stringBuilder;
 }
 private static function buildSearchUrlAbandoned(PagSeguroConnectionData $connectionData, array $searchParams)
 {
     $url = $connectionData->getServiceUrl();
     $initialDate = $searchParams['initialDate'] != null ? $searchParams['initialDate'] : "";
     $finalDate = $searchParams['finalDate'] != null ? "&finalDate=" . $searchParams['finalDate'] : "";
     if ($searchParams['pageNumber'] != null) {
         $page = "&page=" . $searchParams['pageNumber'];
     }
     if ($searchParams['maxPageResults'] != null) {
         $maxPageResults = "&maxPageResults=" . $searchParams['maxPageResults'];
     }
     return "{$url}/abandoned/?" . $connectionData->getCredentialsUrlQuery() . "&initialDate={$initialDate}&finalDate={$finalDate}{$page}{$maxPageResults}";
 }
 /**
  * @param PagSeguroConnectionData $connectionData
  * @param $reference
  * @param null $searchParams
  * @return string
  */
 private static function buildSearchUrlByReference(PagSeguroConnectionData $connectionData, $reference, $searchParams = null)
 {
     $url = $connectionData->getServiceUrl('v2');
     if ($searchParams == null) {
         return "{$url}?" . $connectionData->getCredentialsUrlQuery() . "&reference=" . $reference;
     } else {
         $initialDate = $searchParams['initialDate'] != null ? $searchParams['initialDate'] : "";
         $finalDate = $searchParams['finalDate'] != null ? "&finalDate=" . $searchParams['finalDate'] : "";
         if ($searchParams['pageNumber'] != null) {
             $page = "&page=" . $searchParams['pageNumber'];
         }
         if ($searchParams['maxPageResults'] != null) {
             $maxPageResults = "&maxPageResults=" . $searchParams['maxPageResults'];
         }
         return "{$url}?" . $connectionData->getCredentialsUrlQuery() . "&reference=" . $reference . "&initialDate={$initialDate}&finalDate={$finalDate}{$page}{$maxPageResults}";
     }
 }
 private static function buildTransactionNotificationUrl(PagSeguroConnectionData $connectionData, $notificationCode)
 {
     $url = $connectionData->getServiceUrl();
     return "{$url}/{$notificationCode}/?" . $connectionData->getCredentialsUrlQuery();
 }
 private static function buildCheckoutUrl(PagSeguroConnectionData $connectionData, $code)
 {
     return $connectionData->getResource('checkoutUrl') . "?code={$code}";
 }
 private static function buildReturnUrl(PagSeguroConnectionData $connectionData, $code)
 {
     return $connectionData->getServiceUrl() . '/' . $code . '/?' . $connectionData->getCredentialsUrlQuery();
 }
 /**
  * @param PagSeguroConnectionData $connectionData
  * @param $reference
  * @return string
  */
 private static function buildSearchUrlByReference(PagSeguroConnectionData $connectionData, $reference)
 {
     $url = $connectionData->getServiceUrl();
     return "{$url}?" . $connectionData->getCredentialsUrlQuery() . '&reference=' . $reference;
 }
 /**
  * @param PagSeguroConnectionData $connectionData
  * @param array $params
  * @return string
  */
 private static function buildFindByReferenceUrl(PagSeguroConnectionData $connectionData, array $params)
 {
     $url = $connectionData->getWebserviceUrl() . $connectionData->getResource('findUrl');
     $initialDate = $params['initialDate'] != null ? $params['initialDate'] : "";
     $finalDate = $params['finalDate'] != null ? "&finalDate=" . $params['finalDate'] : "";
     $reference = $params['reference'] != null ? "&reference=" . $params['reference'] : "";
     if ($params['pageNumber'] != null) {
         $page = "&page=" . $params['pageNumber'];
     }
     if ($params['maxPageResults'] != null) {
         $maxPageResults = "&maxPageResults=" . $params['maxPageResults'];
     }
     return "{$url}?" . $connectionData->getCredentialsUrlQuery() . "&initialDate={$initialDate}{$finalDate}{$page}{$maxPageResults}{$reference}";
 }
 private static function buildAuthorizationApprovalUrl(PagSeguroConnectionData $connectionData, $code)
 {
     return $connectionData->getBaseUrl() . $connectionData->getResource('approvalUrl') . '?code=' . $code;
 }
 private static function buildPreApprovalCancelUrl(PagSeguroConnectionData $connectionData, $code)
 {
     $credentialsArray = $connectionData->getCredentials()->getAttributesMap();
     return $connectionData->getWebserviceUrl() . $connectionData->getResource('cancelUrl') . "{$code}?" . $connectionData->getCredentialsUrlQuery();
 }
 private static function buildAuthorizationNotificationUrl(PagSeguroConnectionData $connectionData, $notificationCode)
 {
     $url = $connectionData->getWebserviceUrl() . '/' . $connectionData->getResource('applicationPath');
     return "{$url}/{$notificationCode}/?" . $connectionData->getCredentialsUrlQuery();
 }
 /**
  * @param PagSeguroConnectionData $connection
  * @param $code
  * @return null|PagSeguroAuthorization|PagSeguroParserData|PagSeguroTransaction
  * @throws PagSeguroServiceException
  */
 private static function getResult($connection, $code)
 {
     $httpStatus = new PagSeguroHttpStatus($connection->getStatus());
     $response = $connection->getResponse();
     switch ($httpStatus->getType()) {
         case 'OK':
             switch (self::$service) {
                 case "CheckPreApproval":
                     $response = PagSeguroPreApprovalParser::readPreApproval($response);
                     break;
                 case "CheckAuthorization":
                     $response = PagSeguroAuthorizationParser::readAuthorization($response);
                     break;
                 case "CheckTransaction":
                     $response = PagSeguroTransactionParser::readTransaction($response);
                     break;
             }
             //Logging
             $log['text'] = sprintf("PagSeguroNotificationService.%s(notificationCode={$code}) - end ", self::$service);
             $log['action'] = $response->toString();
             LogPagSeguro::info($log['text'] . $log['action'] . ")");
             break;
         case 'BAD_REQUEST':
             $errors = PagSeguroServiceParser::readErrors($connection->getResponse());
             $errors = new PagSeguroServiceException($httpStatus, $errors);
             //Logging
             $log['text'] = sprintf("PagSeguroNotificationService.%s(notificationCode={$code}) - error ", self::$service);
             LogPagSeguro::error($log['text'] . $errors->getOneLineMessage());
             //Exception
             throw $errors;
             break;
         default:
             $errors = new PagSeguroServiceException($httpStatus);
             //Logging
             $log['text'] = sprintf("PagSeguroNotificationService.%s(notificationCode={$code}) - error ", self::$service);
             LogPagSeguro::info($log['text'] . $errors->getOneLineMessage());
             //Exception
             throw $errors;
             break;
     }
     return isset($response) ? $response : null;
 }