Skip to content

Commit 644e452

Browse files
Merge pull request #52 from luisiturrios1/fix/48
Error XML Mal Formado cuando se ingresa el RFC en minusculas issue #48
2 parents 6c4cee5 + 50ae5b6 commit 644e452

6 files changed

Lines changed: 20 additions & 19 deletions

File tree

cfdiclient/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@
1717

1818
name = 'cfdiclient'
1919

20-
version = '1.5.6'
20+
version = '1.5.7'

cfdiclient/descargamasiva.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class DescargaMasiva(WebServiceRequest):
1313
def descargar_paquete(self, token, rfc_solicitante, id_paquete):
1414

1515
arguments = {
16-
'RfcSolicitante': rfc_solicitante,
16+
'RfcSolicitante': rfc_solicitante.upper(),
1717
'IdPaquete': id_paquete,
1818
}
1919

cfdiclient/solicitadescarga.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ class SolicitaDescarga(WebServiceRequest):
1313
def solicitar_descarga(
1414
self, token, rfc_solicitante, fecha_inicial, fecha_final,
1515
rfc_emisor=None, rfc_receptor=None, tipo_solicitud='CFDI',
16-
tipo_comprobante=None, estado_comprobante=None,
16+
tipo_comprobante=None, estado_comprobante=None,
1717
rfc_a_cuenta_terceros=None, complemento=None, uuid=None
1818
):
1919

2020
arguments = {
21-
'RfcSolicitante': rfc_solicitante,
21+
'RfcSolicitante': rfc_solicitante.upper(),
2222
'FechaFinal': fecha_final.strftime(self.DATE_TIME_FORMAT),
2323
'FechaInicial': fecha_inicial.strftime(self.DATE_TIME_FORMAT),
2424
'TipoSolicitud': tipo_solicitud,
@@ -30,10 +30,10 @@ def solicitar_descarga(
3030
}
3131

3232
if rfc_emisor:
33-
arguments['RfcEmisor'] = rfc_emisor
33+
arguments['RfcEmisor'] = rfc_emisor.upper()
3434

3535
if rfc_receptor:
36-
arguments['RfcReceptores'] = [rfc_receptor]
36+
arguments['RfcReceptores'] = [rfc_receptor.upper()]
3737

3838
element_response = self.request(token, arguments)
3939

cfdiclient/verificasolicituddescarga.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class VerificaSolicitudDescarga(WebServiceRequest):
1313
def verificar_descarga(self, token, rfc_solicitante, id_solicitud):
1414

1515
arguments = {
16-
'RfcSolicitante': rfc_solicitante,
16+
'RfcSolicitante': rfc_solicitante.upper(),
1717
'IdSolicitud': id_solicitud,
1818
}
1919

ejemplo_completo.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
# -*- coding: utf-8 -*-
21
import base64
32
import datetime
43
import os
@@ -9,9 +8,8 @@
98
from cfdiclient import Fiel
109
from cfdiclient import SolicitaDescarga
1110
from cfdiclient import VerificaSolicitudDescarga
12-
1311
##
14-
## Constantes de Loggin
12+
# Constantes de Loggin
1513
##
1614
RFC = 'ESI920427886'
1715
FIEL_CER = 'ejemploCer.cer'
@@ -22,8 +20,8 @@
2220
cer_der = open(os.path.join(PATH, FIEL_CER), 'rb').read()
2321
key_der = open(os.path.join(PATH, FIEL_KEY), 'rb').read()
2422

25-
FECHA_INICIAL = datetime.date(2020, 1, 1)
26-
FECHA_FINAL = datetime.date(2020, 6, 24)
23+
FECHA_INICIAL = datetime.datetime(2024, 3, 1)
24+
FECHA_FINAL = datetime.datetime(2024, 3, 30)
2725

2826
fiel = Fiel(cer_der, key_der, FIEL_PAS)
2927

@@ -37,15 +35,17 @@
3735

3836
# EMITIDOS
3937
# solicitud = descarga.solicitar_descarga(
40-
# token, RFC, FECHA_INICIAL, FECHA_FINAL, rfc_emisor=RFC, tipo_solicitud='CFDI'
38+
# token, RFC, FECHA_INICIAL, FECHA_FINAL, rfc_emisor=RFC, tipo_solicitud='CFDI',
4139
# )
4240

4341
# RECIBIDOS
4442
solicitud = descarga.solicitar_descarga(
45-
token, RFC, FECHA_INICIAL, FECHA_FINAL, rfc_receptor=RFC, tipo_solicitud='CFDI'
43+
token, RFC, FECHA_INICIAL, FECHA_FINAL, rfc_receptor=RFC, tipo_solicitud='CFDI',
4644
)
45+
print('solicitar_descarga:', solicitud)
4746

48-
print('SOLICITUD:', solicitud)
47+
if solicitud['cod_estatus'] != '5000':
48+
exit(1)
4949

5050
while True:
5151

@@ -58,10 +58,11 @@
5858
verificacion = verificacion.verificar_descarga(
5959
token, RFC, solicitud['id_solicitud'])
6060

61-
print('SOLICITUD:', verificacion)
61+
print('verificar_descarga:', verificacion)
6262

6363
estado_solicitud = int(verificacion['estado_solicitud'])
6464

65+
# 0, Token invalido.
6566
# 1, Aceptada
6667
# 2, En proceso
6768
# 3, Terminada
@@ -73,7 +74,7 @@
7374

7475
# Si el estado de solicitud esta Aceptado o en proceso el programa espera
7576
# 60 segundos y vuelve a tratar de verificar
76-
time.sleep(60)
77+
time.sleep(10)
7778

7879
continue
7980

@@ -97,5 +98,5 @@
9798
with open('{}.zip'.format(paquete), 'wb') as fp:
9899

99100
fp.write(base64.b64decode(descarga['paquete_b64']))
100-
101+
101102
break

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setuptools.setup(
77
name='cfdiclient',
8-
version='1.5.6',
8+
version='1.5.7',
99
author='Luis Iturrios',
1010
author_email='luisiturrios1@gmail.com',
1111
description='Cliente Python Web Service del SAT para la descarga masiva de CFDIs',

0 commit comments

Comments
 (0)