dazza-dev/dgt-cr-sender 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

dazza-dev/dgt-cr-sender

最新稳定版本:v1.0.0

Composer 安装命令:

composer require dazza-dev/dgt-cr-sender

包简介

Paquete para enviar documentos electrónicos (Factura, Nota crédito, Nota débito y Tiquete Electrónico) al Ministerio de Hacienda (Costa Rica).

README 文档

README

Paquete para enviar documentos electrónicos (Factura, Nota crédito, Nota débito y Tiquete Electrónico) al Ministerio de Hacienda (Costa Rica).

Instalación

composer require dazza-dev/dgt-cr-sender

Uso

use DazzaDev\DgtCrSender\Sender;

// Instanciar el sender
$sender = new Sender();

// Entorno de pruebas (true para pruebas, false para producción)
$sender->setTestMode(true);

Token de acceso

$token = $sender->auth('usuario_api', 'clave_api');

El método auth retorna un arreglo con access_token y refresh_token. El access_token tiene una duración de 5 minutos y el refresh_token de 10 horas. Si el access_token vence, puedes generar uno nuevo usando el refresh_token asi:

$newToken = $sender->renewToken($token['refresh_token']);

Si vas a reutilizar los tokens en solicitudes futuras, almacénalos y configúralos en el sender:

$sender->setBearerToken($token['access_token']);
$sender->setRefreshToken($token['refresh_token']);

Para cerrar la sesión al finalizar el proceso:

$sender->logout($token['refresh_token']);

Emisor y Receptor

Para realizar operaciones con los documentos electrónicos, debes configurar el emisor y receptor:

// Setear Emisor
$sender->setIssuer([
    'identification_type' => '02',
    'identification_number' => 'identification_del_emisor',
]);

// Setear Receptor
$sender->setReceiver([
    'identification_type' => '02',
    'identification_number' => 'identification_del_receptor',
]);

Callback URL

Para recibir notificaciones sobre el estado de los documentos enviados, debes configurar una URL de callback:

$sender->setCallbackUrl('https://tu-dominio.com/callback');

Recepción de Documentos

$sender->send(
    documentType: 'invoice',
    documentKey: $clave,
    date: '2025-11-18T00:00:00-06:00',
    signedXml: base64_encode($xml)
);

Consultar estado del documento enviado

Después de enviar un documento, puedes consultar su estado usando el método checkStatus:

$documentStatus = $sender->checkStatus(
    documentKey: $clave
);

Obtener listado de documentos enviados

Puedes obtener un listado de documentos enviados usando el método getDocuments:

$documents = $sender->getDocuments(
    offset: 0,
    limit: 50
);

Consulta un documento enviado

$document = $sender->getDocument(
    documentKey: $clave
);

Firmar Documentos

Para firmar documentos electrónicos, puedes utilizar el paquete:

Contribuciones

Contribuciones son bienvenidas. Si encuentras algún error o tienes ideas para mejoras, por favor abre un issue o envía un pull request. Asegúrate de seguir las guías de contribución.

Autor

DGT Sender fue creado por DAZZA.

Licencia

Este proyecto está licenciado bajo la Licencia MIT.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-25