Skip to content

Instantly share code, notes, and snippets.

@dimaspante
Last active November 14, 2022 20:00
Show Gist options
  • Save dimaspante/a950102e5851f15bac983e14f828a701 to your computer and use it in GitHub Desktop.
Save dimaspante/a950102e5851f15bac983e14f828a701 to your computer and use it in GitHub Desktop.
Webservice TNT Logística
<?php
$xmlr = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.calculoFrete.mercurio.com" xmlns:mod="http://model.vendas.lms.mercurio.com">
<soapenv:Header/>
<soapenv:Body>
<ser:calculaFrete>
<ser:in0>
<mod:login>' . $user_login . '</mod:login>
<mod:senha></mod:senha>
<mod:nrIdentifClienteRem>' . $cnpj . '</mod:nrIdentifClienteRem>
<mod:nrIdentifClienteDest>' . $idclientedest . '</mod:nrIdentifClienteDest>
<mod:tpFrete>' . $tipo_frete . '</mod:tpFrete>
<mod:tpServico>' . $tipo_servico . '</mod:tpServico>
<mod:cepOrigem>' . $cep_origem . '</mod:cepOrigem>
<mod:cepDestino>' . $cep_dst . '</mod:cepDestino>
<mod:vlMercadoria>' . number_format($valor_nf, 2, '.', '') . '</mod:vlMercadoria>
<mod:psReal>' . number_format($peso_total, 3, '.', '') . '</mod:psReal>
<mod:nrInscricaoEstadualRemetente>' . $ie . '</mod:nrInscricaoEstadualRemetente>
<mod:nrInscricaoEstadualDestinatario></mod:nrInscricaoEstadualDestinatario>
<mod:tpSituacaoTributariaRemetente>' . $situacao_trib . '</mod:tpSituacaoTributariaRemetente>
<mod:tpSituacaoTributariaDestinatario>CO</mod:tpSituacaoTributariaDestinatario>
<mod:cdDivisaoCliente>' . $divisao_cliente . '</mod:cdDivisaoCliente>
<mod:tpPessoaRemetente>' . $tipo_pessoa . '</mod:tpPessoaRemetente>
<mod:tpPessoaDestinatario>F</mod:tpPessoaDestinatario>
</ser:in0>
</ser:calculaFrete>
</soapenv:Body>
</soapenv:Envelope>';
$uri = 'http://service.calculoFrete.mercurio.com';
$location_URL = 'https://ws.tntbrasil.com.br:443/tntws/CalculoFrete?wsdl';
$action_URL = 'https://ws.tntbrasil.com.br:443/tntws/CalculoFrete';
$client = new SoapClient(null, array(
'location' => $location_URL,
'uri' => $uri,
'trace' => 1,
));
$xml = $client->__doRequest($xmlr, $location_URL, $action_URL, 1);
$dom = new DOMDocument('1.0', 'ISO-8859-1');
$dom->loadXml($xml);
$valor = $dom->getElementsByTagName('vlTotalFrete')->item(0)->nodeValue;
$prazo = $dom->getElementsByTagName('prazoEntrega')->item(0)->nodeValue;
$cidade = $dom->getElementsByTagName('nmMunicipioDestino')->item(0)->nodeValue;
@dimaspante
Copy link
Author

E as medidas (altura, largura e profundidade) não precisa enviar?

Opa, na época não precisava, só enviava o peso total na linha 17. Talvez hj tenha mudado, realmente faz tempo que não mexo com a TNT hehe

@quinhone
Copy link

Pois é, documentação deles é muito ruim, mas valeu! Obrigado"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment