Python与curl问题
我将通过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`
然后利用$data,他们处理支付是否被接受、拒绝等情况。
我想用Python来实现这个功能,为此我查了一下,发现有一个叫做pycurl的Python库,但我对curl没有经验,不知道这个库是否适合这个任务。请注意,由于这个传输需要安全性,我会使用SSL。
任何建议都很受欢迎。
2 个回答
3
引用自 pycurl.sourceforge.net:
总的来说,PycURL 非常快(特别是在处理多个同时进行的操作时),而且功能非常齐全,但它的使用界面有点复杂。如果你需要更简单的东西,或者更喜欢纯 Python 的模块,可以看看 urllib2 和 urlgrabber。还有一个关于各种库的不错比较。
curl 和 urllib2 都可以处理 https,所以选择哪个就看你自己了。
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
变量里面存放的是要发送的数据。