Esta versión de la biblioteca está diseñada para fancourier api v2.0 (respuestas basadas en JSON). El código funciona y hay ejemplos para todas las solicitudes de API; sin embargo, la documentación aún no está lista.
Todas las solicitudes tienen el método getData()
que devuelve la respuesta sin procesar de la API. Las funciones adicionales dependen del tipo de objeto de respuesta para devolver los datos procesados.
NOTA Por el momento está diseñado para funcionar con PHP 7.0 y versiones posteriores.
Sin embargo, el plan es agregar declaraciones de tipo y tipo de retorno para todas las funciones que llevarán los requisitos a PHP 8.1 como mínimo.
Requerir el paquete a través del compositor
composer require shusaura85/fancourier-api
Si se usa sin Composer, deberá solicitar manualmente el archivo autoload.php
require_once ' /path/to/fancourier-api/src/autoload.php ' ;
Por el momento aún no está disponible la documentación completa y adecuada. Sin embargo, hay ejemplos para cada tipo de solicitud que puede realizar.
Dentro de ellos también encontrará comentarios con una lista completa de funciones para cada request
, response
y object
.
Cree una nueva instancia de Fancourier.php
proporcionando client_id
, username
, password
y token
.
$ clientId = ' your_client_id ' ;
$ username = ' your_username ' ;
$ password = ' your_password ' ;
$ token = ' load from cache or leave as empty string ' ;
$ fan = new Fancourier Fancourier ( $ clientId , $ username , $ password , $ token );
O puede utilizar el método estático de la instancia de prueba:
$ fan = Fancourier Fancourier:: testInstance ( $ token );
El token generado tiene una vida útil de 24 horas y debe actualizarse después de este período. Puede obtener el token generado usando la función:
$force_refresh = false;
$token = $fan->getToken($force_refresh);
Si el token especificado está vacío al crear la instancia, se generará automáticamente en la primera solicitud.
Pedido
$ request = new Fancourier Request GetCosts ();
$ request
-> setParcels ( 1 )
-> setWeight ( 1 )
-> setCounty ( ' Arad ' )
-> setCity ( ' Aciuta ' )
-> setDeclaredValue ( 125 );
Respuesta
if ( $ response -> isOk ()) {
var_dump ( $ response -> getData ()); // raw data
// or just the information you want
echo " extraKmCost: " . $ response -> getKmCost (). ' <br /> ' ;
echo " weightCost: " . $ response -> getWeightCost (). ' <br /> ' ;
echo " insuranceCost: " . $ response -> getInsuranceCost (). ' <br /> ' ;
echo " optionsCost: " . $ response -> getOptionsCost (). ' <br /> ' ;
echo " fuelCost: " . $ response -> getFuelCost (). ' <br /> ' ;
echo " costNoVAT: " . $ response -> getCost (). ' <br /> ' ;
echo " vat: " . $ response -> getCostVat (). ' <br /> ' ;
echo " total: " . $ response -> getCostTotal (). ' <br /> ' ;
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}
Pedido
$ awb = new Fancourier Objects AwbIntern ();
$ awb
-> setService ( ' Cont Colector ' )
-> setPaymentType ( Fancourier Request CreateAwb:: TYPE_SENDER )
-> setParcels ( 1 )
-> setWeight ( 1 ) // in kg
-> setReimbursement ( 199.99 ) // suma de incasat
-> setDeclaredValue ( 1000 )
-> setSizes ( 10 , 5 , 1 ) // in cm
-> setNotes ( ' testing notes ' )
-> setContents ( ' SKU-1, SKU-2 ' )
-> setRecipientName ( " John Ivy " )
-> setPhone ( ' 0723000000 ' )
-> setCounty ( ' Arad ' )
-> setCity ( ' Aciuta ' )
-> setStreet ( ' Str Lunga ' )
-> setNumber ( 1 )
-> addOption ( ' S ' )
-> addOption ( ' X ' );
$ request = new Fancourier Request CreateAwb ();
$ request -> addAwb ( $ awb );
Respuesta
$ response = $ fan -> createAwb ( $ request );
if ( $ response -> isOk ()) {
var_dump ( $ response -> getData ()); // raw data
// or the AWBIntern objects updated with the response information
$ al = $ response -> getAll ();
echo " Count: " . count ( $ al ). " <br /> " ;
foreach ( $ al as $ awbr )
{
if ( $ awbr -> hasErrors ())
{
print_r ( $ awbr -> getErrors ());
}
else
{
echo " AWB: " . $ awbr -> getAwb (). " <br /> " ;
}
}
} else {
var_dump ( $ response -> getErrorMessage ());
}
A diferencia de la versión anterior, ya no existe una solicitud CreateAwbBulk. Simplemente cree tantos objetos AWBIntern y agréguelos a la solicitud
Pedido
$ request = new Fancourier Request CreateAwb ();
// create the first awb
$ awb = new Fancourier Objects AwbIntern ();
$ awb
-> setService ( ' Cont Colector ' )
. . . .
-> addOption ( ' X ' );
// add it to the request
$ request -> addAwb ( $ awb );
// create another awb
$ awb = new Fancourier Objects AwbIntern ();
$ awb
-> setService ( ' Cont Colector ' )
. . . .
-> addOption ( ' X ' );
// add it to the request
$ request -> addAwb ( $ awb );
// create another awb
$ awb = new Fancourier Objects AwbIntern ();
$ awb
-> setService ( ' Cont Colector ' )
. . . .
-> addOption ( ' X ' );
// add it to the request
$ request -> addAwb ( $ awb );
Respuesta
$ response = $ fan -> createAwb ( $ request );
if ( $ response -> isOk ()) {
var_dump ( $ response -> getData ()); // raw data
// or the AWBIntern objects updated with the response information
$ al = $ response -> getAll ();
echo " Count: " . count ( $ al ). " <br /> " ;
foreach ( $ al as $ awbr )
{
if ( $ awbr -> hasErrors ())
{
print_r ( $ awbr -> getErrors ());
}
else
{
echo " AWB: " . $ awbr -> getAwb (). " <br /> " ;
}
}
} else {
var_dump ( $ response -> getErrorMessage ());
}
Pedido
$ request = new Fancourier Request TrackAwb ();
$ request
-> setAwb ( ' 2150900120086 ' );
Respuesta
$ response = $ fan -> trackAwb ( $ request );
if ( $ response -> isOk ()) {
print_r ( $ response -> getData ()); // raw data
print_r ( $ response -> getAll ()); // array of AwbTracker objects
} else {
var_dump ( $ response -> getErrorMessage ());
}
A diferencia de la versión anterior, puedes usar el mismo objeto TrackAwb() y agregar tantos AWB como necesites para rastrear
Pedido
$ request = new Fancourier Request TrackAwb ();
$ request
-> addAwb ( ' 2150900120084 ' )
-> addAwb ( ' 2150900120085 ' )
-> addAwb ( ' 2150900120086 ' );
Respuesta
$ response = $ fan -> trackAwb ( $ request );
if ( $ response -> isOk ()) {
print_r ( $ response -> getData ()); // raw data
print_r ( $ response -> getAll ()); // array of AwbTracker objects
} else {
var_dump ( $ response -> getErrorMessage ());
}
Ahora puede obtener fácilmente información sobre las ubicaciones de FANBox y PayPoint disponibles. FAN Courier llama allí PUDO (Pick Up Drop Off).
Al crear un AWB para ellos, establezca la dirección en la dirección PUDO tal como se recibió aquí y llame a la función setPickupLocation(PUDO_ID)
con el ID del PUDO seleccionado.
Pedido
$ request = new Fancourier Request GetPudo ();
$ request
-> setType ( Fancourier Request GetPudo:: PUDO_FANBOX );
Respuesta
$ response = $ fan -> getPudo ( $ request );
if ( $ response -> isOk ()) {
print_r ( $ response -> getData ()); // raw data
print_r ( $ response -> getAll ()); // array of PUDO objects
} else {
var_dump ( $ response -> getErrorMessage ());
}
La solicitud de impresión puede imprimir uno o más AWB mediante una sola solicitud.
Puede especificar el tamaño del AWB usando la función ->setSize()
. Las opciones disponibles son: vacío , A4 , A5 y A6 . A6 sólo se puede utilizar con la opción ePod.
La impresión de PDF es el modo de impresión predeterminado.
Tenga en cuenta que no puede solicitar ZPL y PDF al mismo tiempo. El uso de setPdf()
desactivará automáticamente la opción ZPL si está configurada.
Pedido
$ request = new Fancourier Request PrintAwb ();
$ request
-> setPdf ( true )
-> setAwb ( ' 2150900120086 ' );
Respuesta
$ response = $ fan -> printAwb ( $ request );
if ( $ response -> isOk ()) {
echo $ response -> getData ();
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}
Puede solicitar el AWB en formato ZPL (lenguaje de programación Zebra) para usarlo con una impresora de etiquetas.
Tenga en cuenta que no puede solicitar ZPL y PDF al mismo tiempo. El uso de setZpl()
desactivará automáticamente la opción PDF si está configurada.
Pedido
$ request = new Fancourier Request PrintAwb ();
$ request
-> setZpl ( true )
-> setAwb ( ' 2150900120086 ' );
Respuesta
$ response = $ fan -> printAwb ( $ request );
if ( $ response -> isOk ()) {
echo $ response -> getData ();
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}
Si desea el AWB en formato HTML, simplemente use ->setPdf(false) para obtener datos HTML en lugar de PDF.
Pedido
$ request = new Fancourier Request PrintAwb ();
$ request
-> setPdf ( false )
-> setAwb ( ' 2150900120086 ' );
Respuesta
$ response = $ fan -> printAwb ( $ request );
if ( $ response -> isOk ()) {
echo $ response -> getData ();
} else {
var_dump ( $ response -> getErrorMessage ());
print_r ( $ response -> getAllErrors ());
}
Pedido
$ request = new Fancourier Request DeleteAwb ();
$ request -> setAwb ( ' 2150900120086 ' );
Respuesta
$ response = $ fan -> deleteAwb ( $ request );
if ( $ response -> isOk ()) {
var_dump ( $ response -> getData ());
} else {
var_dump ( $ response -> getErrorMessage ());
}
fancourier api es un software de código abierto con licencia MIT.