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
/* 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.