public static function cancelPreApproval(PagSeguroCredentials $credentials, $notificationCode) { LogPagSeguro::info("PagSeguroNotificationService.cancelPreApproval(notificationCode={$notificationCode}) - begin"); $connectionData = new PagSeguroConnectionData($credentials, self::SERVICE_NAME); try { $connection = new PagSeguroHttpConnection(); $connection->get(self::buildCancelUrl($connectionData, $notificationCode), $connectionData->getServiceTimeout(), $connectionData->getCharset()); $httpStatus = new PagSeguroHttpStatus($connection->getStatus()); switch ($httpStatus->getType()) { case 'OK': $paymentParserData = PagSeguroPreApprovalParser::readCancelXml($connection->getResponse()); LogPagSeguro::info("PagSeguroPreApprovalService.cancelPreApproval({$parserData}) - end \\{{$notificationCode}\\}"); break; case 'BAD_REQUEST': $errors = PagSeguroPreApprovalParser::readErrors($connection->getResponse()); $e = new PagSeguroServiceException($httpStatus, $errors); LogPagSeguro::error("PagSeguroPreApprovalService.cancelPreApproval(notificationCode={$notificationCode}) - error " . $e->getOneLineMessage()); throw $e; break; default: $e = new PagSeguroServiceException($httpStatus); LogPagSeguro::error("PagSeguroPreApprovalService.cancelPreApproval(notificationCode={$notificationCode}) - error " . $e->getOneLineMessage()); throw $e; break; } return isset($paymentParserData) ? $paymentParserData : false; } catch (PagSeguroServiceException $err) { LogPagSeguro::error("PagSeguroServiceException: " . $err->getMessage()); throw $err; } catch (Exception $err) { LogPagSeguro::error("Exception: " . $err->getMessage()); throw $err; } }
/** * @param $connection * @param null $code * @return null|PagSeguroParserData * @throws PagSeguroServiceException */ private function getResult($connection, $code = null) { $httpStatus = new PagSeguroHttpStatus($connection->getStatus()); $response = $connection->getResponse(); switch ($httpStatus->getType()) { case 'OK': switch (self::$service) { case "PreApprovalRequest": $response = PagSeguroPreApprovalParser::readSuccessXml($response); $result = array('code' => $response->getCode(), 'cancelUrl' => self::buildPreApprovalCancelUrl(self::$connectionData, $response->getCode()), 'checkoutUrl' => self::buildPreApprovalRequestUrl(self::$connectionData, $response->getCode())); break; case "PreApprovalCancel": $result = PagSeguroPreApprovalParser::readCancelXml($response); break; case "PreApprovalPaymentCharge": $result = PagSeguroPreApprovalParser::readTransactionXml($response); break; } //Logging if (is_null($code) && self::$service == "PreApprovalRequest") { $log['text'] = sprintf("PagSeguroPreApprovalService.%s(" . $response->toString() . ") - end ", self::$service); LogPagSeguro::info($log['text'] . ")"); } else { $log['text'] = sprintf("PagSeguroPreApprovalService.%s({$code}) - end ", self::$service); LogPagSeguro::info($log['text']); } break; case 'BAD_REQUEST': $errors = PagSeguroServiceParser::readErrors($response); $errors = new PagSeguroServiceException($httpStatus, $errors); //Logging $log['text'] = sprintf("PagSeguroPreApprovalService.%s({$code}) - error ", self::$service); LogPagSeguro::error($log['text'] . $errors->getOneLineMessage()); //Exception throw $errors; break; default: $errors = new PagSeguroServiceException($httpStatus); //Logging $log['text'] = sprintf("PagSeguroPreApprovalService.%s({$code}) - error ", self::$service); LogPagSeguro::error($log['text'] . $errors->getOneLineMessage()); //Exception throw $errors; break; } return isset($result) ? $result : null; }