我正在使用java会话设置一些值。在调用支付网关后,我存储的所有会话值都丢失了。请帮助我如何获得这些会话值。我设置了一些值给session,比如session.setAttribute(“id”,120)。在重定向支付网关之后。我尝试使用session.getAttribute(“id”)获取id。这里它返回空值。
9gm1akwq1#
在聊天中,您已声明将JSP会话标识保留在URL参数中,而不是cookie中。如果回调URL未指定相同的会话标识,则这将导致付款网关的回调出现问题。这意味着你需要把会话ID放在回调URL中。我对CCAvenue作为支付网关并不熟悉,但我可以告诉你这么多:设置回调URL时,需要使用HttpServletResponse#encodeURL将会话ID编码到回调URL上您可以将回调的URL(即您的主页)传递给此方法,它将返回回调URL,并在其中编码会话ID,* 如果需要 *。然后您可以使用此URL作为网关上的用户重定向(回调),当重定向完成时,页面将加载有效的会话。
HttpServletResponse#encodeURL
wooyq4lh2#
您需要在回调url中添加JSESSIONID,如下所示:
HttpSession session = request.getSession(); session.setAttribute("someName", someObject); String callbackURL = "http://yourapplicationserver.com/callback.jsp;JSESSIONID=" + session.getId(); String redirectURL = "http://paymentgateway.com/process?callbackURL=" + URLEncoder.encode(callbackURL, "UTF-8"); response.sendRedirect(redirectURL);
2条答案
按热度按时间9gm1akwq1#
在聊天中,您已声明将JSP会话标识保留在URL参数中,而不是cookie中。如果回调URL未指定相同的会话标识,则这将导致付款网关的回调出现问题。
这意味着你需要把会话ID放在回调URL中。我对CCAvenue作为支付网关并不熟悉,但我可以告诉你这么多:
设置回调URL时,需要使用
HttpServletResponse#encodeURL
将会话ID编码到回调URL上您可以将回调的URL(即您的主页)传递给此方法,它将返回回调URL,并在其中编码会话ID,* 如果需要 *。然后您可以使用此URL作为网关上的用户重定向(回调),当重定向完成时,页面将加载有效的会话。
wooyq4lh2#
您需要在回调url中添加JSESSIONID,如下所示: