Example #1
0
 public function valida_cfdi($rfc_emisor, $rfc_receptor, $total_factura, $uuid)
 {
     /*
             * Mensajes de Respuesta
             Los mensajes de respuesta que arroja el servicio de consulta de CFDI´s incluyen la descripción del resultado de la operación que corresponden a la siguiente clasificación:
             Mensajes de Rechazo.
             N 601: La expresión impresa proporcionada no es válida.
             Este código de respuesta se presentará cuando la petición de validación no se haya respetado en el formato definido.
             N 602: Comprobante no encontrado.
             Este código de respuesta se presentará cuando el UUID del comprobante no se encuentre en la Base de Datos del SAT.
             Mensajes de Aceptación.
             S Comprobante obtenido satisfactoriamente.
     */
     //           printf("\n clase webservice rfce=$rfc_emisor rfcr=$rfc_receptor total=$total_factura uuid=$uuid");
     $web_service = "https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc?wsdl";
     try {
         $hora_envio = date("Y-m-d H:i:s");
         $client = new SoapClient($web_service);
     } catch (Exception $e) {
         echo 'Excepción capturada: ', $e->getMessage(), "\n";
     }
     $cadena = "re={$rfc_emisor}&rr={$rfc_receptor}&tt={$total_factura}&id={$uuid}";
     $param = array('expresionImpresa' => $cadena);
     $respuesta = $client->Consulta($param);
     $hora_recepcion = date("Y-m-d H:i:s");
     $xml = 0;
     if ($respuesta->ConsultaResult->Estado == 'Vigente') {
         $cadena_encriptar = $hora_envio . '│' . $rfc_emisor . '│' . $rfc_receptor . '│' . $total_factura . '│' . $uuid . '│' . $hora_recepcion;
         $md5 = md5($cadena_encriptar);
         $xml = $this->create_xml($respuesta, $rfc_emisor, $rfc_receptor, $total_factura, $uuid, $web_service, $hora_envio, $hora_recepcion, $md5);
     }
     return $xml;
 }
Example #2
0
 public static function ValidateWithWebServiceSAT($rfc_emisor, $rfc_receptor, $total_factura, $uuid)
 {
     $web_service = "https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc?wsdl";
     $hora_envio = date("Y-m-d H:i:s");
     try {
         $client = new SoapClient($web_service);
     } catch (Exception $e) {
         echo '\\n Error de validación en WS Sat: ', $e->getMessage();
         return 0;
     }
     $cadena = "re={$rfc_emisor}&rr={$rfc_receptor}&tt={$total_factura}&id={$uuid}";
     $param = array('expresionImpresa' => $cadena);
     try {
         $respuesta = $client->Consulta($param);
     } catch (Exception $ex) {
         echo "\n Error en WebService SAT. " . $ex;
         return 0;
     }
     $hora_recepcion = date("Y-m-d H:i:s");
     if ($respuesta->ConsultaResult->Estado == 'Vigente') {
         $cadena_encriptar = $hora_envio . '│' . $rfc_emisor . '│' . $rfc_receptor . '│' . $total_factura . '│' . $uuid . '│' . $hora_recepcion;
         $md5 = md5($cadena_encriptar);
         return $xml = Receipt::CreateReceiptXml($respuesta, $rfc_emisor, $rfc_receptor, $total_factura, $uuid, $web_service, $hora_envio, $hora_recepcion, $md5);
     } else {
         return 0;
     }
 }
Example #3
0
 public function hacerPeticion()
 {
     try {
         $soapclient = new \SoapClient($this->url);
         $prm = array('expresionImpresa' => $this->formatoImpreso);
         $result = $soapclient->Consulta($prm);
         $satus = $result->ConsultaResult->CodigoEstatus;
         $estado = $result->ConsultaResult->Estado;
         $codigo = explode('-', $satus)[0];
         if (str_contains($codigo, 'S')) {
             $archivo = Archivos::where('uuid', '=', $this->uuid)->first();
             $archivo->validado = true;
             if ($archivo->status != $estado) {
                 $this->canceladaRecientemente = true;
             }
             $archivo->status = $estado;
             $archivo->fecha_checado = Carbon::now();
             $archivo->save();
             $this->estatus = $satus;
         }
         return serialize($result);
     } catch (\Exception $e) {
         return null;
     }
 }
Example #4
0
function valida_en_sat()
{
    global $data;
    error_reporting(E_ALL & ~(E_STRICT | E_NOTICE | E_WARNING | E_DEPRECATED));
    $url = "https://consultaqr.facturaelectronica.sat.gob.mx/consultacfdiservice.svc?wsdl";
    $soapclient = new SoapClient($url);
    $rfc_emisor = utf8_encode($data['rfc']);
    $rfc_receptor = utf8_encode($data['rfc_receptor']);
    $impo = (double) $data['total'];
    $impo = sprintf("%.6f", $impo);
    $impo = str_pad($impo, 17, "0", STR_PAD_LEFT);
    $uuid = strtoupper($data['uuid']);
    $factura = "?re={$rfc_emisor}&rr={$rfc_receptor}&tt={$impo}&id={$uuid}";
    echo "<h3>{$factura}</h3>";
    $prm = array('expresionImpresa' => $factura);
    $buscar = $soapclient->Consulta($prm);
    echo "<h3>El portal del SAT reporta</h3>";
    echo "El codigo: " . $buscar->ConsultaResult->CodigoEstatus . "<br>";
    echo "El estado: " . $buscar->ConsultaResult->Estado . "<br>";
}
Example #5
0
<?php

require_once "lib/nusoap.php";
try {
    $client = new SoapClient("https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc?wsdl");
} catch (Exception $e) {
    echo 'Excepción capturada: ', $e->getMessage(), "\n";
}
$rfc_emisor_ = 'AIC911114399';
$rfc_emisor = str_replace("&", "&amp;", $rfc_emisor_);
$rfc_receptor_ = 'HGP1307014D5';
$rfc_receptor = str_replace("&", "&amp;", $rfc_receptor_);
$total_factura = '163560';
$uuid = 'C09124CA-1FBC-46C3-A36E-B4F7CE40F23C';
$cadena = "re={$rfc_emisor}&rr={$rfc_receptor}&tt={$total_factura}&id={$uuid}";
$param = array('expresionImpresa' => $cadena);
$valores = $client->Consulta($param);
print_r(var_dump($valores));
echo "El codigo: " . $valores->ConsultaResult->CodigoEstatus . "<br>";
echo "El estado: " . $valores->ConsultaResult->Estado . "<br>";
// }}} Valida Sello
// {{{ Valida este XML en el servidor del SAT
// ftp://ftp2.sat.gob.mx/asistencia_servicio_ftp/publicaciones/cfdi/WS_ConsultaCFDI.pdf
Example #6
0
 function validarSAT($destination, $fileXML)
 {
     $filename = $fileXML['name'];
     //Emisor
     $rfc_emisor = getVariableXML('//cfdi:Comprobante//cfdi:Emisor', 'rfc', $destination);
     //Receptor
     $rfc_receptor = getVariableXML('//cfdi:Comprobante//cfdi:Receptor', 'rfc', $destination);
     //Total
     $total = getVariableXML('//cfdi:Comprobante', 'total', $destination);
     //UUID
     $id = getVariableXML('//t:TimbreFiscalDigital', 'UUID', $destination);
     //folio
     $folio = getVariableXML('//cfdi:Comprobante', 'folio', $destination);
     //Serie
     $serie = getVariableXML('//cfdi:Comprobante', 'serie', $destination);
     //Subtotal
     $subtotal = getVariableXML('//cfdi:Comprobante', 'subTotal', $destination);
     //Total
     $total = getVariableXML('//cfdi:Comprobante', 'total', $destination);
     //Impuestos
     $impuestos = getVariableXML('//cfdi:Comprobante//cfdi:Impuestos', 'totalImpuestosTrasladados', $destination);
     //Tasa
     $tasa = getVariableXML('//cfdi:Comprobante//cfdi:Impuestos//cfdi:Traslados//cfdi:Traslado', 'tasa', $destination);
     //Retenciones
     $retenciones = getVariableXML('//cfdi:Comprobante//cfdi:Impuestos//cfdi:Retenciones//cfdi:Retencion', 'importe', $destination);
     //Path
     $path = path();
     $finalPath = $path . $rfc_emisor . '/';
     $cadena = 're=' . $rfc_emisor;
     $cadena .= '&rr=' . $rfc_receptor;
     $cadena .= '&tt=' . $total;
     $cadena .= '&id=' . $id;
     $param = array('expresionImpresa' => $cadena);
     try {
         $client = new SoapClient('https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc?wsdl');
     } catch (Exception $e) {
         $error = $e->getMessage();
         echo 'Excepción capturada: ' . $error;
     }
     $valores = $client->Consulta($param);
     $success = moveXML($destination, $finalPath, $filename);
     $response = array('codigo' => $valores->ConsultaResult->CodigoEstatus, 'estado' => $valores->ConsultaResult->Estado, 'error' => 'no', 'referencia' => '' . $serie . $folio . '', 'subtotal' => '' . $subtotal . '', 'total' => '' . $total . '', 'impuestos' => '' . $impuestos . '', 'tasa' => '' . $tasa[0] . '', 'ruta' => '' . $success . '', 'retenciones' => '' . $retenciones . '', 'uuid' => '' . $id . '');
     return json_encode($response);
 }