2011-04-26 60 views
2

你好朋友,我正在开发一个电子商务应用程序,我在其中集成了贝宝沙箱。两个不同服务器之间的会话。

在Paypal交易后,我的会话在返回到我自己的网站时被破坏。我如何在JSP servlet中维护该会话?

+0

你有两台服务器,或者两台服务器都是你的和PayPal? – Bozho 2011-04-26 07:07:08

回答

2
  • 检查,如果你的会话超时未配置太低(在web.xml)
  • 确保客户端使用cookie和服务器未配置为不使用cookies。
  • 验证协议。如果您在http中创建用户会话,但PayPal返回到https,则可能会出现问题。

如果超时,Cookie和协议均正常,则访问者在返回到您的网站时应该获得相同的会话。

0

它已经很长一段时间我用贝宝在过去,它是用PHP只,但据我记得你必须提供Paypal进行“返回URL”作为贝宝应该使用请求重定向回参数处理付款后到您的网站。为了使会话保持活动状态,您需要将jsessionid属性附加到以当前会话ID为值的URL。

String returnURL = "http://example.com/completed.jsp;jsessionid=" + session.getId(); 
String paypalURL = "http://paypal.com/process?returnURL=" + URLEncoder.encode(returnURL, "UTF-8")); 

另一种方法是在弹出式窗口中处理此问题,并在贝宝返回时让窗口关闭。父窗口中的会话将被保留。