奇怪的是,不能将简单的php soap调用转换为python

2024-04-25 23:07:36 发布

您现在位置:Python中文网/ 问答频道 /正文

乍一看这似乎很容易,但我一点也做不到

我们正在把一个网站从wordpress移到django。我必须使用paylineapi使网站接受在线支付。我知道还有其他解决方案,但这是客户的要求。你知道吗

在他们的php library(工作良好):

$client = new SoapClient('/.../spec.wsdl', ['login' => 'xxx', 'password' => 'yyy']);
$client->__setLocation("https://homologation.payline.com/V4/services/WebPaymentAPI");
$response = $client->doWebPayment($WSRequest);

在Python中,我尝试了以下方法:

from suds.client import Client
client = Client(url='https://homologation.payline.com/V4/services/WebPaymentAPI', headers={'login': 'xxx', 'password': 'yyy'})
request = client.factory.create('doWebPaymentRequest')
# filling up request parameters
result = client.service.doWebPayment(request)

但我得到一个HTTP401:未经授权的访问。你知道吗

在过去的3个小时里,我拼命尝试了几件事,但都没有成功:我尝试使用pysimplesoap,尝试使用自定义传输对象,尝试做什么?在客户端url中使用wsdl(这有点用),并通过set\u选项设置登录名/密码

你知道吗?谢谢


Tags: httpscomclient网站requestserviceloginpassword
1条回答
网友
1楼 · 发布于 2024-04-25 23:07:36

由于缺少suds文档,所以这里有一些有用的东西,至少对于我必须使用的服务器设置(我不知道)

client = Client(url='file://path/to/wsdl')
client.set_options(param1="xxx", param2="yyy", ...)

在我的例子中,param1是“username”,param2是“password”等,但这些都是特定于服务器的身份验证方案的

相关问题 更多 >