1

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 で表示できます 。

また、開発者サポートに確認したところ、次のように述べられています。応答の変数。これは、発生している動作に似ている可能性があります。プログラム言語が WSDL をどのように使用するかを確認してください。」

また、__soapCall メソッドが「入力ヘッダー」引数を除いていることにも気付きました。コードでそのメソッドを使用する必要があるか、使用できるかどうかは完全にはわかりません。私はそれで遊んでみるしかないと思います。

4

3 に答える 3

2

WSDL ファイルを確認してください。私は間違ったものを使用していました。あなたもそうかもしれません。これを試してください: http://developer.stamps.com/developer/downloads/files/Stamps.com_SWSIM.wsdl

注: 上記は古くなっています。現在の wsdl については、stamps.com にお問い合わせください。

于 2012-08-20T20:48:35.097 に答える
0

WSDLは正常に見え、両方のSoapバージョンで同じ入力構造です。問題は彼らの最後のどこかにあるバグです。解決するには彼らに連絡する必要があります。

また、.NETアプリを介してテストし、同じように動作するかどうかを確認します。

于 2012-05-31T06:19:39.903 に答える