2010-02-23 80 views
4

我會將購買信息(如CC)傳輸到銀行網關,並通過Python使用Django來檢索結果。Python和捲曲問題

這樣做的有效和安全的方法是什麼?

我已閱讀本網關PHP的文件,他們似乎用這個方法:

$xml= Some xml holding data of a purchase. 
$curl = `/usr/bin/curl -s -d 'DATA=$xml' "https://url of the virtual bank POS"`; 
$data=explode("\n",$curl); //return value is also an xml, seems like they are splitting by each `\n` 

,並使用$數據,他們處理,如果付款接受,拒絕等。

我想在Python語言下實現這一點,爲此我已經做了一些搜索,似乎有一個名爲pycurl的Python捲曲應用程序,但我沒有使用捲曲的經驗,不知道這是否適合執行此任務。請記住,由於此傳輸需要安全性,因此我將使用SSL。

任何建議將不勝感激。

回答

10

使用標準庫urllib2模塊應該足夠:

import urllib 
import urllib2 

request_data = urllib.urlencode({"DATA": xml}) 
response = urllib2.urlopen("https://url of the virtual bank POS", request_data) 

response_data = response.read() 
data = response_data.split('\n') 

我認爲xml變量保存的數據將被髮送。

+0

非常感謝lukasz!我很好奇,如果有任何額外的參數/方法受益/強制HTTPS連接? – Hellnar 2010-02-23 20:40:56

+1

如果你安裝了socket.ssl,python的stdlib會很好地處理https連接(而不是Python的某些發行版)。除此之外,只有其他問題是檢查證書有效性,如果您需要,那麼httplib.HTTPSConnection將有所幫助。 – 2010-02-24 07:39:22

3

援引pycurl.sourceforge.net:

綜上所述,PycURL是非常快的(尤指多個併發操作),而且非常完整的功能,但有一個比較複雜的接口。如果你需要更簡單或者更喜歡純Python模塊,你可能想查看urllib2和urlgrabber。各種圖書館也有很好的比較。

curl和urllib2都可以使用https,因此取決於您。