ralego/laravel-timbox
Composer 安装命令:
composer require ralego/laravel-timbox
包简介
Timbrado de xml con timbox para laravel
README 文档
README
Este paquete te ayuda a utilizar todos los servicios de Timbox de una manera sencilla.
Instalación
Este paquete puede ser utlizado en Laravel 5.5 o superior.
Instalar el paquete a través de composer:
composer require ralego/laravel-timbox
Uso
Timbrado
Agrega Ralego\Timbox\Traits\Timbrado trait en la clase que vayas a necesitar timbrar:
use Ralego\Timbox\Traits\Timbrado; class HomeController extends Controller { use Timbrado, // ... }
Ejemplo:
use Illuminate\Http\Request; use Ralego\Timbox\Traits\Timbrado; class HomeController extends Controller { use Timbrado; public function timbrar() { // Cargamos el XML de prueba $xml = file_get_contents('ejemplo_cfdi33.xml'); // Usuario y contraseña de la cuenta de timbox $credenciales = (object)[ 'username' => 'AAA010101000', 'password' => 'h6584D56fVdBbSmmnB' ]; // Cargamos la llave del SAT en formato PEM $key = file_get_contents('CSD01_AAA010101AAA.key.pem'); // Sellamos y actualizamos la hora del cfdi versión 3.3. $xml = $this->sellar($xml, $key); // Timbramos el documento $resultado = $this->timbrar($credenciales, $xml); // Si ocurre algun error retornamos el mensaje con status 422 if(!$resultado->success) return response($resultado->message, 422); $xml_timbrado = $resultado->xml; return $xml_timbrado; } }
Cancelacion
Agrega Ralego\Timbox\Traits\Cancelacion trait en la clase que vayas a necesitar cancelar:
use Ralego\Timbox\Traits\Cancelacion; class HomeController extends Controller { use Cancelacion, // ... }
Ejemplo:
use Illuminate\Http\Request; use Ralego\Timbox\Traits\Cancelacion; class HomeController extends Controller { use Cancelacion; public function cancelar() { // Usuario y contraseña de la cuenta de timbox $credenciales = (object)[ 'username' => 'AAA010101000', 'password' => 'h6584D56fVdBbSmmnB' ]; // Cargamos el certificado y la llave del SAT en formato PEM $cer = file_get_contents('CSD01_AAA010101AAA.cer.pem'); $key = file_get_contents('CSD01_AAA010101AAA.key.pem'); // Colocamos los cfdis a cancelar $uuids = [ [ "uuid" => 'EE728194-B356-4B84-9349-254F532A3E01', "rfc_receptor" => 'IAD121214B34', "total" => '1751.60' ]// ... n folio a cancelar ]; $resultado = $this->cancelar($credenciales, 'AAA010101AAA',$cer, $key, $uuids); // Si ocurre algun error retornamos el mensaje con status 422 if(!$resultado->success) return response($resultado->message, 422); $xml_timbrado = $resultado->xml; return $xml_timbrado; } }
Consultas
use Ralego\Timbox\Traits\Status; class HomeController extends Controller { use Status, // ... }
Ejemplo para obtener el estatus de un cfdi:
use Illuminate\Http\Request; use Ralego\Timbox\Traits\Status; class HomeController extends Controller { use Status; public function estatus() { // Usuario y contraseña de la cuenta de timbox $credenciales = (object)[ 'username' => 'AAA010101000', 'password' => 'h6584D56fVdBbSmmnB' ]; // Colocamos el uuid, rfc_emisor, rfc_receptor y el total del cfdi $resultado = $this->status($credenciales, 'EE728194-B356-4B84-9349-254F532A3E01', 'AAA010101AAA','IAD121214B34', '1751.60'); // Si ocurre algun error retornamos el mensaje con status 422 if(!$resultado->success) return response($resultado->message, 422); $estatus = $resultado->estado; return $estatus; } }
Ejemplo para consultar peticiones pendientes:
use Illuminate\Http\Request; use Ralego\Timbox\Traits\Status; class HomeController extends Controller { use Status; public function pendientes() { // Usuario y contraseña de la cuenta de timbox $credenciales = (object)[ 'username' => 'AAA010101000', 'password' => 'h6584D56fVdBbSmmnB' ]; // Cargamos el certificado y la llave del SAT en formato PEM $cer = file_get_contents('CSD01_AAA010101AAA.cer.pem'); $key = file_get_contents('CSD01_AAA010101AAA.key.pem'); // Colocamos al final el rfc_receptor $result = $this->pendientes($credenciales, $cer, $key, 'AAA010101AAA'); // Si ocurre algun error retornamos el mensaje con status 422 if(!$resultado->success) return response($resultado->message, 422); $uuids_pendientes = $resultado->uuids; return $uuids_pendientes; } }
Ejemplo para consultar los documentos relacionados de un cfdi:
use Illuminate\Http\Request; use Ralego\Timbox\Traits\Status; class HomeController extends Controller { use Status; public function relacionados() { // Usuario y contraseña de la cuenta de timbox $credenciales = (object)[ 'username' => 'AAA010101000', 'password' => 'h6584D56fVdBbSmmnB' ]; // Cargamos el certificado y la llave del SAT en formato PEM $cer = file_get_contents('CSD01_AAA010101AAA.cer.pem'); $key = file_get_contents('CSD01_AAA010101AAA.key.pem'); // Colocamos al final el rfc_receptor y el uuid $result = $this->relacionados($credenciales, $cer, $key, 'AAA010101AAA','EE728194-B356-4B84-9349-254F532A3E01'); // Si ocurre algun error retornamos el mensaje con status 422 if(!$resultado->success) return response($resultado->message, 422); $uuids_relacionados = $resultado; return $uuids_relacionados; } }
Ejemplo para realizar la petición de aceptacion/rechazo de la solicitud de cancelación:
use Illuminate\Http\Request; use Ralego\Timbox\Traits\Status; class HomeController extends Controller { use Status; public function responder() { // Usuario y contraseña de la cuenta de timbox $credenciales = (object)[ 'username' => 'AAA010101000', 'password' => 'h6584D56fVdBbSmmnB' ]; // Cargamos el certificado y la llave del SAT en formato PEM $cer = file_get_contents('CSD01_AAA010101AAA.cer.pem'); $key = file_get_contents('CSD01_AAA010101AAA.key.pem'); // Colocamos el rfc del receptor $respuestas = [ [ "uuid" => 'EE728194-B356-4B84-9349-254F532A3E01', "rfc_emisor" => 'AAA010101AAA', "total" => '1751.60', "respuesta" => 'A' ] // ... n folios_respuestas a procesar ]; $resultado = $this->responder($credenciales, $cer, $key, 'IAD121214B34', $respuestas); // Si ocurre algun error retornamos el mensaje con status 422 if(!$resultado->success) return response($resultado->message, 422); $folios = $resultado->folios; return $folios; } }
Soporte
Cualquier duda referente a la información retornada por el web service de timbox lo puedes consultar en su documentación.
ralego/laravel-timbox 适用场景与选型建议
ralego/laravel-timbox 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 11 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 05 月 16 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 ralego/laravel-timbox 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 ralego/laravel-timbox 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 11
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-05-16