ralego / laravel-timbox
使用 timbox 对 xml 进行盖章,适用于 Laravel
v1.0.0
2019-05-15 23:58 UTC
Requires
- php: >=7.1
Requires (Dev)
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2024-09-25 09:06:27 UTC
README
此包可以帮助您以简单的方式使用Timbox的所有服务。
安装
此包可用于 Laravel 5.5 或更高版本。
通过 composer 安装此包
composer require ralego/laravel-timbox
使用
盖章
在您需要盖章的类中添加 Ralego\Timbox\Traits\Timbrado
trait
use Ralego\Timbox\Traits\Timbrado; class HomeController extends Controller { use Timbrado, // ... }
示例
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; } }
取消
在您需要取消的类中添加 Ralego\Timbox\Traits\Cancelacion
trait
use Ralego\Timbox\Traits\Cancelacion; class HomeController extends Controller { use Cancelacion, // ... }
示例
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; } }
查询
use Ralego\Timbox\Traits\Status; class HomeController extends Controller { use Status, // ... }
获取 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; } }
查询待处理请求的示例
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; } }
查询与 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; } }
执行取消请求的接受/拒绝请求的示例
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; } }
支持
有关 timbox Web 服务返回的信息的任何疑问,您可以在其文档中进行咨询。