Zend_Service_StrikeIron proporciona un cliente PHP 5 para
los servicios web de StrikeIron. Consulte las siguientes secciones:
StrikeIron ofrece cientos de servicios de datos comerciales ("Data as a Service") como impuesto sobre ventas en línea, tipos de cambio, cotizaciones bursátiles, geocódigos, verificación de direcciones global, páginas amarillas/blancas, indicaciones de conducción de MapQuest, comprobación de crédito comercial de Dun & Bradstreet, y mucho, mucho más.
Cada servicio web de StrikeIron comparte una API SOAP (y REST) estándar, lo que facilita integrar y gestionar múltiples servicios. StrikeIron también gestiona la facturación de clientes de todos los servicios en una única cuenta, lo que resulta ideal para proveedores de soluciones. Comience con servicios web gratuitos en http://www.strikeiron.com/sdp.
Los servicios de StrikeIron pueden utilizarse a través de la
extensión SOAP de PHP 5
por sí sola. Sin embargo, usar StrikeIron de esta manera no ofrece una interfaz
ideal al estilo PHP. El componente
Zend_Service_StrikeIron proporciona una capa ligera sobre
la extensión SOAP para trabajar con los servicios de StrikeIron de una
manera más conveniente y al estilo PHP.
![]() |
Nota |
|---|---|
La extensión SOAP de PHP 5 debe estar instalada y
habilitada para usar |
El componente Zend_Service_StrikeIron proporciona:
Un único punto para configurar sus credenciales de autenticación de StrikeIron que puede usarse en muchos servicios de StrikeIron.
Una forma estándar de recuperar la información de su suscripción a StrikeIron, como el estado de la licencia y el número de peticiones restantes para un servicio.
La posibilidad de usar cualquier servicio de StrikeIron a partir de su WSDL sin crear una clase envoltorio PHP, y la opción de crear un envoltorio para una interfaz más conveniente.
Envoltorios para tres servicios populares de StrikeIron.
Antes de poder comenzar con Zend_Service_StrikeIron, debe
primero registrarse para obtener una
cuenta de desarrollador de StrikeIron.
Después de registrarse, recibirá un nombre de usuario y contraseña de StrikeIron.
Estos se usarán al conectarse a StrikeIron mediante
Zend_Service_StrikeIron.
También necesitará suscribirse al servicio web Super Data Pack de StrikeIron.
Ambos pasos de registro son gratuitos y pueden realizarse con relativa rapidez a través del sitio web de StrikeIron.
Una vez que se haya registrado
para una cuenta de StrikeIron y se haya suscrito al
Super Data Pack,
estará listo para comenzar a usar Zend_Service_StrikeIron.
StrikeIron consta de cientos de servicios web diferentes.
Zend_Service_StrikeIron puede usarse con muchos de estos servicios
pero proporciona envoltorios compatibles para tres de ellos:
La clase Zend_Service_StrikeIron proporciona una manera sencilla
de especificar la información de su cuenta de StrikeIron y otras opciones en
su constructor. También tiene un método de fábrica que devolverá clientes
para los servicios de StrikeIron:
$strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
'password' => 'your-password'));
$taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
El método getService() devolverá un cliente para cualquier
servicio de StrikeIron por el nombre de su clase envoltorio PHP. En este
caso, el nombre 'SalesUseTaxBasic' hace referencia a la clase envoltorio
Zend_Service_StrikeIron_SalesUseTaxBasic. Se incluyen envoltorios
para tres servicios y se describen en
Servicios incluidos.
El método getService() también puede devolver un cliente para
un servicio de StrikeIron que aún no tenga un envoltorio PHP. Esto se
explica en
Uso de servicios
mediante WSDL.
Una vez que haya usado el método getService() para obtener un cliente
de un servicio de StrikeIron en particular, puede utilizar ese cliente
llamando a sus métodos como cualquier otro objeto PHP.
$strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
'password' => 'your-password'));
// Get a client for the Sales & Use Tax Basic service
$taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
// Query tax rate for Ontario, Canada
$rateInfo = $taxBasic->getTaxRateCanada(array('province' => 'ontario'));
echo $rateInfo->province;
echo $rateInfo->abbreviation;
echo $rateInfo->GST;
En el ejemplo anterior, el método getService() se usa
para devolver un cliente para el servicio Impuesto sobre
ventas y uso básico. El objeto cliente se almacena en
$taxBasic.
A continuación se llama al método getTaxRateCanada() en el
servicio. Se usa un array asociativo para suministrar parámetros con nombre al
método. Esta es la manera en que se llaman todos los métodos de StrikeIron.
El resultado de getTaxRateCanada() se almacena en
$rateInfo y tiene propiedades como province
y GST.
Muchos de los servicios de StrikeIron son tan sencillos de usar como el ejemplo anterior. Consulte Servicios incluidos para obtener información detallada sobre tres servicios de StrikeIron.
Al aprender o depurar los servicios de StrikeIron, a menudo resulta útil volcar el
resultado devuelto por una llamada a un método. El resultado siempre será un objeto que es una
instancia de Zend_Service_StrikeIron_Decorator. Este es un
pequeño objeto decorador
que envuelve los resultados de la llamada al método.
La forma más sencilla de examinar un resultado del servicio es usar las funciones integradas de PHP como print_r():
<?php
$strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
'password' => 'your-password'));
$taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
$rateInfo = $taxBasic->getTaxRateCanada(array('province' => 'ontario'));
print_r($rateInfo);
?>
Zend_Service_StrikeIron_Decorator Object
(
[_name:protected] => GetTaxRateCanadaResult
[_object:protected] => stdClass Object
(
[abbreviation] => ON
[province] => ONTARIO
[GST] => 0.06
[PST] => 0.08
[total] => 0.14
[HST] => Y
)
)
En la salida anterior, vemos que el decorador ($rateInfo) envuelve un
objeto llamado GetTaxRateCanadaResult, el resultado de la llamada a
getTaxRateCanada().
Esto significa que $rateInfo tiene propiedades públicas como
abbreviation, province, y
GST. Se accede a ellas como
$rateInfo->province.
![]() |
Consejo |
|---|---|
Las propiedades de resultado de StrikeIron a veces comienzan con una letra mayúscula, como Foo o Bar, mientras que la mayoría de las propiedades de objetos PHP normalmente comienzan con una letra minúscula, como en foo o bar. El decorador realizará automáticamente esta inflexión, de modo que puede leer una propiedad Foo como foo. |
Si alguna vez necesita obtener el objeto original o su nombre a partir del decorador, use los
métodos respectivos getDecoratedObject() y
getDecoratedObjectName().
Los ejemplos anteriores son ingenuos, es decir, no se mostró manejo de errores. Es posible que StrikeIron devuelva un fallo durante una llamada a un método. Eventos como credenciales de cuenta incorrectas o una suscripción caducada pueden hacer que StrikeIron genere un fallo.
Se lanzará una excepción cuando ocurra tal fallo. Debe anticipar y capturar estas excepciones al realizar llamadas a métodos del servicio:
$strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
'password' => 'your-password'));
$taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
try {
$taxBasic->getTaxRateCanada(array('province' => 'ontario'));
} catch (Zend_Service_StrikeIron_Exception $e) {
// error handling for events like connection
// problems or subscription errors
}
Las excepciones lanzadas siempre serán
Zend_Service_StrikeIron_Exception.
Es importante entender la diferencia entre las excepciones y
las llamadas a métodos fallidas normales. Las excepciones ocurren en
condiciones excepcionales, como
que la red se caiga o que su suscripción caduque.
Las llamadas a métodos fallidas que son un evento habitual,
como que getTaxRateCanada() no encuentre la
province que suministró, no producirán una excepción.
![]() |
Nota |
|---|---|
Cada vez que realice una llamada a un método de un servicio de StrikeIron, debe comprobar la validez del objeto de respuesta y también estar preparado para capturar una excepción. |
StrikeIron proporciona muchos servicios diferentes. Algunos de ellos son gratuitos, algunos están disponibles en régimen de prueba, y otros son de solo suscripción de pago. Al usar StrikeIron, es importante conocer el estado de su suscripción para los servicios que está usando y comprobarlo regularmente.
Cada cliente de StrikeIron devuelto por el método getService()
tiene la capacidad de comprobar el estado de la suscripción para ese servicio usando
el método getSubscriptionInfo() del cliente:
// Get a client for the Sales & Use Tax Basic service
$strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
'password' => 'your-password'));
$taxBasic = $strikeIron->getService(array('class => 'SalesUseTaxBasic'));
// Check remaining hits for the Sales & Use Tax Basic service
$subscription = $taxBasic->getSubscriptionInfo();
echo $subscription->remainingHits;
El método getSubscriptionInfo() devolverá un objeto
que típicamente tiene una propiedad remainingHits. Es
importante comprobar el estado de cada servicio que esté usando. Si
se realiza una llamada a un método a StrikeIron después de que se hayan agotado los
aciertos restantes, ocurrirá una excepción.
Comprobar su suscripción a un servicio no usa ningún acierto restante
del servicio. Cada vez que se realiza una llamada a un método del servicio,
el número de aciertos restantes se almacenará en caché y este valor en caché será
devuelto por getSubscriptionInfo() sin conectarse
de nuevo al servicio. Para forzar a getSubscriptionInfo()
a anular su caché y consultar la información de suscripción de nuevo, use
getSubscriptionInfo(true).
![[Note]](images/note.png)
![[Tip]](images/tip.png)