Tilasin tässä Matkahuollon sivuilta maksuttoman asiakastunnuksen osoitekorttihaun rajapinnan testausta ja käyttöönottoa varten koska entinen oli vissiin vanhentunut. Sain sähköpostiini palautteena:
New: asiakastunnus - AGSRQ-xxxxxxxx
Ticket AGSRQ-xxxxxxxx has been opened for you.
And that's all. WTF? mitä tuolla ticket jutulla teen, kun en pääse sitä mistään tutkimaan.
No latasin vielä varmuuden vuoksi kaikki rajapinnan kuvaukset ja mallit sekä C# WebApplication esimerkki projektin (matkahuolto_cs.zip). Tutkin kaikki mahdolliset speksit verestääkseni yli 10 vuoden takaisia muistojani em. rajapinnan käytön tiimoilta. Nyt aloin innoissani tutkimaan vanhalta tikulta löytämääni ikivahaa Excel 32 bit VBA6 ympyröissä kehittämääni viritelmää.
Ei toiminut. Lakkasi toimimasta Windows 10:ssä. Toimi aiemmin XP/office 2003 32 bit, Windows 7/8(.1&.2) 64 bit/Office 2007 32 bit VBA 6 ympäristöissä heittämällä. Nyt käytössä Windows 10 64 bit/Office 2010 Pro Plus 32 bit (VBA7). Tutkittuani ja säädeltyäni aikani pääsin siihen asti, että viritelmäni saa .responseText rimpsun Matkahuollon palvelimen testiympäristöstä aivan kuten ennenkin, mutta DOMDocument60 objekti ei enää pysty lataamaan .response rimpsua. Joten en pysty poimimaan suoraan childnode'sta PDF:ksi BASE64 dekoodattavaa rimpsua, joka asia alkaa pikkuhiljaa jurppimaan.
Aina kun meilaan Matkahuollon "Guruille" saan ainoastaan: Ticket AGSRQ-xxxxxxxx has been opened for you.
No siirryin C# WebApp esimerkin testaukseen ja rakentelin speksien mukaiset .xml viritelmät (jotka olin ratkonut jo ajat sitten ilman speksejä) niin tökkäsi heti eka rivillä: Piti vaihtaa CodeBehid="Default.aspx.cs" CodeFile="Default.aspx.cs", että IIS localhost tai ASP.NET hotellin palvelin pystyi lataamaan _Default luokan. No eipä tuo juuri auttanut:
The request was aborted: Could not create SSL/TLS secure channel. /* HttpWebResponse res = (HttpWebResponse)req.GetResponse(); */
Ei ole tähän mennessä auttanut web.config tai ServicePointManager.SecurityProtocol = SecurityProtocolType.-säätelyt. Ei ole löytynyt apua StackOverflow tai CodeProject -guruilta ja Matkahuollon tuki voi painua minun mielestäni Vi****n!
En osaa suoraa vastausta antaa ja itse en C#:llä ohjelmoi, mutta ainoat ongelmat mitä minulla on vastaan tulleet ovat johtuneet väärin asetetusta TLS-versiosta ja puuttuvasta tai väärästä SNI nimestä.
No viimein lähti pelittämään! Matkahuollon tuesta ei ollut mitään apua, kyselivät vaan pariinkin otteeseen, että mitäkö olin puuhaamassa.
Hieman aihetta sivuttaen;
Onko kokemusta sovelluksen integraatiosta Matkahuollon pakettipalveluun siten, että voisi luoda uusia lähetyksiä applikaation sisällä? Pakettipalveluun tein yhteen projektiin kyseisenlaisen kirjaston, mutta olisi alkamassa mahdollisesti projekti, jossa kaikki kulkevat matkahuollon kautta. Nopeuttaisi asiakkaan workflowta mikäli voisi automatisoida mahdollisimman pitkälle tuota prosessia.
Homma toimii...
Selvittelin asiaa niin SOAP:ia ilmeisesti tarjoavat. Vaikuttaa ihan pätevältä kokonaisuudelta vaikka tosin en ihan kaikkea vielä ole ehtinyt lukea.
Asiakas tarvitsi kuitenkin lisäpalveluina iäntarkastuksen ja sitten pakettiennakon, jota ei tarjottu kyseisellä rajapinnalla. Täytynee siis luopua kyseisestä operaatiosta.
Kiitos neosofta kuitenkin kattavasta esittelystä
noutti kirjoitti:
Asiakas tarvitsi kuitenkin lisäpalveluina iäntarkastuksen...
Iän ne tarkistaa
<HandoverRemark1>Luovutus vain yli 18-vuotiaille</HandoverRemark1> <HandoverRemark2>Valtakirja vaaditaan</HandoverRemark2>
noutti kirjoitti:
ja sitten pakettiennakon...
Pakettiennakon osalta asia selviää soitolla Matkahuollon yrityspalveluun/Myyntiin. Siis olettaisin, että systeemi perustuu sopimukseen & takaukseen, että jos pakettia ei voida toimittaa esim. iän perusteella, ei ole hynää maksaa tms. niin lähettäjä maksaa rahtaamiset (etenkin jos haluaa kamansa takasin).
Mikäli ei maksa niin lähettelyt käy vähiin 😊
Aihe on jo aika vanha, joten et voi enää vastata siihen.