我无力尝试在我的平台上实现stamps.com api界面。这是我第一次使用SOAP,我必须重新编译PHP以启用库。
我正在前进,但现在我遇到了问题。它们支持soap 1.1和soap 1.2请求,当我运行以下代码时:
$client = new SOAPClient(
'./SWSIM.wsdl',
array(
'trace' => 1
)
);
我从我的请求中得到了一个成功的回复。
但是,如果我添加使用soap 1.2的选项:
$client = new SOAPClient(
'./SWSIM.wsdl',
array(
'trace' => 1,
'soap_version' => SOAP_1_2
)
);
我收到以下错误:
There was an exception running the extensions specified in the config file. ---> Value cannot be null. Parameter name: input
这一行实际上并没有抛出异常。它的下面的命令会抛出它,但删除soap_version就是“修复它”。我想用肥皂1.2,所以这很烦人。
FTR我正在运行的命令是:
$authData = array(
"Credentials" => array(
"IntegrationID" => "MYUID",
"Username" => "MYUSERNAME",
"Password" => "MYPASSWORD"
)
);
try {
$objectresult = $client->AuthenticateUser($authData);
} catch (Exception $e) {
echo "EXCEPTION: " . $e->getMessage();
print_r($e);
exit;
}
可以在此处查看WSDL文件: https://swsim.stamps.com/swsim/swsimv22.asmx?wsdl
我还检查了他们的开发者支持,他们说: “您正在接收的消息是从您正在设计集成的程序返回的。这通常在Visual Basic中发生,其中创建了一个包装类,需要响应的某些变量。这可能类似于行为您正在体验。请验证您的程序语言如何使用WSDL。“
我还注意到__soapCall方法除了“输入标题”参数之外。我不完全确定我应该/甚至可以在我的代码中使用该方法。我想我应该尝试玩它。
答案 0 :(得分:2)
检查您的WSDL文件。我使用的是错误的,看起来你也可以。试试这个:http://developer.stamps.com/developer/downloads/files/Stamps.com_SWSIM.wsdl
注意:上述内容已过期。联系stamps.com了解当前的wsdl!
答案 1 :(得分:1)
我知道这是一个旧线程,但这是一个示例类,应该让所有人都开始使用php https://github.com/aaronjsmith/stamps.com-php中的stamps.com api
答案 2 :(得分:0)
WSDL看起来很好,而且两个Soap版本的输入结构都相同。问题是在他们的某个地方出现了一个错误,你必须联系他们才能解决。
我还会通过.NET应用程序测试它,看看它是否表现相同。