Ejemplo Cancelar Factura en PHP
En este ejemplo podemos visualizar el código fuente y el mensaje generado.
Librería facturación electrónica en PHP
Este código fuente esta utlizando nuestro KIT de desarrollo el cual genera, valida, sella, timbra y almacena el CFDi.
Compatible con PHP 5.3 y superior; probado en Windows y Linux 32 y 64bits
Errores comunes
Existen varios errores comunes y nuestro KIT valida y/o corrige la mayoría de ellos de modo automático
- Validación de variables
- Error al generar el sello
- Errores por distintos juegos de caracteres
- Error al almacenar el XML distinto a UTF-8
- Consumo de timbres por errores no detectados
Ve el apartado de solución de problemas para ver las soluciones a los problemas más comunes
Código Fuente
<?php
error_reporting(E_ERROR);
include_once "../../sdk2.php";
$datos['PAC']['usuario'] = "DEMO700101XXX";
$datos['PAC']['pass'] = "DEMO700101XXX";
$datos['modulo']="cancelacion2018";
$datos['accion']="cancelar";
$datos["produccion"]="NO";
//$datos["xml"]="../../timbrados/cfdi_ejemplo_factura.xml";
$datos["uuid"]=" ";
$datos["rfc"] ="EKU9003173C9";
$datos["password"]="12345678a";
$datos["b64Cer"]="../../certificados/EKU9003173C9.cer";
$datos["b64Key"]="../../certificados/EKU9003173C9.key";
$res = mf_ejecuta_modulo($datos);
print_r($res);
/*NOTA: PARA REALIZAR LA CANCELACION SE REQUIERE EL UUID DE LA FACTURA A CANCELAR.
OPCIONALMENTE PODRA ENVIAR EL XML Y DE AHI SE ESTRAERÁ EL UUID, POR LO CUAL DEBE DE ELGIR UNA DE LAS 2 OPCIONES. ($datos["uuid"] O $datos["xml"])
EN CASO DE QUE POR ERROR SE ENVIEN AMBOS PARAMETROS EL VALOR QUE SERA TOMADO EN CUENTA SERA EL QUE ESTÉ EN EL CAMPO UUID
Y SE IGNORARA LA FACTURA QUE SE ESPECIFIQUE EN EL CAMPO "$datos["xml"]"*/
Respuesta
Array ( [codigo_mf_numero] => 0 [codigo_mf_texto] => OK [mensaje_original] => {"data":{"acuse":"BF6132F4-F99B-4C69-A655-71AED1C5CC78201not(ancestor-or-self::*[local-name()='Signature'])62OINdVCySsLH9CMYd+Gyxo8/GPSafy4fGbsSKkEd2i9LQv6ZYFDZYKrXlwtakNQ89mFoIXqGkQZ6xpi8PvgAg==SNdaEG9cVR8C1pdlV6YigmswykZItmRHny/xDv3jcbLL8N4bbFb1WpVdbZ9IIvazJGXm43epSvzleGzsIEFl4g==BF66E582888CC845n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=AQAB","uuid":{"BF6132F4-F99B-4C69-A655-71AED1C5CC78":"201"}},"status":"success"} [acuse] => PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48QWN1c2UgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgRmVjaGE9IjIwMjEtMDItMTZUMTI6MDE6MjkuNDA3MTIzNiIgUmZjRW1pc29yPSJFS1U5MDAzMTczQzkiPjxGb2xpb3MgeG1sbnM9Imh0dHA6Ly9jYW5jZWxhY2ZkLnNhdC5nb2IubXgiPjxVVUlEPkJGNjEzMkY0LUY5OUItNEM2OS1BNjU1LTcxQUVEMUM1Q0M3ODwvVVVJRD48RXN0YXR1c1VVSUQ+MjAxPC9Fc3RhdHVzVVVJRD48L0ZvbGlvcz48U2lnbmF0dXJlIElkPSJTZWxsb1NBVCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxTaWduZWRJbmZvPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMteG1sLWMxNG4tMjAwMTAzMTUiIC8+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI2htYWMtc2hhNTEyIiAvPjxSZWZlcmVuY2UgVVJJPSIiPjxUcmFuc2Zvcm1zPjxUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14cGF0aC0xOTk5MTExNiI+PFhQYXRoPm5vdChhbmNlc3Rvci1vci1zZWxmOjoqW2xvY2FsLW5hbWUoKT0nU2lnbmF0dXJlJ10pPC9YUGF0aD48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTUxMiIgLz48RGlnZXN0VmFsdWU+NjJPSU5kVkN5U3NMSDlDTVlkK0d5eG84L0dQU2FmeTRmR2JzU0trRWQyaTlMUXY2WllGRFpZS3JYbHd0YWtOUTg5bUZvSVhxR2tRWjZ4cGk4UHZnQWc9PTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPjxTaWduYXR1cmVWYWx1ZT5TTmRhRUc5Y1ZSOEMxcGRsVjZZaWdtc3d5a1pJdG1SSG55L3hEdjNqY2JMTDhONGJiRmIxV3BWZGJaOUlJdmF6SkdYbTQzZXBTdnpsZUd6c0lFRmw0Zz09PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48S2V5TmFtZT5CRjY2RTU4Mjg4OENDODQ1PC9LZXlOYW1lPjxLZXlWYWx1ZT48UlNBS2V5VmFsdWU+PE1vZHVsdXM+bjVZc0dUMHc1WjcwT05QYnFzemhFeGZKVStLWTNCc2NmdGMyanhVbjR3eHBTakVVaG5DdVRkODhPSzVRYkRXM011cG9jNjFqcjgzbFJoVUNqY2hGQW1DaWdwQzEwckVudFRmRVUrN3F0WDh1ZC9qSkpEQjFhOWxUSUI2YmhCTi8vWDhJUURqaG1IcmZLdmZlbjNwN1J4THJGb3h6V2dwd0tyaXVHSTV3VWxVPTwvTW9kdWx1cz48RXhwb25lbnQ+QVFBQjwvRXhwb25lbnQ+PC9SU0FLZXlWYWx1ZT48L0tleVZhbHVlPjwvS2V5SW5mbz48L1NpZ25hdHVyZT48L0FjdXNlPg== [status] => success [uuid] => bf6132f4-f99b-4c69-a655-71aed1c5cc78 [codigo_respuesta_sat] => 201 [codigo_respuesta_sat_texto] => UUID Cancelado exitosamente [codigo_respuesta_sat_texto_descripcion] => Se considera cancelado correctamente. Deber� aparecer con estatus Cancelado ante el SAT de 0 a 72 hrs posterior a la cancelaci�n [produccion] => NO [accion] => cancelar )