Solución Factible Home
Login
Solución Factible®:Integration Center [SF:IC]
Buscar en SF:IC
 
  • Home
  • Emisión
  • Timbrado
  • Recepción
  • Autofactura
  • Validador CFD
Inicio  |  Autofactura  |  Ejemplos Consumir WebServices
  • Home
  • Emisión
  • Timbrado
  • Recepción
  • Autofactura
  • General
  • Herramientas
  • Validador CFD

Consumir WebServices

En esta sección se muestran ejemplos en algunos lenguajes de programación para consumir webservices.

Porfavor note: Los ejemplos de esta sección están basados en el WSDL de Timbrado cada WSDL tiene su propia estructura y deberá modificarse el código de la petición acorde al webservice que se esté conectando.

VisualStudio2010
VisualStudio2010 C# .NET y VB .NET
PHP
<?php
$fname = "/home/Downloads/20110128_171752.xml";
$handle = fopen($fname, "r");
$sData = '';
$usuario = "testing@solucionfactible.com";
$password = "timbrado.SF.16672";

while(!feof($handle))
    $sData .= fread($handle, filesize($fname));
fclose($handle);
$b64 = base64_encode($sData);

$response = '';
/*
Porfavor note: 
    Este ejemplo está basado en el WSDL De timbrado
    cada WSDL tiene su propia estructura y deberá modificarse la petición 
    acorde al webservice que se esté conectando.*/
try {
        $client = new SoapClient("http://testing.solucionfactible.com/ws/services/Timbrado?wsdl");
        $params = array('usuario' => $usuario, 'password' => $password, 'cfdiBase64'=>$b64, 'zip'=>False);
        $response = $client->__soapCall('timbrarBase64', array('parameters' => $params));
} catch (SoapFault $fault) { 
        echo "SOAPFault: ".$fault->faultcode."-".$fault->faultstring."\n";
}
$ret = $response->return;
if($ret->status == 200) {
        print_r($ret->resultados);
}
?>
    

Python
import sys
from suds.client import Client
url = 'http://testing.solucionfactible.com/ws/services/Timbrado?wsdl'
client = Client(url)
result = client.service.timbrar("user","pass","cfdi","false")
print (result)
    

Perl
use SOAP::Lite;
use MIME::Base64;
use POSIX qw(tzset);

my $TZ = 'America/Mexico_city';

$user = 'testing@solucionfactible.com';
$password = 'timbrado.SF.16672';

$file = 'ruta_al_cfdi.xml';

$base64 = "";
open(FILE, $file) or die "$!";
    while (read(FILE, $buf, 60*57)) {
    $base64 = $base64.encode_base64($buf);
}

$proxy = "http://testing.solucionfactible.com/ws/services/Timbrado";

$response = SOAP::Lite->uri('http://timbrado.ws.cfdi.solucionfactible.com')->proxy($proxy)->timbrar($user, $password, $base64, false);
$status = $response->result->{'status'};
$mensaje = $response->result->{'mensaje'};

print "Status: $status\n";
print "Mensaje: $mensaje\n\n";
print "Detalle por comprobante\n";
for my $t ($response->valueof('//resultados')) {
        print "Status $t->{'status'}\nMensaje $t->{'mensaje'}\n";
        if(defined($t->{'uuid'})) {
                $ENV{TZ} = 'GMT';
                tzset;
                $fTimbrado = $t->{'fechaTimbrado'};
                print("UUID: $t->{'uuid'}\n");
                print("CFDI: ".decode_base64($t->{'cfdiTimbrado'})."\n");
                print("Fecha Timbrado: $fTimbrado\n");
                print("Cadena original: $t->{'cadenaOriginal'}\n");
                print("Certificado: $t->{'certificadoSAT'}\n");
                print("Sello: $t->{'selloSAT'}\n");
                print("QRCode: $t->{'qrCode'}\n");
        }
        print "\n\n";
}
print("\n\n");
    
comments powered by Disqus