/** * @param \PhpSigep\Model\VerificaDisponibilidadeServico $params * @return Result<\PhpSigep\Model\VerificaDisponibilidadeServicoResposta> */ public function execute(\PhpSigep\Model\VerificaDisponibilidadeServico $params) { $servicosDePostagem = $params->getServicos(); $codigoDosServicos = array_map(array($this, 'arrayMapCallback'), $servicosDePostagem); $soapArgs = array('codAdministrativo' => $params->getAccessData()->getCodAdministrativo(), 'numeroServico' => implode(',', $codigoDosServicos), 'cepOrigem' => $params->getCepOrigem(), 'cepDestino' => $params->getCepDestino(), 'usuario' => $params->getAccessData()->getUsuario(), 'senha' => $params->getAccessData()->getSenha()); $cacheKey = md5(serialize($soapArgs)); $cache = Bootstrap::getConfig()->getCacheInstance(); if ($cachedResult = $cache->getItem($cacheKey)) { return unserialize($cachedResult); } $r = SoapClientFactory::getSoapClient()->verificaDisponibilidadeServico($soapArgs); $errorCode = null; $errorMsg = null; $result = new Result(); if (!$r) { $errorCode = 0; } else { if ($r instanceof \SoapFault) { $errorCode = $r->getCode(); $errorMsg = SoapClientFactory::convertEncoding($r->getMessage()); $result->setSoapFault($r); } else { if ($r instanceof \stdClass && property_exists($r, 'return')) { $result->setResult(new VerificaDisponibilidadeServicoResposta(array('disponivel' => (bool) $r->return))); $cache->setItem($cacheKey, serialize($result)); } else { $errorCode = 0; $errorMsg = "A resposta do Correios não está no formato esperado."; } } } $result->setErrorCode($errorCode); $result->setErrorMsg($errorMsg); return $result; }
public function execute($numeroCartaoPostagem, $usuario, $senha) { $soapArgs = array('numeroCartaoPostagem' => $numeroCartaoPostagem, 'usuario' => $usuario, 'senha' => $senha); $r = SoapClientFactory::getSoapClient()->getStatusCartaoPostagem($soapArgs); $errorCode = null; $errorMsg = null; $result = new Result(); if (!$r) { $errorCode = 0; } else { if ($r instanceof \SoapFault) { $errorCode = $r->getCode(); $errorMsg = SoapClientFactory::convertEncoding($r->getMessage()); $result->setSoapFault($r); } else { if ($r instanceof \stdClass && property_exists($r, 'return')) { $status = new VerificarStatusCartaoPostagemResposta(); $status->setReturn($r->return); $result->setResult($status); } else { $errorCode = 0; $errorMsg = "A resposta do Correios não está no formato esperado."; } } } $result->setErrorCode($errorCode); $result->setErrorMsg($errorMsg); return $result; }
public function execute($cep) { $cep = preg_replace('/[^\\d]/', '', $cep); $soapArgs = array('cep' => $cep); $r = SoapClientFactory::getSoapClient()->consultaCep($soapArgs); $errorCode = null; $errorMsg = null; $result = new Result(); if (!$r) { $errorCode = 0; } else { if ($r instanceof \SoapFault) { $errorCode = $r->getCode(); $errorMsg = SoapClientFactory::convertEncoding($r->getMessage()); $result->setSoapFault($r); } else { if ($r instanceof \stdClass) { if (property_exists($r, 'return') && $r->return instanceof \stdClass) { $consultaCepResposta = new ConsultaCepResposta(); $consultaCepResposta->setBairro(SoapClientFactory::convertEncoding($r->return->bairro)); $consultaCepResposta->setCep($r->return->cep); $consultaCepResposta->setCidade(SoapClientFactory::convertEncoding($r->return->cidade)); $consultaCepResposta->setComplemento1(SoapClientFactory::convertEncoding($r->return->complemento)); $consultaCepResposta->setComplemento2(SoapClientFactory::convertEncoding($r->return->complemento2)); $consultaCepResposta->setEndereco(SoapClientFactory::convertEncoding($r->return->end)); $consultaCepResposta->setId($r->return->id); $consultaCepResposta->setUf($r->return->uf); $result->setResult($consultaCepResposta); } else { $errorCode = 0; $errorMsg = "Resposta em branco. Confirme se o CEP '{$cep}' realmente existe."; } } else { $errorCode = 0; $errorMsg = "A resposta do Correios não está no formato esperado."; } } } $result->setErrorCode($errorCode); $result->setErrorMsg($errorMsg); return $result; }