私はサービスの初心者です。現在、SoapClient オブジェクトを使用して PHP で .net WCF サービスを呼び出しています。コードは次のとおりです。
$arr2=array('paymentVendorCode'=>"test1",'transactionNumber'=>123456789,'dataSource'=>'Ghana_QA','customerNumber'=>45678912,'amount'=>10,'invoicePeriod'=>1,'currency'=>'GHC','paymentDescription'=>'CashPayment','methodofPayment'=>'CASH','productCollection'=>'PRCC4');
$certFile = "certs/Entrust.pem";
$options = array('soap_version' => SOAP_1_1 , 'local_cert' => $certFile , 'exceptions' => true ,'trace' => true ,'wdsl_local_copy' => true ,'ssl' => array('verify_peer' => false) ,'https' => array('curl_verify_ssl_peer' => false, 'curl_verify_ssl_host' => false)
);
try
{
echo "SOAP Client Object Made <br />";
//To Make soap client using WSDL files offline
$client = new SoapClient("RTPP_Web_Service_WSDL_20130306/multichoice.paymentservice.wsdl",$options);
}
catch(SoapFault $E)
{
echo "Error:--> ".$E->faultstring;
}
print_r($client->__getFunctions());
try
{
echo $pmt_customer=$client->__call("SubmitPayment", $arr2)."<br /><br />";
}
catch(SoapFault $fault)
{
echo "came here in catch";
trigger_error("SOAP Fault:(faultcode: {$fault->faultcode}\n"."faultstring: {$fault->faultstring})", E_USER_ERROR);
}
使用しているすべての WSDL ファイルを確認し、すべての要素、メッセージ、操作、パラメーターなどを取得しました。WSDL ファイルの 1 つにある SOAP アドレスは次のとおりです。
<soap:address location="https://wispqa.multichoice.co.za/PaymentServicePerimeter/Intermediate.svc" />
これは、呼び出されるサービスの実際のアドレスです。通常、サービスは URL の末尾にある ?WSDL で呼び出されますが、上記の URL の末尾にこれを追加した後でも、サービス ページの外観は変わりません。
サービスのドキュメントには、「現在、サービスはメッセージ コントラクトを使用していません」と書かれています。
「$client->__getFunction()」を呼び出して取得したリストから、そのメソッドの 1 つを呼び出すサービスにリクエストを送信しています。しかし、応答の代わりに、 http://i.stack.imgur.com/GvS3d.pngのスクリーンショットから確認できる致命的なエラーが発生しています。
私はほぼ一週間それに取り組んできましたが、ここで立ち往生しています。誰か私をここから連れ出してください。前もって感謝します。