承接 ralego/laravel-timbox 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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 我们能提供哪些服务?
定制开发 / 二次开发

基于 ralego/laravel-timbox 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 11
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-05-16