Esta sección describe los usos más avanzados de
Zend_Service_StrikeIron.
Algunos servicios de StrikeIron pueden tener una clase envoltorio de PHP disponible, como las descritas en Servicios incluidos. Sin embargo, StrikeIron ofrece cientos de servicios y muchos de ellos pueden ser utilizables incluso sin crear una clase envoltorio especial.
Para probar un servicio de StrikeIron que no tenga una clase envoltorio disponible,
proporcione la opción wsdl a getService()
en lugar de la opción class:
$strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
'password' => 'your-password'));
// Get a generic client to the Reverse Phone Lookup service
$phone = $strikeIron->getService(
array('wsdl' => 'http://ws.strikeiron.com/ReversePhoneLookup?WSDL')
);
$result = $phone->lookup(array('Number' => '(408) 253-8800'));
echo $result->listingName;
// Zend Technologies USA Inc
El uso de servicios de StrikeIron a partir del WSDL requerirá al menos cierta comprensión de los archivos WSDL. StrikeIron tiene muchos recursos en su sitio para ayudar con esto. Además, Jan Schneider del proyecto Horde ha escrito una pequeña rutina de PHP que formateará un archivo WSDL en HTML más legible.
Tenga en cuenta que solo los servicios descritos en la sección Servicios incluidos están oficialmente soportados.
Toda la comunicación con StrikeIron se realiza usando la extensión SOAP. A veces resulta útil ver el XML intercambiado con StrikeIron con fines de depuración.
Todo cliente de StrikeIron (subclase de
Zend_Service_StrikeIron_Base) contiene un método
getSoapClient() que devuelve la instancia subyacente de
SOAPClient usada para comunicarse con StrikeIron.
SOAPClient de PHP
tiene una opción trace que hace que recuerde el
XML intercambiado durante la última transacción.
Zend_Service_StrikeIron no habilita la opción
trace por defecto, pero esto se puede cambiar fácilmente
especificando las opciones que se pasarán al constructor de SOAPClient.
Para ver una transacción SOAP, llame al método getSoapClient()
para obtener la instancia de SOAPClient y luego llame a los métodos
apropiados como __getLastRequest()
y __getLastRequest():
$strikeIron =
new Zend_Service_StrikeIron(array('username' => 'your-username',
'password' => 'your-password',
'options' => array('trace' => true)));
// Get a client for the Sales & Use Tax Basic service
$taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
// Perform a method call
$taxBasic->getTaxRateCanada(array('province' => 'ontario'));
// Get SOAPClient instance and view XML
$soapClient = $taxBasic->getSoapClient();
echo $soapClient->__getLastRequest();
echo $soapClient->__getLastResponse();