{"id":12481,"date":"2019-09-19T21:19:59","date_gmt":"2019-09-19T19:19:59","guid":{"rendered":"https:\/\/www.viafirma.com\/blog-xnoccio\/?p=12481"},"modified":"2025-11-17T09:02:43","modified_gmt":"2025-11-17T08:02:43","slug":"incorporar-consentimiento-informado-rgpd-en-php","status":"publish","type":"post","link":"https:\/\/www.viafirma.com\/es\/incorporar-consentimiento-informado-rgpd-en-php\/","title":{"rendered":"C\u00f3mo incorporar un consentimiento informado adecuado al RGPD en un portal PHP"},"content":{"rendered":"<!-- Formatear c\u00f3digo -->\r\n\r\n\r\n<p class=\"has-text-align-center\"><em>Son muchos los clientes que nos llaman para incorporar en sus soluciones o webs tecnolog\u00eda de firma electr\u00f3nica adecuado al RGPD. Aunque contamos con varios productos que encajan en diferentes escenarios, hoy vamos a centrarnos en uno de ellos Viafirma Documents y en un caso de uso muy espec\u00edfico: <a href=\"https:\/\/www.viafirma.com\/es\/consentimiento-informado\/\">firmar electr\u00f3nicamente un consentimiento informado<\/a>.<\/em><\/p>\r\n\r\n\r\n\r\n<p><!--more--><\/p>\r\n\r\n\r\n\r\n<p>Para ponernos un poco en contexto el consentimiento es uno de los pilares b\u00e1sicos que caracteriza toda pol\u00edtica de protecci\u00f3n de datos, en este sentido, el <strong>apartado 11 del art\u00edculo 4 del Reglamento General de Protecci\u00f3n de Datos (RGPD)<\/strong> nos dice que consentimiento del interesado es <em>\u00abToda manifestaci\u00f3n de voluntad libre, espec\u00edfica, informada e inequ\u00edvoca por la que el interesado acepta, ya sea mediante una declaraci\u00f3n o una clara acci\u00f3n afirmativa, el tratamiento de datos personales que le conciernen\u201d<\/em>.<\/p>\r\n\r\n\r\n\r\n<p>Es decir, el RGPD determina c\u00f3mo ha de prestar el consentimiento, el cual tiene 4 caracter\u00edsticas, que son:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>Consentimiento Libre<\/strong>: No puede prestarse bajo ning\u00fan tipo de coacci\u00f3n ni tampoco puede condicionarse como puede ser (por ejemplo) ante una rebaja de un servicio.<\/li>\r\n<li><strong>Consentimiento espec\u00edfico<\/strong>: No procede otorgar un consentimiento general, tal y como se ven\u00eda realizando, sino que debe especificarse la finalidad del consentimiento.<\/li>\r\n<li><a href=\"https:\/\/www.viafirma.com\/es\/consentimiento-informado\/\"><strong>Consentimiento informado<\/strong><\/a>: Se trata de informar al usuario de la finalidad del tratamiento, el nombre del responsable del tratamiento, c\u00f3mo van a ser tratados los datos y los derechos de los que es titular la persona. En caso de desconocer este documento, te invitamos a conocer los apartados que debe <strong><a href=\"https:\/\/www.viafirma.com\/es\/contener-el-consentimiento-informado\/\">contener el consentimiento informado<\/a><\/strong>.<\/li>\r\n<li><strong>Consentimiento inequ\u00edvoco<\/strong>: Es aquel que se ha prestado mediante una manifestaci\u00f3n del interesado o mediante una clara acci\u00f3n afirmativa. Se entiende que el interesado presta este consentimiento cuando sabe, sin lugar a dudas, que est\u00e1 otorgando su benepl\u00e1cito. Es por ello que no admite formas de consentimiento t\u00e1cito o por omisi\u00f3n (que se basan en la inacci\u00f3n).<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Para dar por v\u00e1lido un consentimiento <strong>el responsable deber\u00e1 ser capaz de demostrar que aquel consinti\u00f3 el tratamiento de sus datos<\/strong> y para ello en nuestro caso usaremos evidencias electr\u00f3nicas que nos ayudar\u00e1n a demostrarlo.<\/p>\r\n\r\n\r\n\r\n<p><a href=\"https:\/\/www.viafirma.com\/es\/firma-digital\/\">Existen diferentes formas de firmar un documento electr\u00f3nico<\/a>: firma con certificado electr\u00f3nico, firma biom\u00e9trica, firma mediante OTP\/SMS adem\u00e1s de otras evidencias como puede ser la situaci\u00f3n geogr\u00e1fica en el momento de la firma, fotograf\u00edas, incluir anexos, sello de tiempo\u2026<\/p>\r\n\r\n\r\n<hr class=\"wp-block-separator has-css-opacity is-style-wide\" \/>\r\n\r\n\r\n<p class=\"has-text-align-left\">Si cuentas con un <strong>portal o aplicaci\u00f3n web en PHP<\/strong> para gestionar tu cl\u00ednica\u00a0 y quieres generar el consentimiento basado en un documento\/plantilla propio donde tus clientes puedan rellenar sus datos y firmar sigue leyendo&#8230;<\/p>\r\n\r\n\r\n\r\n<p>Vamos a intentar explicarlo paso a paso.<\/p>\r\n\r\n\r\n\r\n<p>Para comenzar vamos a hacer uso de una API con PHP con soporte para cURL que permite realizar peticiones a servidores remotos. En nuestro caso, integraremos con los servicios REST expuestos para integradores por <a href=\"https:\/\/www.viafirma.com\/es\/documents\/\">Viafirma Documents<\/a> y que est\u00e1n segurizados con OAuth, para lo que usaremos la librer\u00eda que encontrar\u00e1s en <a href=\"https:\/\/github.com\/zorrodg\/mworell-oauth-php\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (abre en una nueva pesta\u00f1a)\">este enlace<\/a>. Si lo prefieres puedes descargar el <a href=\"https:\/\/www.viafirma.com\/download\/documents\/demo-consentimiento\/demo-consentimiento.zip\">ejemplo completo<\/a> junto con las librer\u00edas usadas.<\/p>\r\n\r\n\r\n\r\n<p>En nuestro ejemplo usaremos un solo fichero php que nombraremos <strong>demo-consentimiento.php<\/strong> y que describiremos brevemente a continuaci\u00f3n:<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Librer\u00eda y Definici\u00f3n de constantes:<\/h2>\r\n\r\n\r\n\r\n<pre class=\"php\"><code>\r\n\/\/Definimos la ruta a las librer\u00edas oAuth indicadas con anterioridad, en nuestro caso la hemos dejado en el ra\u00edz dentro de una carpeta que hemos nombrado library\r\n\r\nrequire_once dirname(__FILE__) . '\/library\/OAuthRequestSigner.php';\r\n\r\ndefine(DOCUMENTS_API_URL, \"https:\/\/sandbox.viafirma.com\/documents\/api\/v3\");\r\n\r\ndefine(DOCUMENTS_CONSUMER_KEY, \"xxxxx\");\r\n\r\ndefine(DOCUMENTS_CONSUMER_SECRET, \"xxxxxxxxxx\");\r\n<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Las variables <em>DOCUMENTS_CONSUMER_KEY<\/em> y <em>DOCUMENTS_CONSUMER_SECRET <\/em>nos ser\u00e1n proporcionadas por Viafirma a trav\u00e9s del formulario de contacto de su web para integradores: <br \/>https:\/\/www.viafirma.com\/es\/api-firma-electronica\/<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Funci\u00f3n send_message().<\/h2>\r\n\r\n\r\n\r\n<pre class=\"php\"><code>\r\nfunction send_message ()\r\n{\r\n    error_reporting(E_ALL);\r\n\r\n    \/\/Construcci\u00f3n de la URL del servicio a invocar\r\n    $url=DOCUMENTS_API_URL.\"\/messages\/\";\r\n\r\n    \/\/Acceso a los servicios securizados mediante oAuth\r\n    OAuthStore::instance('MySQL', array('conn'=&gt;false));\r\n\r\n    $req = new OAuthRequestSigner($url, 'POST');\r\n\r\n    $fecha = new DateTime();\r\n\r\n    $secrets = array(\r\n                'consumer_key'      =&gt;; DOCUMENTS_CONSUMER_KEY,\r\n                'consumer_secret'   =&gt;; DOCUMENTS_CONSUMER_SECRET,\r\n                'token'             =&gt;\"\",\r\n                'token_secret'      =&gt;\"\",\r\n                'signature_methods' =&gt; array(\u2018HMAC-SHA1\u2019),\r\n                'nonce'             =&gt; '',\r\n                'timestamp'         =&gt; $fecha-&gt;getTimestamp(),\r\n                );\r\n\r\n    $req-&gt;sign(0, $secrets);\r\n\r\n    \/\/JSON con datos necesarios para Viafirma Documents que describiremos m\u00e1s adelante\r\n\r\n    $string_json = file_get_contents(\".\/demo_consentimiento.json\");\r\n\r\n    \/\/Iniciamos y ejecutamos CuRL\r\n\r\n    $ch = curl_init($url);\r\n\r\n    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);\r\n    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, \"POST\");\r\n    curl_setopt($ch, CURLOPT_POSTFIELDS, $string_json);\r\n    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\r\n\r\n     \/\/ OAuth Header\r\n    $headr = array();\r\n    $headr[] = 'Content-Length: ' . strlen($string_json);\r\n    $headr[] = 'Content-type: application\/json';\r\n    $headr[] = ''.$req-&gt;getAuthorizationHeader();\r\n    curl_setopt($ch, CURLOPT_HTTPHEADER,$headr);\r\n\r\n    $result = curl_exec($ch);\r\n    $array = json_decode($result);\r\n    $link=$array-&gt;notification-&gt;sharedLink-&gt;link;\r\n\r\n    \/\/Obtenemos el link de respuesta enviado por Viafirma Documents \r\n    return $link;\r\n\r\n    echo 'NombreiFrame.location.href = \"'.$link.'\";'; \r\n    echo \"Url para redireccionar o montar iframe: \";\r\n    echo prettyPrint($result); \r\n\r\n    \/\/ Closing\r\n    curl_close($ch);\r\n\r\n}\r\n<\/code><\/pre>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">demo-consentimiento.json<\/h2>\r\n\r\n\r\n\r\n<p>Aunque podr\u00edamos definir muchas m\u00e1s variables, con este simple <em>.json<\/em> y una plantilla definida en Viafirma Documents nos valdr\u00eda para llevar a acabo el ejemplo:<\/p>\r\n\r\n\r\n\r\n<pre class=\"json\"><code>\r\n{\r\n \"groupCode\" : \"String\",\r\n \"workflow\" : {\r\n   \"type\" : \"PRESENTIAL\"\r\n },\r\n \"notification\" : {\r\n   \"text\" : \"Texto de la petici\u00f3n de firma\",\r\n   \"detail\" : \"Detalle de la petici\u00f3n de firma\"\r\n },\r\n  \"document\": {\r\n    \"templateCode\": \"nombre_plantilla\",\r\n    \"formRequired\": true\r\n  },\r\n \"callbackMails\" : \"tucorreoderespuesta@xxx.com\"\r\n}\r\n\r\n<\/code><\/pre>\r\n<p>code.hljs { background: #fafafa !important; padding: 2em 4em; border: 1px solid #eaeaea; border-radius: 4px; }<\/p>\r\n\r\n\r\n\r\n<p><strong>Importante:<\/strong><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Recuerda sustituir los valores del ejemplo por los que te proporcione Viafirma para el atributo: <em><strong>groupCode<\/strong><\/em>. El grupo determinar\u00e1 comportamiento preconfigurado relativo factores como transferencias autom\u00e1ticas, hojas de estilos, permisos, etc. Es importante que el <em>groupCode<\/em> coincida con el grupo con el que pretendes completar tu proceso de firma.<\/li>\r\n<li>Define en esta variable el c\u00f3digo de tu plantilla existente en Viafirma documents <strong>document.templateCode <\/strong><\/li>\r\n<li>En el campo <em><strong>callbackMails<\/strong><\/em> podr\u00e1s informar una cuenta de correo, o varias separadas por coma, a las que informaremos autom\u00e1ticamente cuando tu proceso haya finalizado, pudiendo incluir como anexo el documento firmado y con un mensaje y estilo personalizado.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Una vez tengas implementados ambos ficheros solo nos queda llamarlos desde el bot\u00f3n de tu p\u00e1gina o dentro de tu aplicaci\u00f3n y generar\u00e1 una petici\u00f3n autom\u00e1tica de firma bas\u00e1ndose en la plantilla definida en Viafirma Documents como pod\u00e9is ver en el ejemplo que os incluimos al principio de este art\u00edculo.<\/p>\r\n\r\n\r\n\r\n<p><strong>El resultado es que desde una p\u00e1gina web en PHP puedo conseguir que mis pacientes rellenen y firmen el consentimiento de una manera \u00e1gil y segura.<\/strong><\/p>\r\n\r\n\r\n\r\n<p>Esperamos os haya sido \u00fatil.<\/p>\r\n\r\n\r\n\r\n<p>A seguir firmando con Viafirma!!!<\/p>\r\n<p><span style=\"font-weight: 400;\"><div class=\"vf_related_posts_wrapper\"><h2 class=\"vf_related_posts_title\">Informaci\u00f3n relacionada<\/h2><div class=\"vf_related_posts\"><article class=\"vc_gitem-post-data-source-post\"><a href=\"https:\/\/www.viafirma.com\/es\/proteccion-de-datos\/\" class=\"vc_gitem-post-link\"><div class=\"vc_gitem-post-image\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"512\" src=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2018\/03\/La-nueva-normativa-RGPD-1-768x512.webp\" class=\" wp-post-image\" alt=\"La nueva normativa RGPD: C\u00f3mo afecta al consentimiento informado\" srcset=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2018\/03\/La-nueva-normativa-RGPD-1-768x512.webp 768w, https:\/\/www.viafirma.com\/wp-content\/uploads\/2018\/03\/La-nueva-normativa-RGPD-1-300x200.webp 300w, https:\/\/www.viafirma.com\/wp-content\/uploads\/2018\/03\/La-nueva-normativa-RGPD-1-1024x683.webp 1024w, https:\/\/www.viafirma.com\/wp-content\/uploads\/2018\/03\/La-nueva-normativa-RGPD-1-1536x1024.webp 1536w, https:\/\/www.viafirma.com\/wp-content\/uploads\/2018\/03\/La-nueva-normativa-RGPD-1-2048x1365.webp 2048w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/div><\/a><div class=\"vc_gitem-post-data\"><h3 class=\"vc_gitem-post-data-source-post_title\"><a href=\"https:\/\/www.viafirma.com\/es\/proteccion-de-datos\/\">La nueva normativa RGPD: C\u00f3mo afecta al consentimiento informado<\/a><\/h3><p class=\"vc_gitem-post-data-source-post_excerpt\">Explicamos c\u00f3mo la nueva normativa RGPD afecta al consentimiento informado y qu\u00e9 cambios introduce el RGPD<\/p><\/div><\/article><article class=\"vc_gitem-post-data-source-post\"><a href=\"https:\/\/www.viafirma.com\/es\/datos-personales-derechos-obligaciones\/\" class=\"vc_gitem-post-link\"><div class=\"vc_gitem-post-image\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"489\" src=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2019\/11\/Datos-personales-cuales-son-tus-derechos-y-obligaciones-1024x652-1-768x489.webp\" class=\" wp-post-image\" alt=\"Datos personales: cu\u00e1les son tus derechos y obligaciones\" srcset=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2019\/11\/Datos-personales-cuales-son-tus-derechos-y-obligaciones-1024x652-1-768x489.webp 768w, https:\/\/www.viafirma.com\/wp-content\/uploads\/2019\/11\/Datos-personales-cuales-son-tus-derechos-y-obligaciones-1024x652-1-300x191.webp 300w, https:\/\/www.viafirma.com\/wp-content\/uploads\/2019\/11\/Datos-personales-cuales-son-tus-derechos-y-obligaciones-1024x652-1-jpg.webp 1024w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/div><\/a><div class=\"vc_gitem-post-data\"><h3 class=\"vc_gitem-post-data-source-post_title\"><a href=\"https:\/\/www.viafirma.com\/es\/datos-personales-derechos-obligaciones\/\">Datos personales: cu\u00e1les son tus derechos y obligaciones<\/a><\/h3><p class=\"vc_gitem-post-data-source-post_excerpt\">\u00bfSabemos qu\u00e9 obligaciones y derechos nos amparan sobre nuestros datos personales? Analizamos en este art\u00edculo sus principales aspectos<\/p><\/div><\/article><\/div><\/div><\/span><\/p>\r\n","protected":false},"excerpt":{"rendered":"Te explicamos c\u00f3mo incorporar un consentimiento informado adecuado al RGPD en un portal PHP...","protected":false},"author":3,"featured_media":34702,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"default","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[125],"class_list":["post-12481","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sector-salud"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/posts\/12481","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/comments?post=12481"}],"version-history":[{"count":1,"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/posts\/12481\/revisions"}],"predecessor-version":[{"id":95560,"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/posts\/12481\/revisions\/95560"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/media\/34702"}],"wp:attachment":[{"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/media?parent=12481"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/categories?post=12481"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}