TigerZF
🌐Español

64.31. Zend_Service_StrikeIron: Usos avanzados

Esta sección describe los usos más avanzados de Zend_Service_StrikeIron.

64.31.1. Uso de servicios mediante WSDL

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.

64.31.2. Visualización de transacciones SOAP

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();