XamiLib PHP — Referencia de clases
Namespace: Xami\SDK. El punto de entrada es la clase XamiSDK, que da acceso a los
distintos servicios.
XamiSDK
Punto de entrada de la librería.
Constructor
new XamiSDK(array $config)
$config acepta:
| Clave | Descripción |
|---|---|
endpoint |
URL del servicio local (por defecto http://127.0.0.1:8300). |
wrapper_key |
Credencial de aplicación (wrp_...). |
wrapper_secret |
Secret de la credencial (wsec_...). |
timeout |
Timeout HTTP en segundos (opcional). |
Métodos
| Método | Devuelve | Descripción |
|---|---|---|
pades() |
Pades |
Servicio de firma de documentos PDF. |
blockchain() |
Blockchain |
Servicio de firma de transacciones EVM. |
credentials() |
Credentials |
Consulta de credenciales. |
designs() |
Designs |
Consulta de diseños de sello. |
health() |
Health |
Estado del servicio local. |
Pades
Firma de documentos PDF (PAdES).
Métodos
sign(string $pdfBytes, array $opts): string
Envía un PDF a firmar. Devuelve el request_id. $opts: credential_key (requerido),
design_key, variables, reason, location, signer_name.
result(string $requestId): array
Consulta el estado. Cuando está DONE, incluye el PDF firmado.
wait(string $requestId, int $timeoutSeconds = 60, float $pollSeconds = 1.0): string
Bloquea hasta que la firma esté lista y devuelve el PDF firmado (binario).
signAndWait(string $pdfBytes, array $opts, int $timeoutSeconds = 60): string
Atajo: sign() + wait(). Devuelve el PDF firmado.
Ejemplo
$pdfFirmado = $xami->pades()->signAndWait(
file_get_contents('documento.pdf'),
[
'credential_key' => 'TU_CREDENCIAL',
'signer_name' => 'Tu Nombre',
'reason' => 'Aprobación',
'variables' => ['name' => 'Tu Nombre'],
]
);
file_put_contents('documento_firmado.pdf', $pdfFirmado);
Blockchain
Firma de transacciones / mensajes EVM. El chip actúa como wallet y devuelve r/s/v;
tú ensamblas la transacción con tu web3.
Métodos
sign(string $txHash, array $opts): string
Envía el hash a firmar. Devuelve el request_id. $opts: credential_key (requerido,
credencial EVM), chain_id.
result(string $requestId): array
Consulta el estado.
wait(string $requestId, int $timeoutSeconds = 60, float $pollSeconds = 1.0): array
Bloquea hasta tener la firma. Devuelve ['r' => ..., 's' => ..., 'v' => ...].
signAndWait(string $txHash, array $opts, int $timeoutSeconds = 60): array
Atajo: sign() + wait().
Ejemplo
$firma = $xami->blockchain()->signAndWait('0xHASH_DE_LA_TX', [
'credential_key' => 'TU_CREDENCIAL_EVM',
'chain_id' => 648541,
]);
// $firma['r'], $firma['s'], $firma['v']
Credentials
Consulta de credenciales en la caché local.
| Método | Devuelve | Descripción |
|---|---|---|
all(): array |
lista | Todas las credenciales disponibles. |
get(string $key): ?array |
credencial o null |
Una credencial por su credential_key. |
Designs
Consulta de diseños de sello en la caché local.
| Método | Devuelve | Descripción |
|---|---|---|
all(): array |
lista | Todos los diseños disponibles. |
get(string $key): ?array |
diseño o null |
Un diseño por su design_key. |
Health
| Método | Devuelve | Descripción |
|---|---|---|
self(): array |
estado | Estado del servicio local (pareado, tenant, etc.). |
Manejo de errores
Todos los métodos lanzan Xami\SDK\XamiException ante un fallo (credencial inválida,
servicio caído, timeout). Envuélvelos en try/catch.
use Xami\SDK\XamiException;
try {
$pdf = $xami->pades()->signAndWait($bytes, ['credential_key' => '...']);
} catch (XamiException $e) {
error_log('Error al firmar: ' . $e->getMessage());
} Descargar este manual (.md)
