Je travaille sur un projet où il est nécessaire de vérifier les membres inscrits avec National Student ClearingHouse en utilisant leur API. J'ai cherché partout sur Internet pour trouver un extrait qui décrit la méthode ou l'exemple comment interroger cela, mais pas de chance jusqu'à présent. La documentation est également très limitée à mettre en œuvre en php plus je n'ai jamais travaillé sur SOAP, ce qui rend cela encore plus compliqué pour moi.Mise en œuvre du service Web SOAP pour étudiants ClearingHouse
Lien vers Documentation: https://docs.google.com/file/d/1kZvEeobFNq3kbhZKJnagkVhcWhKHHwL5dwckbJLTB4dhNpMSF7cjAVOp9cne/edit?usp=sharing
D'une certaine façon, j'ai réussi à commencer voici le code:
$soap_url = 'https://xml.studentclearinghouse.org/ws/wsdl/HRXMLVerify.wsdl';
$client = new SoapClient($soap_url, array(
'SOAP-ENV' => 'http://schemas.xmlsoap.org/soap/envelope/',
'SOAPENC' => 'http://schemas.xmlsoap.org/soap/encoding/',
'xsi' => 'http://www.w3.org/2001/XMLSchemainstance',
'xsd' => 'http://www.w3.org/2001/XMLSchema'
));
$data = array(
'BackgroundCheck' => array(
'account' => 'xxxx',
'userid' => 'xxxxx',
'password' => 'xxxxx'
),
'BackgroundSearchPackage' => array()
);
echo '<pre>';
print_r($client->__soapCall('verifyHRXML', $data));
qui sort:
SoapFault Object
(
[message:protected] => SOAP-ERROR: Encoding: object has no 'BackgroundSearchPackage' property
[string:Exception:private] =>
[code:protected] => 0
[file:protected] => /Applications/MAMP/htdocs/nch/index.php
[line:protected] => 39
[trace:Exception:private] => Array
(
[0] => Array
(
[file] => /Applications/MAMP/htdocs/nch/index.php
[line] => 39
[function] => __soapCall
[class] => SoapClient
[type] => ->
[args] => Array
(
[0] => verifyHRXML
[1] => Array
(
[BackgroundCheck] => Array
(
[account] => xxxxxx
[userid] => xxxxx
[password] => xxxxxx
)
[BackgroundSearchPackage] => Array
(
)
)
)
)
)
[previous:Exception:private] =>
[faultstring] => SOAP-ERROR: Encoding: object has no 'BackgroundSearchPackage' property
[faultcode] => Client
[faultcodens] => http://schemas.xmlsoap.org/soap/envelope/
)
esprit Collé très mal.
d'envoyer un 'BackgroundSearchPackage' avec un tableau rempli avec les données du membre pour lequel je demande la vérification. C'est pourquoi c'est obligatoire. –
Bon, eh bien, vous devez obéir aux exigences du wsdl, et il n'y a pas de "BackgroundSearchPackage" au même niveau que "BackgroundCheck". Mais vous avez raison, j'ai répondu trop rapidement sans vérifier le wsdl dans les détails. "BackgroundSearchPackage" est défini * dans * "BackgroundCheck" et toutes les autres entrées (par exemple userid) sont des attributs. J'ai modifié ma réponse et ajouté des liens de référence et des extraits du wsdl. –
argh, enregistré la réponse trop rapidement, édité une dernière fois, j'espère que cela fonctionne! Et une dernière remarque: lorsque vous avez imbriqué des types complexes comme ceux-ci, vous devriez considérer le mapping de classe, voir le paramètre classmap pour le constructeur SoapClient: http://www.php.net/manual/en/soapclient.soapclient.php –