Ik heb op heel korte termijn hulp nodig om een aanpassing te maken in een webservice.
De webservice draait nu maar wordt per 1 oktober aangepast vanuit de leverancier.

De volgende veranderingen worden aangegeven:

de huidige webservices omgeving van CB gebruikt SSL 3.0;
de nieuwe webservices omgeving gebruikt TLS 1.2;
de huidige webservices omgeving van CB gebruikt SOAP;
de nieuwe webservices zijn beschikbaar in zowel SOAP als REST;

Er is verder een beschrijving aanwezig van de nieuwe webservice.
Het komt erop neer dat de SoapClient aangepast moet worden.

Ik maakte altijd gebruik van iemand met veel kennis van SOAP, php webservices, maar helaas lijkt deze buiten zicht.

Een voorbeeld van een foutmelding die ik nu ontvang o.b.v. de nieuwe webservice testomgeving:

Function ("exec") is not a valid method for this service

Wie wil me helpen op heel korte termijn? Het handigste lijkt me dat dit via e-mail contact gaat. Ik kan alle benodigde informatie verstrekken.

Eventueel heb ik daarna nog diverse wensen t.a.v. deze webservice, maar vooralsnog heeft 1 oktober kunnen draaien de allerhoogste prioriteit.
Download een programma zoals Soap UI zodat je de webservice URL wat "visueler" kunt verkennen.

Ik neem aan dat je een test URL hebt? Eventueel met username/password?

Ik denk dat het op deze manier verkennen van de service(s) een stuk sneller gaat dan enkel trial-and-error via PHP, da's toch een beetje blind vliegen.

Daarnaast neem ik aan dat je ook de beschikking hebt over documentatie over de werking (de WSDL zal je natuurlijk ook een eind op weg helpen).
Inderdaad heb ik toegang tot testomgeving met URL en username en wachtwoord.
En ook heb ik de beschikking over documentatie en WSDL.

Gevoelsmatig zal er niet heel veel gewijzigd moeten worden, maar ik ben zelf een leek op dit gebied en heb iemand anders deze webservice laten maken.

De webservice is gekoppeld aan een webshop; bij een geslaagde betaling wordt de webservice geactiveerd. Het gehele proces bestaat en werkt dus al, maar moet nu een aanpassing hebben vanwege de overgang per 1 oktober.

Nu heb ik zojuist SoapUI gedownload en zal kijken of ik hier zelf iets van kan maken, maar als iemand mij zou kunnen helpen, zou dit nog veel mooier zijn natuurlijk.
Voor mij is het bijna net zoiets als een Chinees document aanpassen :-)
Ik begrijp niet precies hoe ik m.b.v. SoapUI mijn situatie kan testen.

Ik start een nieuw SOAP project en vul vervolgens de wsdl in.
Maar in mijn situatie zit ergens een fout in een php bestand, die de communicatie met de nieuwe webservice verricht.
Ik wil dus dit php bestand testen m.b.v. SoapUI. Eigenlijk 2 php bestanden die hierop betrekking hebben dienen getest te worden.

Het lijkt er echter op dat ik alleen xml kan testen of heb ik het mis?

Hoe kan ik nu deze 2 php bestanden in het programma krijgen zodat ik dit kan testen en in het respons kan zien wat er fout gaat?
Je kunt voor elk van de services testcases aanmaken zoals in deze video wordt beschreven, deze kun je vervolgens als sjablonen voor je PHP code gebruiken.

Je kunt geen PHP-bestanden combineren met SoapUI voor zover ik weet.

Je moet SoapUI (in jouw geval / in eerste instantie) vooral zien als een tool voor verkenning van de structuur van de SOAP berichten en reacties, dit kan je verder helpen met het ontwikkelen van PHP-code omdat je werkende voorbeelden kunt verkrijgen door middel van gebruikmaking van SoapUI. Voer je deze werkende voorbeelden op dezelfde manier door in je PHP-code zou dit ook moeten werken.

Waaruit blijkt dat er een fout zit in het PHP-bestand? Wat voor terugkoppeling krijg je?
In het laatste geval ontving ik de volgende melding bij het trachten te laten draaien van de webservice (dmv het activeren van de actie uit een php bestand) (met andere woorden: ik wil met een aangepast php bestand de webservice laten draaien voor de nieuwe situatie (in de testomgeving).
Het is dus (volgens mij) geen antwoord uit de webservice, maar een foutmelding van het php bestand.

SoapFault Object
(
[message:protected] => Call to a member function getName() on a non-object
[string:Exception:private] =>
[code:protected] => 0

enzovoort

Met eerdere testen ontving ik de volgende melding:

SoapFault Object
(
[message:protected] => Cannot find dispatch method for {DigitalProductOrderService}placeOrder
[string:Exception:private] =>

enzovoort.
En daar biedt SoapUI wederom uitkomst: met de testcases kun je snel verschillende soorten aanroepen proberen. Waar het bij webservices soms nogal bij inschiet is een (correcte) documentatie over welke parameters nodig / verplicht zijn.

In eerste instantie moet je er vanuit kunnen gaan dat de webservice zelf naar behoren werkt (deze geen fouten bevat). Experimenteer dus met het uitvoeren van testcases totdat je iets werkends hebt. Reproduceer een soortgelijke call daarna in PHP. Als geen enkele call lukt zou je eens kunnen informeren of je niet toevallig de exceptions van een slapende programmeur op jouw bord krijgt vanuit de testomgeving.

Let ook heel goed op de structuur van de call en de response, als deze niet goed is (je mist bijvoorbeeld een "niveau" doordat je een omvattende XML-tag voor je parameters vergeet) dan krijg je heel snel een SoapFault als respons (wat meestal inhoudt dat je de service verkeerd aanroept).

Reageren