PHP: Consulta de Documentos Dinámicos en Dinaup
Antes de empezar, asegúrate de tener a mano tu clave API de Dinaup y la clave secreta utilizada para firmar las solicitudes. Es importante no hardcodear estas claves en tu código, especialmente en ambientes de producción o en código que será compartido o público. Considera utilizar variables de entorno o archivos de configuración seguros.
Envío de peticiones firmadas
<?php
function calculateHmac($secretKey, $params) {
if (!$params || count($params) === 0) {
return "";
}
ksort($params);
$dataString = "";
foreach ($params as $key => $value) {
$dataString .= "{$key}={$value}";
}
$hmacHash = hash_hmac('sha256', $dataString, $secretKey);
return $hmacHash;
}
function sendSignedRequest($endpoint, $path, $postParams, $apiKey, $secretKey) {
$postParams['dinaup_apikey'] = $apiKey;
$postParams['dinaup_usuarioip'] = "local";
$postParams['dinaup_usuarionavegador'] = "php";
$postParams['signature'] = calculateHmac($secretKey, $postParams);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "{$endpoint}/{$path}");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postParams));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
function processResponse($responseJson) {
$responseData = json_decode($responseJson, true);
$documentHtmlEncoded = $responseData['respuesta']['documento'];
return html_entity_decode($documentHtmlEncoded);
}
?>
Envío de la solicitud Para el envío de la solicitud y procesamiento de la respuesta, el código en PHP sería algo así:
<?php
// Configuración de ejemplo (Reemplaza con tus valores reales)
$endpoint = "https://..."; // Endpoint de la API
$apiKey = ""; // Clave API
$secretKey = ""; // Clave secreta
$docDinamicoId = ""; // ID del documento dinámico
// Envío de la solicitud
$responseJson = sendSignedRequest($endpoint, "docdinamico", ['dinaup_dd_id' => $docDinamicoId], $apiKey, $secretKey);
// Procesamiento de la respuesta
$documentContent = processResponse($responseJson);
// Visualización del documento
echo $documentContent;
?>
Last modified: 28 November 2024