7 changed files with 203 additions and 35 deletions
-
81pynfe/processamento/comunicacao.py
-
4pynfe/processamento/serializacao.py
-
58run_fake_soap_server.py
-
2tests/03-processamento-01-serializacao-xml.txt
-
51tests/03-processamento-04-comunicacao.txt
-
27tests/certificado.pem
-
15tests/key.pem
@ -1,24 +1,50 @@ |
|||||
from soaplib.wsgi_soap import SimpleWSGISoapApp |
|
||||
from soaplib.service import soapmethod |
|
||||
from soaplib.serializers.primitive import String, Integer, Array, Null |
|
||||
|
# -*- coding: utf-8 -*- |
||||
|
|
||||
class ServidorNFEFalso(SimpleWSGISoapApp): |
|
||||
@soapmethod(String, Integer, _returns=Array(String)) |
|
||||
def ping(self, nome, vezes): |
|
||||
ret = [nome for i in range(vezes)] |
|
||||
print ret |
|
||||
return ret |
|
||||
|
"""Este script deve ser executado com Python 2.6+ e OpenSSL""" |
||||
|
|
||||
|
import os |
||||
|
|
||||
|
CUR_DIR = os.path.dirname(os.path.abspath(__file__)) |
||||
|
|
||||
|
#from soaplib.wsgi_soap import SimpleWSGISoapApp |
||||
|
#from soaplib.service import soapmethod |
||||
|
#from soaplib.serializers.primitive import String, Integer, Array, Null |
||||
|
|
||||
|
#import tornado.wsgi |
||||
|
import tornado.httpserver |
||||
|
import tornado.ioloop |
||||
|
import tornado.web |
||||
|
import tornado.options |
||||
|
|
||||
|
#class ServidorNFEFalso(SimpleWSGISoapApp): |
||||
|
# @soapmethod(String, Integer, _returns=Array(String)) |
||||
|
# def ping(self, nome, vezes): |
||||
|
# ret = [nome for i in range(vezes)] |
||||
|
# return ret |
||||
|
|
||||
|
class HandlerStatusServico(tornado.web.RequestHandler): |
||||
|
def post(self): |
||||
|
self.write('<x/>') |
||||
|
|
||||
if __name__ == '__main__': |
if __name__ == '__main__': |
||||
porta = 8080 |
porta = 8080 |
||||
|
|
||||
# Via Tornado |
|
||||
import tornado.wsgi |
|
||||
import tornado.httpserver |
|
||||
import tornado.ioloop |
|
||||
application = ServidorNFEFalso() |
|
||||
container = tornado.wsgi.WSGIContainer(application) |
|
||||
http_server = tornado.httpserver.HTTPServer(container) |
|
||||
|
# Codigo específico da soaplib |
||||
|
#application = ServidorNFEFalso() |
||||
|
#container = tornado.wsgi.WSGIContainer(application) |
||||
|
#http_server = tornado.httpserver.HTTPServer(container) |
||||
|
|
||||
|
tornado.options.parse_command_line() |
||||
|
application = tornado.web.Application([ |
||||
|
(r'^/nfeweb/services/nfestatusservico.asmx$', HandlerStatusServico), # Consulta de status do serviço |
||||
|
]) |
||||
|
|
||||
|
ssl_options = { |
||||
|
'certfile': os.path.join(CUR_DIR, 'tests', 'certificado.pem'), |
||||
|
'keyfile': os.path.join(CUR_DIR, 'tests', 'key.pem'), |
||||
|
} |
||||
|
|
||||
|
http_server = tornado.httpserver.HTTPServer(application, ssl_options=ssl_options) |
||||
http_server.listen(porta) |
http_server.listen(porta) |
||||
tornado.ioloop.IOLoop.instance().start() |
tornado.ioloop.IOLoop.instance().start() |
||||
|
|
||||
@ -0,0 +1,27 @@ |
|||||
|
-----BEGIN CERTIFICATE----- |
||||
|
MIIEqzCCA5OgAwIBAgIDMTg4MA0GCSqGSIb3DQEBBQUAMIGSMQswCQYDVQQGEwJC |
||||
|
UjELMAkGA1UECBMCUlMxFTATBgNVBAcTDFBvcnRvIEFsZWdyZTEdMBsGA1UEChMU |
||||
|
VGVzdGUgUHJvamV0byBORmUgUlMxHTAbBgNVBAsTFFRlc3RlIFByb2pldG8gTkZl |
||||
|
IFJTMSEwHwYDVQQDExhORmUgLSBBQyBJbnRlcm1lZGlhcmlhIDEwHhcNMDkwNTIy |
||||
|
MTcwNzAzWhcNMTAxMDAyMTcwNzAzWjCBnjELMAkGA1UECBMCUlMxHTAbBgNVBAsT |
||||
|
FFRlc3RlIFByb2pldG8gTkZlIFJTMR0wGwYDVQQKExRUZXN0ZSBQcm9qZXRvIE5G |
||||
|
ZSBSUzEVMBMGA1UEBxMMUE9SVE8gQUxFR1JFMQswCQYDVQQGEwJCUjEtMCsGA1UE |
||||
|
AxMkTkZlIC0gQXNzb2NpYWNhbyBORi1lOjk5OTk5MDkwOTEwMjcwMIGfMA0GCSqG |
||||
|
SIb3DQEBAQUAA4GNADCBiQKBgQCx1O/e1Q+xh+wCoxa4pr/5aEFt2dEX9iBJyYu/ |
||||
|
2a78emtorZKbWeyK435SRTbHxHSjqe1sWtIhXBaFa2dHiukT1WJyoAcXwB1GtxjT |
||||
|
2VVESQGtRiujMa+opus6dufJJl7RslAjqN/ZPxcBXaezt0nHvnUB/uB1K8WT9G7E |
||||
|
S0V17wIDAQABo4IBfjCCAXowIgYDVR0jAQEABBgwFoAUPT5TqhNWAm+ZpcVsvB7m |
||||
|
alDBjEQwDwYDVR0TAQH/BAUwAwEBADAPBgNVHQ8BAf8EBQMDAOAAMAwGA1UdIAEB |
||||
|
AAQCMAAwgawGA1UdEQEBAASBoTCBnqA4BgVgTAEDBKAvBC0yMjA4MTk3Nzk5OTk5 |
||||
|
OTk5OTk5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDCgEgYFYEwBAwKgCQQHREZU |
||||
|
LU5GZaAZBgVgTAEDA6AQBA45OTk5OTA5MDkxMDI3MKAXBgVgTAEDB6AOBAwwMDAw |
||||
|
MDAwMDAwMDCBGmRmdC1uZmVAcHJvY2VyZ3MucnMuZ292LmJyMCAGA1UdJQEB/wQW |
||||
|
MBQGCCsGAQUFBwMCBggrBgEFBQcDBDBTBgNVHR8BAQAESTBHMEWgQ6BBhj9odHRw |
||||
|
Oi8vbmZlY2VydGlmaWNhZG8uc2VmYXoucnMuZ292LmJyL0xDUi9BQ0ludGVybWVk |
||||
|
aWFyaWEzOC5jcmwwDQYJKoZIhvcNAQEFBQADggEBAJFytXuiS02eJO0iMQr/Hi+O |
||||
|
x7/vYiPewiDL7s5EwO8A9jKx9G2Baz0KEjcdaeZk9a2NzDEgX9zboPxhw0RkWahV |
||||
|
CP2xvRFWswDIa2WRUT/LHTEuTeKCJ0iF/um/kYM8PmWxPsDWzvsCCRp146lc0lz9 |
||||
|
LGm5ruPVYPZ/7DAoimUk3bdCMW/rzkVYg7iitxHrhklxH7YWQHUwbcqPt7Jv0RJx |
||||
|
clc1MhQlV2eM2MO1iIlk8Eti86dRrJVoicR1bwc6/YDqDp4PFONTi1ddewRu6elG |
||||
|
S74AzCcNYRSVTINYiZLpBZO0uivrnTEnsFguVnNtWb9MAHGt3tkR0gAVs6S0fm8= |
||||
|
-----END CERTIFICATE----- |
||||
@ -0,0 +1,15 @@ |
|||||
|
-----BEGIN RSA PRIVATE KEY----- |
||||
|
MIICXQIBAAKBgQCx1O/e1Q+xh+wCoxa4pr/5aEFt2dEX9iBJyYu/2a78emtorZKb |
||||
|
WeyK435SRTbHxHSjqe1sWtIhXBaFa2dHiukT1WJyoAcXwB1GtxjT2VVESQGtRiuj |
||||
|
Ma+opus6dufJJl7RslAjqN/ZPxcBXaezt0nHvnUB/uB1K8WT9G7ES0V17wIDAQAB |
||||
|
AoGAAYOcnzsVLR/JJKSa1uukis0WcYb/PsL7t2Ud6X5C/SdVrsh7jRMQ7oXNV4n7 |
||||
|
U2wayiHyQY/sZhhQoMYvVO6b2Wm/anq+F5L2QNT0FUxckRugDtH6tY6wqbs+AoTK |
||||
|
+eTBcSowB6HP6J9yZss02jSzh1xqX1t7q7dJEJjTGmoRczECQQDRrXux9N5Bdnzu |
||||
|
vTQFm7W1cYkxLrxPZ/gHFaHLAjd/h29cG1UTpkmUeKFDDPETE4q6Zmg3sWOAeMZB |
||||
|
tZQA7nf1AkEA2R5hS2Z+vvXLEGzxSTwYH2pRBoXUzuj801YqMhe4T/pJu4H3Bzab |
||||
|
4/SEEZdcFEa51HdOmqtOtQj1NDy/z3Lb0wJBAI1YaGEvU8BHcrKxgucg715QGg64 |
||||
|
laLl0HJeJ8IlTWo/z1cE6dYkK8fVhcggakbUzpkXPbwFbbEGOYfEMvBp0R0CQQCr |
||||
|
G98vriIbWthjJIhv3/Ve5Mngax6QxltiLpjoi3sNRMJRDRbiz23CFBT1TCUcMbUI |
||||
|
NdJz4KgR0nJ0bZ/43JtTAkBLJwkUNQDLdxx2EMif8KMRfsTAqUQ0d4wWnUP0hPHH |
||||
|
4qjUm/un000TF7eB85tszXxGxWATaGx4OPT91dXwzDsh |
||||
|
-----END RSA PRIVATE KEY----- |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue