So versuchte ich, unsere SMS (Student Management System) mit einem Regierungsdienst oder einer Website zu verbinden. Der Prozess erfordert ein Authentifizierungstoken von Vanguard. Erfolgreich, ich bin in der Lage, das Token zu erhalten ... aber wegen Mangel an Dokumentation und Beispielcodes in PHP habe ich Probleme beim Kommunizieren mit dem besagten Dienst. Ich frage mich, ob es mein Code, der das Problem verursacht, oder ist es meine Anrufe, die Konflikte Anbindung an den Webservice hat: Siehe Code unten:Zugriff auf USI Webservice mit einem Token von Vanguard gibt einen Fehler zurück
<?php
require_once 'VanguardClient.php';
$endpoint = 'https://3pt.portal.usi.gov.au/Service/v2/UsiService.svc';
function get_sts($endpoint){
$test = true;
$auskey_path = 'Keystore.xml';
$auskey_password = 'Password1!';
$v = new VanguardClient($test);
$v->loadAuskey($auskey_path, $auskey_password);
try {
return $v->requestToken($endpoint);
} catch (SoapFault $e) {
echo "Error1:";
echo $e;
}
}
//get token from Vanguard
$token = get_sts($endpoint);
//create soap client
try{
$wsdl = 'https://3pt.portal.usi.gov.au/service/V2/UsiService.wsdl';
$client = new SoapClient($wsdl,
array(
'trace' =>1,
//'soap_version' => SOAP_1_2,
'keep_alive' => false,
//'connection_timeout' => 500000,
'cache_wsdl' => WSDL_CACHE_NONE
)
);
} catch (SoapFault $e) {
echo "SoapClient Error:<br />";
var_dump($e);
}
try {
$result=$client->__setSoapHeaders($token);
} catch (SoapFault $e) {
echo "__setSoapHeaders:";
var_dump($e);
}
$data = array(
'OrgCode' => '970003',
'USI' => 'U6Q8JN6UD9',
'FirstName' => 'Myrna',
'FamilyName' => 'Macknight',
'DateOfBirth' => '1971-04-19'
);
try{
$response=$client->__soapCall('VerifyUSI',$data);
} catch (SoapFault $e) {
echo "__soapCall Error:<br />";
echo $e;
}
var_dump($response);
Das Ergebnis auf dem Browser, die ich zu sehen bin, ist dies:
SoapFault-Ausnahme: [HTTP] Die Nachricht kann nicht verarbeitet werden, da der Inhaltstyp 'text/xml; charset = utf-8 'war nicht der erwartete Typ' application/soap + xml; charset = utf-8 '. in /var/www/html/usitest/example1.php:73 Stapelüberwachung: # 0 [interne Funktion]: Soapclient -> __ doRequest ('__ soapcall (' VerifyUSI‘, Array) # 2 {main} NULL
Vielen dank im Voraus Jungs !!!
Mein Kommentar zur OP Frage weiterleiten ... Jungs, war da jemals ein Fortschritt dabei? Ich habe genau das gleiche Problem, indem ich SOAP 1.2 verwende und einen "Ungültigen SOAP-Header" erhalte, wenn ich das zurückgegebene Token in den Soapheader einspeise. Ich würde gerne wissen, ob du das zur Arbeit hast. Sieht so aus, als hätten nur zwei Leute auf der Welt versucht, dies in PHP zu versuchen :) –