【发布时间】:2013-03-28 09:54:43
【问题描述】:
是否可以在重定向到外部 url 期间保持对话? 我开始使用 CDI 对话 bean 进行贝宝交易,接下来当我登录并进行支付时,面孔重定向到贝宝页面,下一个贝宝返回我的页面,我希望拥有我的支持 bean 的相同实例来记住我发送到的详细信息贝宝。
当 paypal 重定向回我的页面时,他会附加到 url 交易令牌和付款人 ID,但我没有关于用户购买的产品数量的任何信息。所以我想记住重定向之前的数量。现在,在贝宝返回我的网站后,我调用方法 doExpressCheckout 并且我想传递数量和其他交易详细信息,因为我可以设置与交易前完全不同的详细信息,并且当客户在贝宝页面上接受购买某些产品时可能会出现奇怪的情况10 美元,但我在贝宝再次重定向到我的页面后设置了 100 美元,客户将不知道他支付了多少。 我不知道为什么会这样。
我使用 SOAP api。
【问题讨论】:
-
看起来您应该从会话范围更改为会话范围。
-
@LuiggiMendoza,我不确定它是如何工作的,但感觉贝宝可能没有义务返回带有 JSESSION_ID 的进程。浏览器会在来自外部站点的重定向中自动重新添加它吗?
-
@kolossus 如果将会话保存在服务器中,为什么需要将 JSESSION_ID 作为请求查询字符串的一部分?
-
@LuiggiMendoza 如果 JSESSION_ID 不存在于 paypal 的返回请求中,服务器将如何识别来自 paypal 的返回请求并将其与保存的会话匹配?
-
@kolossus 如果客户端浏览器仍然打开,即使您离开站点并稍后返回,会话也不会终止(当然,假设用户仍在会话超时内)。顺便说一句,JSESSION_ID 可以存储在 cookie 中(或使用其他机制)。