[IMP] paulistana: suporte parametrizado ao schema v02 (Reforma Tributária)#101
Draft
mileo wants to merge 1 commit into
Draft
[IMP] paulistana: suporte parametrizado ao schema v02 (Reforma Tributária)#101mileo wants to merge 1 commit into
mileo wants to merge 1 commit into
Conversation
…ária) Introduz VERSOES_SCHEMA no provedor Paulistana selecionando bindings, URL e Versao do cabeçalho por versão de schema: - v02 (default): schema *_v01.xsd legado, WS nfe.prefeitura.sp.gov.br, Versao=1 — comportamento atual inalterado, segue atendendo consulta e cancelamento de notas com fato gerador até 31/12/2025. - v03: schema *_v02.xsd da Reforma Tributária (nfselib.paulistana.v03), WS nfews.prefeitura.sp.gov.br (Manual v3.3.7), Versao=2. A assinatura do RPS/cancelamento é normalizada em _assina_paulistana(): aceita str ou bytes na entrada e devolve no formato que o binding da versão espera — str base64 no v02 (tpAssinatura exportado como string) e bytes crus no v03 (tpAssinatura é xs:base64Binary e o generateDS aplica o base64 no export). Isso evita a assinatura dupla/inválida ao migrar de versão. NFSeFactory ganha **kwargs repassados ao provedor, permitindo NFSeFactory(..., versao_schema='v03') sem quebrar os demais provedores.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contexto
Alternativa complementar ao #94 (@CristianoMafraJunior / @Escodoo — obrigado pelo trabalho de base!) para levar o provedor Paulistana ao schema da Reforma Tributária 2026, resolvendo dois pontos levantados na revisão daquele PR:
v02→v03para tudo, o que impede consultar/cancelar notas do regime antigo (fato gerador até 31/12/2025) — caso real durante todo o ano de 2026..encode("ascii")antes dosign_pkcs1v15_sha1(rps.Assinatura); acryptographyexige bytes e o consumidor (l10n-brazil) entregastr, o que quebraria o envio em runtime.O que muda
VERSOES_SCHEMAno provedor, selecionando por versão: módulos de binding, URL do WS,Versaodo cabeçalho e formato do campo de assinatura.v02(default): schema*_v01.xsdlegado,nfe.prefeitura.sp.gov.br/ws/lotenfe.asmx,Versao=1— comportamento atual 100% preservado.v03: schema*_v02.xsd(bindingsnfselib.paulistana.v03),nfews.prefeitura.sp.gov.br/lotenfe.asmx(Manual v3.3.7, mesmo endpoint do [IMP] paulistana: reforma tributaria #94),Versao=2._assina_paulistana()normaliza a assinatura do RPS e do cancelamento: aceitastroubytesna entrada; devolvestrbase64 no v02 (binding exporta o campo como string) e bytes crus no v03 (tpAssinaturavirouxs:base64Binary— o generateDS aplica o base64 no export; setar base64 manualmente geraria dupla codificação).NFSeFactory(..., **kwargs): repassa kwargs ao provedor (versao_schema="v03"), sem quebrar os demais municípios.v03é guardado portry/exceptpróprio: com umanfselib.paulistanaantiga, só ov02fica disponível e pedirv03levantaValueErrorexplícito (em vez de desativar tudo silenciosamente).Validação (local)
Versaocorretos por ambiente (produção eTesteEnvioLoteRPS).create_fake_certificate_file): v02 →strbase64 válido; v03 →bytes(256), com entradastroubytes.versao_schemainválida →ValueErrorcom as versões disponíveis.Relacionados
l10n_br_nfse_paulistana)Pendências (fora do escopo)
*Async) e guias — dependem do nfselib.paulistana#7.nfews(o host segue o [IMP] paulistana: reforma tributaria #94/manual; falta confirmar em homologação com certificado real).