2014-12-21 150 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進行嘗試。