Python e Express Connect di TNT

di il
0 risposte

Python e Express Connect di TNT

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}")
Devi accedere o registrarti per scrivere nel forum
0 risposte