cherrypy会话在透明重定向上消失

时间:2010-10-05 16:48:12

标签: session cherrypy

我有一个使用braintree付款API的结帐页面。它的工作原理是直接将信用卡表格提交给braintree的服务器,然后将它们重定向到我的“确认”页面。如果你很好奇,这是详细here

购物车存储在会话中。如果我在提供结账表单之前跟踪会话数据......

@cherrypy.expose
def placeorder(self, ...):

    ...

    cherrypy.log.error(str(cherrypy.session[CART_SESSION_KEY])) #'_ORDERS'
    return str(template)

......它有效。但是,如果我尝试在确认页面的处理函数期间跟踪它...

@cherrypy.expose
def confirm(self, **kwargs):
    cherrypy.log.error(str(cherrypy.session[CART_SESSION_KEY])) #'_ORDERS'
    querystring = cherrypy.request.query_string
    result = braintree.TransparentRedirect.confirm(querystring)
    if not result.is_success:
        ...

我收到KeyError异常:

File "valleypd.py", line 551, in confirm
    cherrypy.log.error(str(cherrypy.session[CART_SESSION_KEY]))
File "/usr/local/lib/python2.6/dist-packages/CherryPy-3.1.2py2.6.egg/cherrypy/__init__.py", line 323, in __getitem__
    return child[key]
File "/usr/local/lib/python2.6/dist-packages/CherryPy-3.1.2-py2.6.egg/cherrypy/lib/sessions.py", line 167, in __getitem__
    return self._data[key]
KeyError: '_ORDERS'

即使它是重定向,也不会认识到浏览器?在这里,我承认我对会话工作方式的了解非常有限。

0 个答案:

没有答案