肥皂1.2不与stamps.com合作

时间:2012-05-30 00:32:46

标签: php soap wsdl

我无力尝试在我的平台上实现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方法除了“输入标题”参数之外。我不完全确定我应该/甚至可以在我的代码中使用该方法。我想我应该尝试玩它。

3 个答案:

答案 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应用程序测试它,看看它是否表现相同。