raalveco/ciberfactura

电子发票发行库

安装: 571

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 3

开放问题: 0

语言:XSLT

类型:商业

v2.0.0-beta.10 2017-06-06 02:18 UTC

README

简化CFDI创建和盖章过程的库。

安装

要开始安装库,需要在Laravel根目录下的composer.json中添加依赖。

{
    "require": {
        "raalveco/ciberfactura": "1.0.*"
    }
}

Laravel 5.2

注册以下服务提供者和别名。

// config/app.php

'providers' => [
    Raalveco\Ciberfactura\CiberfacturaServiceProvider::class,
];

'aliases' => [
    'Cfdi' => Raalveco\Ciberfactura\Facades\Cfdi::class,
];

接下来,发布默认配置。

php artisan vendor:publish

此命令除了创建配置文件 config/packages/raalveco/ciberfactura/config.php,还会创建一组迁移文件,用于创建创建CFDI所需的表。

为了使配置正常工作,我们必须在.env文件中定义环境变量及其相应的值。

<?php

return array(
    'production' => env('CFDI_PRODUCTION', false),
    'certificate' => array(
        'cer' => env('CFDI_CERTIFICATE_CER', 'config/packages/raalveco/ciberfactura/certificate/aad990814bp7_1210261233s.cer'),
        'key' => env('CFDI_CERTIFICATE_KEY', 'config/packages/raalveco/ciberfactura/certificate/aad990814bp7_1210261233s.key'),
        'password' => env('CFDI_CERTIFICATE_PRIVATE_KEY', '12345678a')
    ),
    'wsdl' => array(
        'sandbox' => array(
            'autentificacion' => 'http://pruebascfdi.smartweb.com.mx/Autenticacion/wsAutenticacion.asmx?wsdl',
            'timbrado' => 'http://pruebascfdi.smartweb.com.mx/Timbrado/wsTimbrado.asmx?wsdl',
            'cancelacion' => 'http://pruebascfdi.smartweb.com.mx/Cancelacion/wsCancelacion.asmx?wsdl',
            'usuario' => 'demo',
            'password' => '123456789',
        ),
        'production' => array(
            'autentificacion' => 'https://cfdi.smartweb.com.mx/Autenticacion/wsAutenticacion.asmx?wsdl',
            'timbrado' => 'https://cfdi.smartweb.com.mx/Timbrado/wsTimbrado.asmx?wsdl',
            'cancelacion' => 'https://cfdi.smartweb.com.mx/Cancelacion/wsCancelacion.asmx?wsdl',
            'usuario' => env('SMART_WEB_USER', ''),
            'password' => env('SMART_WEB_PASSWORD', ''),
        )
    ),
    'path_xmls' => public_path().'/cfdis'
);

此库可用于通过Smartweb(SAT认证的授权证书提供商)发行发票。

###迁移

在测试库的功能之前,需要执行创建存储CFDI的表的迁移。

php artisan migrate

###示例代码

    $factura = CfdiFactura::create(
        array(
            "serie" => "A",
            "folio" => 234,
            "fecha" => date("Y-m-d H:i:s"),
            "subTotal" => 200,
            "total" => 232.0
        )
    );

    $factura->addEmisor(
        "AAD990814BP7",
        "EMPRESA PRUEBAS SA DE CV",
        "Independencia",
        "54",
        "",
        "Centro",
        "Ameca",
        "Ameca",
        "Jalisco",
        "Mexico",
        "46600"
    );

    $factura->addReceptor(
        "PEGJ801021H4K",
        "Juan Pérez González",
        "Juarez",
        "56",
        "3A",
        "Centro",
        "Guadalajara",
        "Guadalajara",
        "Jalisco",
        "Mexico",
        "44460"
    );

    $factura->addConcepto(
        1,
        "Año",
        "Servicio de Facturación Electrónica",
        100.00,
        100.00
    );

    $factura->addConcepto(
        1,
        "Año",
        "Servicio de Timbrado de Facturas Electrónicas",
        100.00,
        100.00
    );

    $factura->addImpuesto(
        "Traslado",
        "IVA",
        16.00,
        32.00
    );

    $factura->addSucursal(
        "Av. Revolución",
        "212",
        "",
        "Centro",
        "Ameca",
        "Ameca",
        "Jalisco",
        "Mexico",
        "46600"
    );

    $factura->addRegimen("Regimen General para Personas Morales");

    Cfdi::loadCfdi($factura);
    $sello = Cfdi::sellar();
    $uuid = Cfdi::timbrar();

    Cfdi::guardar();

    $xml = Cfdi::xml();