Python suds Sunat example.

#!/usr/bin/python
from suds.client import Client
from suds.wsse import *
import requests
import base64
import logging

logging.basicConfig(level=logging.INFO)
logging.getLogger('suds.client').setLevel(logging.DEBUG)
#logging.getLogger('suds.wsdl').setLevel(logging.DEBUG)
#logging.getLogger('suds.wsse').setLevel(logging.DEBUG)

def addSecurityHeader(client, username, password):
    security = Security()
    userNameToken = UsernameToken(username, password)
    timeStampToken = Timestamp(validity=600)
    security.tokens.append(userNameToken)
    security.tokens.append(timeStampToken)
    client.set_options(wsse=security)
username = '20600999806MODDATOS'
password = 'moddatos'
session = requests.session()
session.auth = (username, password)

WSDL_URL = 'https://www.sunat.gob.pe/ol-ti-itcpgem-beta/billService?wsdl'
client = Client(WSDL_URL, faults=False, cachingpolicy=1, location=WSDL_URL)
addSecurityHeader(client, username, password)

# Send File
f = open('/tmp/xml/20600999806-01-F001-1.zip', 'rb')
data_file = f.read()

get_file = client.service.sendBill("20600999806-01-F001-1.zip", base64.b64encode(str(data_file)))

# Save file
get_file_decode = base64.b64decode(str(get_file[1]))
f = open('/tmp/xml/R-20600999806-01-F001-1.zip', 'w')

f.write(get_file_decode)

f.close()
Anuncios

4 comentarios en “Python suds Sunat example.

  1. hola estimado.
    una consulta, como trabajas el sendBill para enviar el archivo ZIP?. me sale un error al momento de realizar la prueba con el archivo ZIP:

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s