Ciao Ragazzi,
sto sviluppando uno script in python che mi possa aiutare a Gestire le spedizioni di TNT con express connect. Ossia data una base di DATi Generare un XML. Premesso che ho tutte le credenziali di test che qui ho cambiato e premesso indirizzi farlocchi ma reali creati da me, non vado oltre l'errore 403. Sto uscendo pazzo, ho provato aconsultarmi anche con OpenAI ( chat gpt) versione 4 ,per vedere se visualizzava un problema che io non vedo, ma anche lì non riesco ad andare oltre. Ivi compreso la parte tecnicca di TNT a cui ricevo risposte dopo secoli.
qualcuno ha per caso avuto a che far con questo? ha dei dettagli? io con tutto il rispetto per gli atustici ho riletto il manuale 400 volte e mi ci sto spaccando la testa.
from lxml import etree as ET
import requests
# Create the root Envelope element and its child, the Body element
envelope = ET.Element('{http://schemas.xmlsoap.org/soap/envelope/}Envelope')
body = ET.SubElement(envelope, '{http://schemas.xmlsoap.org/soap/envelope/}Body')
# Create the getPDFLabel request element
get_pdf_label = ET.SubElement(body, '{http://services.resi.tnt.com}getPDFLabel')
# Create the inputXml element and its CDATA content with the shipment details
input_xml = ET.SubElement(get_pdf_label, 'inputXml')
input_xml.text = ET.CDATA('''<?xml version="1.0" encoding="UTF-8"?>
<shipment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="c:routinglabel.xsd">
<software>
<application>MYRTL</application>
<version>1.0</version>
</software>
<security>
<customer>E12345</customer>
<user>TEST</user>
<password>Cuccureddu24!</password>
<langid>IT</langid>
</security>
<labelType>T</labelType>
<consignment action="I" cashondelivery="N" hazardous="N" highvalue="N" insurance="N" international="N" specialgoods="E" operationaloption="0">
<senderAccId>string</senderAccId>
<consignmentno></consignmentno>
<consignmenttype>T</consignmenttype>
<CollectionTrg>
<availabilitytime>0900</availabilitytime>
<pickupdate>20240209</pickupdate>
<pickuptime>0900</pickuptime>
<pickupinstr>Disponibile al ritiro</pickupinstr>
</CollectionTrg>
<addresses>
<address type="R">
<name>Lorenzo Zambassa</name>
<street>via di maliseti</street>
<streetno>31</streetno>
<postcode>59100</postcode>
<city>Prato</city>
<country>IT</country>
</address>
</addresses>
<!-- Aggiungi ulteriori dettagli della spedizione qui -->
</consignment>
</shipment>
''')
# Converti l'XML finale in una stringa
request_xml = ET.tostring(envelope, encoding='unicode', pretty_print=True)
# Stampa l'XML per controllo
print(request_xml)
# URL per l'ambiente di test, come specificato nel manuale
url = "https://www.mytnt.it/xmltest_htmlresponse.html"
# Headers per la richiesta POST
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
# Invia la richiesta all'ambiente di test di TNT
response = requests.post(url, data={'xmlin': request_xml}, headers=headers)
# Handle the response
if response.status_code == 200:
print("Request succeeded")
print(response.text)
else:
print(f"Error in the request: {response.status_code}")