+ t = Transaction(provider)
+ # Try with kwargs first
+ tid = t.find_tid(kwargs)
+ if not tid:
+ # If no TID yet See if we have it in a referer
+ if 'referer' in cherrypy.request.headers:
+ r = urlparse(unquote(cherrypy.request.headers['referer']))
+ if r.query:
+ tid = t.find_tid(parse_qs(r.query))
+ if not tid:
+ t.create_tid()
+ return t