Python与curl问题

4 投票
2 回答
3649 浏览
提问于 2025-04-15 19:38

我将通过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 变量里面存放的是要发送的数据。

撰写回答