shipping7 / correios-java-sdk

Correios Java SDK
https://shipping7.github.io/correios-java-sdk/
MIT License
33 stars 16 forks source link

Permitir que uma PLP seja fechada pelo SDK #68

Open alexandregama opened 7 years ago

alexandregama commented 7 years ago

Objetivo

Precisamos que o fechamento da PLP seja feito pelo próprio SDK. Para o fechamento precisamos:

Técnico

O seguinte payload precisa ser enviado para os Correios para o Fechamento de uma PLP

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cli="http://cliente.bean.master.sigep.bsb.correios.com.br/">
   <soapenv:Header/>
   <soapenv:Body>
      <cli:fechaPlp>
         <!--Optional:-->
         <xml>?</xml>
         <!--Optional:-->
         <idPlpCliente>?</idPlpCliente>
         <!--Optional:-->
         <cartaoPostagem>?</cartaoPostagem>
         <!--Optional:-->
         <faixaEtiquetas>?</faixaEtiquetas>
         <!--Optional:-->
         <usuario>?</usuario>
         <!--Optional:-->
         <senha>?</senha>
      </cli:fechaPlp>
   </soapenv:Body>
</soapenv:Envelope>

Como você pode notar, o Correios recebe o parâmetro xml no corpo do Payload. Esse XML precisa seguir o XSD enviado pelos próprios Correios conforme você pode ver abaixo:

correios_plp.txt

Um exemplo poderia ser:

<?xml version="1.0" encoding="UTF-8"?>
<correioslog>
   <tipo_arquivo>Postagem</tipo_arquivo>
   <versao_arquivo>2.3</versao_arquivo>
   <plp>
      <id_plp />
      <valor_global />
      <mcu_unidade_postagem />
      <nome_unidade_postagem />
      <cartao_postagem>123456789</cartao_postagem>
   </plp>
   <remetente>
      <numero_contrato>123654789</numero_contrato>
      <numero_diretoria>1</numero_diretoria>
      <codigo_administrativo>12365478</codigo_administrativo>
      <nome_remetente><![CDATA[Empresa Ltda]]></nome_remetente>
      <logradouro_remetente><![CDATA[Rua do Remetente]]></logradouro_remetente>
      <numero_remetente>2370</numero_remetente>
      <complemento_remetente><![CDATA[sala 1205,12 andar]]></complemento_remetente>
      <bairro_remetente><![CDATA[Bairro do Remetente]]></bairro_remetente>
      <cep_remetente><![CDATA[70002900]]></cep_remetente>
      <cidade_remetente><![CDATA[Brasilia]]></cidade_remetente>
      <uf_remetente>PR</uf_remetente>
      <telefone_remetente />
      <fax_remetente />
      <email_remetente><![CDATA[email-remetente@gmail.com]]></email_remetente>
   </remetente>
   <forma_pagamento />
   <objeto_postal>
      <numero_etiqueta>PH185560916BR</numero_etiqueta>
      <codigo_objeto_cliente />
      <codigo_servico_postagem>40096</codigo_servico_postagem>
      <cubagem>3,80</cubagem>
      <peso>200</peso>
      <rt1 />
      <rt2 />
      <destinatario>
         <nome_destinatario><![CDATA[Nome Destinatatio]]></nome_destinatario>
         <telefone_destinatario />
         <celular_destinatario />
         <email_destinatario><![CDATA[email-comprador@gmail.com]]></email_destinatario>
         <logradouro_destinatario><![CDATA[Rua do Comprador]]></logradouro_destinatario>
         <complemento_destinatario><![CDATA[Qd: 102 A Lt: 04]]></complemento_destinatario>
         <numero_end_destinatario>1065</numero_end_destinatario>
      </destinatario>
      <nacional>
         <bairro_destinatario><![CDATA[Bairro do Destinatario]]></bairro_destinatario>
         <cidade_destinatario><![CDATA[Goiania]]></cidade_destinatario>
         <uf_destinatario>GO</uf_destinatario>
         <cep_destinatario><![CDATA[70002900]]></cep_destinatario>
         <codigo_usuario_postal />
         <centro_custo_cliente />
         <numero_nota_fiscal />
         <serie_nota_fiscal />
         <valor_nota_fiscal />
         <natureza_nota_fiscal />
         <descricao_objeto />
         <valor_a_cobrar />
      </nacional>
      <servico_adicional>
         <codigo_servico_adicional>025</codigo_servico_adicional>
         <codigo_servico_adicional>019</codigo_servico_adicional>
         <valor_declarado>17</valor_declarado>
      </servico_adicional>
      <dimensao_objeto>
         <tipo_objeto>2</tipo_objeto>
         <dimensao_altura>20</dimensao_altura>
         <dimensao_largura>30.0</dimensao_largura>
         <dimensao_comprimento>38.0</dimensao_comprimento>
         <dimensao_diametro>0</dimensao_diametro>
      </dimensao_objeto>
      <data_postagem_sara />
      <status_processamento>0</status_processamento>
      <numero_comprovante_postagem />
      <valor_cobrado />
   </objeto_postal>
</correioslog>
dzonen commented 6 years ago

Implementei as funções gerais em Python, porém a de fechamento de PLP me retorna um erro de "XML Parser" (mas no XSD passa), testei com outras bibliotecas em Python e obtive o mesmo erro, vocês tem previsão desta implementação na biblioteca de vocês em Java? A documentação da API dos correios achei muito fraca e os erros pouco detalhados o que estão dificultando meu desenvolvimento.