Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import SOAPpy
- import base64
- import Crypto.Util.Counter
- import urllib, urllib2
- import re
- from SOAPpy import Config, HTTPTransport, SOAPAddress, WSDL
- from Crypto.Cipher import AES
- class myHTTPTransport(SOAPpy.HTTPTransport):
- username = None
- passwd = None
- @classmethod
- def setAuthentication(cls,u,p):
- print "paso"
- cls.username = u
- cls.passwd = p
- def call(self, addr, data, namespace, soapaction=None, encoding=None,
- http_proxy=None, config=SOAPpy.Config):
- print "ok"
- if not isinstance(addr, SOAPpy.SOAPAddress):
- addr=SOAPAddress(addr, config)
- if self.username != None:
- addr.user = self.username+":"+self.passwd
- return SOAPpy.HTTPTransport.call(self, addr, data, namespace, soapaction,
- encoding, http_proxy, config)
- AES.key_size=128
- AES.block_size =256
- iv="K~izx81wS5z?>xy#"
- key="YZ$*!l?!52bVh>Y9`'sa!Th]50C+RW~<"
- theurl = 'http://www.itesecc.com:8087/WS_Camiones.php?wsdl'
- username = 'osmar'
- password = 'carreras1'
- passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
- passman.add_password(None, theurl, username, password)
- authhandler = urllib2.HTTPBasicAuthHandler(passman)
- opener = urllib2.build_opener(authhandler)
- urllib2.install_opener(opener)
- pagehandle = urllib2.urlopen(theurl)
- print "pagehandle:",pagehandle
- try:
- myHTTPTransport.setAuthentication('osmar', 'carreras1')
- server = WSDL.Proxy(pagehandle, transport=myHTTPTransport)
- datos_entrada = SOAPpy.structType()
- crypt_object=AES.new(key, AES.MODE_CFB, iv)
- datos_entrada._addItem('_nomContribuyente',base64.b64encode(crypt_object.encrypt('_nomContribuyente')))
- crypt_object=AES.new(key, AES.MODE_CFB, iv)
- datos_entrada._addItem('_domicilioContribuyente',base64.b64encode(crypt_object.encrypt('_domicilioContribuyente')))
- crypt_object=AES.new(key, AES.MODE_CFB, iv)
- datos_entrada._addItem('_contribuyenteRFC',base64.b64encode(crypt_object.encrypt('_contribuyenteRFC')))
- crypt_object=AES.new(key, AES.MODE_CFB, iv)
- datos_entrada._addItem('_contactoContribuyente',base64.b64encode(crypt_object.encrypt('_contactoContribuyente')))
- crypt_object=AES.new(key, AES.MODE_CFB, iv)
- datos_entrada._addItem('_montoTotal',base64.b64encode(crypt_object.encrypt('500.00')))
- crypt_object=AES.new(key, AES.MODE_CFB, iv)
- datos_entrada._addItem('_detalleReciboPago',base64.b64encode(crypt_object.encrypt('_detalleReciboPago')))
- crypt_object=AES.new(key, AES.MODE_CFB, iv)
- datos_entrada._addItem('_datosFormaPago',base64.b64encode(crypt_object.encrypt('_datosFormaPago')))
- crypt_object=AES.new(key, AES.MODE_CFB, iv)
- datos_entrada._addItem('_detalleConceptoPago',base64.b64encode(crypt_object.encrypt('_detalleConceptoPago')))
- crypt_object=AES.new(key, AES.MODE_CFB, iv)
- datos_entrada._addItem('_cajeroID',base64.b64encode(crypt_object.encrypt('806')))
- crypt_object=AES.new(key, AES.MODE_CFB, iv)
- datos_entrada._addItem('_oficinaID',base64.b64encode(crypt_object.encrypt('10')))
- result = server.guardar_datos(datos_entrada)
- print "result", result
- except IOError as e:
- print "Error al pasear el wsdl del web service, intente mas tarde"
- except ValueError:
- print "Error el los valores, intente mas tarde"
- except:
- print "Error al comunicarse con el webservice, intente mas tarde"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement