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}";
 }
 private static function buildTransactionNotificationUrl(PagSeguroConnectionData $connectionData, $notificationCode)
 {
     $url = $connectionData->getServiceUrl();
     return "{$url}/{$notificationCode}/?" . $connectionData->getCredentialsUrlQuery();
 }
 private static function buildCheckoutRequestUrl(PagSeguroConnectionData $connectionData)
 {
     return $connectionData->getServiceUrl() . '/?' . $connectionData->getCredentialsUrlQuery();
 }
 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 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 $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}";
     }
 }
 /**
  * @param PagSeguroConnectionData $connectionData
  * @param $preApprovalCode
  * @return string
  */
 private static function buildPreApprovalNotificationUrl(PagSeguroConnectionData $connectionData, $preApprovalCode)
 {
     $url = $connectionData->getWebserviceUrl() . '/' . $connectionData->getResource('preApprovalPath');
     return "{$url}/{$preApprovalCode}/?" . $connectionData->getCredentialsUrlQuery();
 }
 private static function buildAuthorizationUrl(PagSeguroConnectionData $connectionData)
 {
     return $connectionData->getServiceUrl() . $connectionData->getResource('requestUrl') . '?' . $connectionData->getCredentialsUrlQuery();
 }