JSP 使用java从Payment GateWay重定向时,我丢失了会话数据

shyt4zoc  于 2022-12-07  发布在  Java
关注(0)|答案(2)|浏览(110)

我正在使用java会话设置一些值。在调用支付网关后,我存储的所有会话值都丢失了。请帮助我如何获得这些会话值。
我设置了一些值给session,比如session.setAttribute(“id”,120)。在重定向支付网关之后。我尝试使用session.getAttribute(“id”)获取id。这里它返回空值。

9gm1akwq

9gm1akwq1#

在聊天中,您已声明将JSP会话标识保留在URL参数中,而不是cookie中。如果回调URL未指定相同的会话标识,则这将导致付款网关的回调出现问题。
这意味着你需要把会话ID放在回调URL中。我对CCAvenue作为支付网关并不熟悉,但我可以告诉你这么多:
设置回调URL时,需要使用HttpServletResponse#encodeURL将会话ID编码到回调URL上
您可以将回调的URL(即您的主页)传递给此方法,它将返回回调URL,并在其中编码会话ID,* 如果需要 *。然后您可以使用此URL作为网关上的用户重定向(回调),当重定向完成时,页面将加载有效的会话。

wooyq4lh

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);

相关问题