2017-07-26 9 views
-1

私はデータ受信/ webサービスおよび送信するためにPHP SoapClientコンテンツタイプ 'text/xml;のためメッセージを処理できません。

エラー

HTTPを接続することはできません、コンテンツタイプ「text/xmlであるため、メッセージを処理できません。 charset = utf-8 'が予想されるタイプではありませんでした' application/soap + xml; charset = utf-8 'です。

コード

 

    $parameters = [ 
     'UserName' => 12324, 
     'Password' => 432123, 
     'Bill_Id' => 153585611140, 
     'Payment_Id' => 8560103, 
    ]; 

    $url="https://bill.samanepay.com/CheckBill/BillStateService.svc?wsdl"; 
    $method = "VerifyBillPaymentWithAddData"; 

    $client = new SoapClient($url); 

    try{ 

     $info = $client->__call($method, array($parameters)); 

    }catch (SoapFault $fault){ 

     die($fault->faultcode.','.$fault->faultstring); 

    } 

Notice:stackoverflowの中に、このエラーのためにSOAPバージョン1,1、および他の解決のサンプルを動作しません。

答えて

1

あなたのメソッド名が正しいことを確認し

$url = "https://bill.samanepay.com/CheckBill/BillStateService.svc?wsdl"; 

try { 
    $client = new SoapClient($url, [ 
     "soap_version" => SOAP_1_2, // SOAP_1_1 
     'cache_wsdl' => WSDL_CACHE_NONE, // WSDL_CACHE_MEMORY 
     'trace' => 1, 
     'exception' => 1, 
     'keep_alive' => false, 
     'connection_timeout' => 500000 
    ]); 
    print_r($client->__getFunctions()); 
} catch (SOAPFault $f) { 
    error_log('ERROR => '.$f); 
} 

を試みることができます。あなたがこの方法

VerifyBillPaymentWithAddDataResponse VerifyBillPaymentWithAddData(VerifyBillPaymentWithAddData $parameters) 

を見ることができますがあり

次はタイプVerifyBillPaymentWithAddDataとパラメータを配列にすることができた場合をチェックすることです。サーバーが送信するので、エラーはサーバ側で可能性がありhttps://stackoverflow.com/a/5409465/1152471へと仮定 : はまた、あなたは追加の配列

$info = $client->__call($method, $parameters); 

EDIT以外

$client->VerifyBillPaymentWithAddData([ 
    'UserName' => 12324, 
    'Password' => 432123, 
    'Bill_Id' => 153585611140, 
    'Payment_Id' => 8560103, 
]); 

またはあなた経由でメソッドを呼び出すためにテストすることができヘッダーバックはSOAP 1.2標準と互換性がありません。

おそらく、サードパーティ製のライブラリや、単純なソケットを使用して動作させる必要があります。

関連する問題