Dinaup - Base de Conocimientos Help

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.

  1. 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); } ?>
  1. 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