osumionline / plugin-ticketbai
OTicketBai 插件用于 Osumi 框架
2.0.0
2024-09-03 17:06 UTC
Requires
- php: >=8.2
README
Osumi 框架插件: OTicketBai
此插件将 OTicketBai
类添加到框架中,通过它可以调用 TicketBaiWS 服务,该服务由 Berein 提供。配置在应用程序的通用 Config.json
文件中完成。需要在 TicketBaiWS 上注册并从配置面板获取 token
和 nif
。
配置
{ ..., "plugins": { "ticketbai": { "token": "asdf123...", "nif": "12345678Z" } }, }
插件使用方法
$tbai = new OTicketBai(true); // true sirve para indicar producción y false para indicar el entorno test // Primero se comprueba el estado del servicio y si está activo se pueden realizar las peticiones if ($tbai->checkStatus()) { /** * Este método permite enviar una factura a la hacienda foral correspondiente y devolverá la huella TBAI, la imagen código QR en base64 * y la URL de validación de la factura de la hacienda foral que contiene el QR. El entorno de test permite generar TBAIs en el entorno * de pruebas de la hacienda correspondiente. */ $datosTBai = [ 'fecha' => date('d/m/Y', time()), 'hora' => date('H:i:s', time()), 'nif' => '', 'nombre' => '', 'direccion' => '', 'cp' => '', 'serie' => 'TPV01', 'numero' => sprintf('%06d', $num_venta), 'simplificada' => true, 'modo_recargo_equivalencia' => true, 'rectificativa' => false, 'importacion' => false, 'intracomunitaria' => false, 'retencion' => 0, 'lineas' => [], 'total_factura' => $total_factura ]; // Por cada línea de la venta se crea un objeto datos_linea foreach ($lineas as $linea) { $importe_siva = $linea->get('pvp') / (1 + ($linea->get('iva') / 100)); $datos_linea = [ 'iva' => ($linea->get('iva') == 0) ? 21 : $linea->get('iva'), 'descripcion' => html_entity_decode($linea->get('nombre_articulo')), 'cantidad' => $linea->get('unidades'), 'importe_unitario' => round($importe_siva, 4), 'tipo_iva' => $linea->get('iva'), 'tipo_req' => 0 ]; array_push($datosTBai['lineas'], $datos_linea); } // Se envía el objeto con todos los datos de la factura y las líneas de ventas $response = $tbai->nuevoTbai($datosTBai); if (is_array($response)) { echo "TicketBai response OK"; // $response['huella_tbai'] Datos de la huella TicketBai // $response['qr'] Imagen del código QR en formato Base64 // $response['url'] URL de validación de la factura de la hacienda foral } else { echo "TicketBai response ERROR"; } }