2014-12-21 104 views
0

我正在尝试向我的网站添加付款网关。我有一个'现在付款'按钮有'href'属性处理付款的视图。该视图提供了网关处理请求所需的所有变量。在视图的最后,我将用户重定向到支付网关页面,其变量在RequestContext中传递。如何将它们作为表单发送到付款网关站点?通过POST请求发送上下文数据

这是我的观点来处理结账:

import hashlib 

def redirect(request): 
    basket = request.basket 
    key = 'to be provided by payu' 
    txnid = basket.id, 
    amount = basket.total_incl_tax 
    phash = hashlib.sha(str(key)+'|'+str(txnid)) 
    variables = RequestContext(request, { 
     'hash' : phash.hexdigest(), 
     'key' : key, 
     'txnid': txnid, 
     'amount' : amount, 
    }) 
    return HttpResponseRedirect('https://test.payu.in/_payment', variables) 

所以,基本上我的问题是,是否有可能发送上述variables在POST请求的URL https://test.payu.in/_payment?如果不是,那么有什么选择?

+0

我想你想提出一个请求?如果您重定向,则会失去所有上下文。 –

+0

这可以从视图完成吗? – toothie

回答

1

首先,不要命名你的功能重定向它已经被采用。所以我在这里使用Django的重定向:

一种方法是在url中传递变量。这里只是一个假的例子...

return redirect('https://test.payu.in/_payment?k=%s&h=%s', % (key, hash)) 
0

如果你遇到这样的问题,那么你的设计过于复杂的可能性很小。

这是对HTTP数据的限制,POST数据不能与重定向一起使用。

如果您确实需要在POST请求中重定向,请在客户端使用JavaScript进行尝试。