西班牙税务局电子办公室(AEAT)集成
aeat-web-services的Python项目详细描述
Master |
西班牙税务局电子办公室(AEAT)整合。
提出请求AEAT Web Services 并使用证书签署连接和XML。
integración con la agencia estatal de administración支流埃斯帕尼亚
realization小蛋糕a losServicios Web de AEAT {EM1}$$FiMaTu Couxi n MeSAjes XML使用。
用法(英语)
请求ens列表的示例。
如果要请求AEAT测试或生产终结点(测试模式),请使用所需的预配置服务初始化配置对象。 最后使用配置和所需的证书初始化控制器,并使用有效负载发出请求。
如果您需要更多的控制,只需手动构建控制器,请参阅build_from_config method以获取灵感。
importaeatconfig=aeat.Config('ens_presentation',test_mode=True)ctrl=aeat.Controller.build_from_config(config,'cert.pem','key.pem')result=ctrl.request(payload)# See factories for examplesassertresult.valid,f'Error requesting aeat: {result.error}'assertresult.dataisnotNone
用法(西班牙语)
ejemplo de consulta de enss.
inicializa el objecto config con el servicio preconfigurado y si quieres usar los endpoints de aeat de test o de producción(测试模式)。por_ltimo inicializa el controlador con la config y el certificado que gustes y realization la petición pas an ndole los datos que necesites.需要的控制和配置。
si necesitas un major control simplemente construye el controlador a mano,puedes inspirate en el método to build_from_config.从配置中创建简单的控制。
importaeatconfig=aeat.Config('ens_presentation',test_mode=True)ctrl=aeat.Controller.build_from_config(config,'cert.pem','key.pem')result=ctrl.request(payload)# Ver factories para ejemplosassertresult.valid,f'Error requesting aeat: {result.error}'assertresult.dataisnotNone
django rest框架
提供了几个AEAT验证程序和序列化程序。
- 验证程序:验证要发送到AEAT的输入数据
- 序列化程序:序列化AEAT请求
fromaeat.rest_frameworkimportvalidatorsvalidator=validators.ENSPresentationValidator(data=payload)assertvalidator.is_valid(raise_exception=True)# Send the request to AEATimportaeatconfig=aeat.Config(service_name,test_mode=settings.AEAT_TEST_MODE)ctrl=aeat.Controller.build_from_config(config,cert_path,key_path)result=ctrl.request(validator.data)assertresult.valid# Parse the responsefromaeat.rest_frameworkimportserializersserializer=serializers.get_class_for_aeat_response(data=result.data)assertserializer.is_valid(raise_exception=False)assert{'mrn':'XXXX'}==serializer.dataassertnotserializer.is_error
先决条件
安装xmlsec先决条件。 检查https://github.com/mehcode/python-xmlsec
安装
$ pip install aeat-web-services
开发
$ python setup.py develop $ pip install -r requirements_test.txt
测试
$ pip install tox $ tox