Manter uma mesma sessão HTTP para um pagamento com autenticação 3D Secure

Manter uma mesma sessão HTTP para um pagamento com autenticação 3D Secure

A arquitetura da plataforma de pagamento baseia-se em um conjunto de servidores com repartição de carga.

Para garantir a continuidade do processo, cada solicitação vinculada a um mesmo pagamento deve ser realizada com a mesma sessão HTTP.

Desta forma, para toda solicitação createPayment com autenticação 3D Secure (threeDSRequest), uma sessão é criada no servidor.

A ID desta sessão deve ser retornada no cabeçalho HTTP da resposta e deverá ser retornada na solicitação createPayment em modo ENABLED_FINALIZE.

Em função da linguagem utilizada, seguem dois exemplos para efetuar esta operação.

  • Em JAVA

    Utilize a propriedade SESSION_MAINTAIN_PROPERTY garantido que ela seja valorizada como True para recuperar automaticamente as informações de sessão associadas à solicitação HTTP e manter um cookie com o ID da sessão (Standard Java , JAX-WS).

    ((BindingProvider)port).getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY,true);

  • Em PHP
Segue um exemplo de código para resgatar a id de sessão e transmiti-la:
/* O método abaixo permite resgatar o cabeçalho HTTP da resposta 
$/$header= $client -> __getLastResponseHeaders ();
/* No string de símbolos obtido, procuramos a presença do ID da sessão HTTP, armazenada no elemento
"JSESSIONID" : */
if(!preg_match("#JSESSIONID=([A-Za-z0-9\.]+)#",$header, $matches)){
return " Nenhum ID de Sessão retornado. " ; //Case de erro técnico
} 
$cookie= $matches[1] ) ; 
/*O método abaixo permite especificar um cookie que será enviado em todo cabeçalho http
*/
$client ->__setCookie ("JSESSIONID",$cookie );

Este método permite ao servidor resgatar o conteudo do header e transmiti-lo na forma de cookie na solicitação HTTP.