2016-12-02 5 views
0

SOAP APIのリクエストレスポンスを処理するために新規です。私は、SMSゲートウェイAPIを使用してSMSコードを実装するための助けが必要です。 私は以下のSMSゲートウェイAPIを介して送信SMSのためのカール要求にPHPを使用していますが、私は$パーサ[「resultCodeが」] でこの応答を得たsoapクライアントAPIのinetegrationを使用するPHPが動作しません。

<?php 
define("USERNAME","#username#"); 
define("PASSWORD","#password#"); 
$soapUrl = "soap_wsdl_url"; 

$xml_post_string = '<?xml version="1.0" encoding="UTF-8"?> 
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:templateSMS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="urn:ElbaridTNS" xmlns:ns3="namespace" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
<SOAP-ENV:Header> 
<ns3:AuthHeader> 
      <username>USERNAME</username> 
      <password>PASSWORD</password> 
</ns3:AuthHeader> 
</SOAP-ENV:Header> 
<SOAP-ENV:Body> 
<ns1:templateSMS> 
<Sms xsi:type="ns2:Sms"><phoneNumber xsi:type="xsd:string">phoneNumber</phoneNumber> 
<message xsi:type="xsd:string">Hello User, this is test SMS message. We can successfully send SMS.</message> 
<unicodeMessage xsi:type="xsd:string">test SMS</unicodeMessage> 
<sms_type_id xsi:type="xsd:string">1</sms_type_id> 
<notify xsi:type="xsd:string">0</notify> 
<senderId xsi:type="xsd:string">SENDERID</senderId> 
<priority xsi:type="xsd:string">2</priority> 
<vbApp xsi:type="xsd:string">SoapRequest</vbApp> 
<vbIdTime xsi:type="xsd:string">20161130101112</vbIdTime> 
<destinationPort xsi:type="xsd:string">-1</destinationPort></Sms> 
</ns1:templateSMS> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope>'; 

    $headers = array(
     "Content-type: text/xml;charset=\"utf-8\"", 
     "Accept: text/xml", 
     "Cache-Control: no-cache", 
     "Pragma: no-cache", 
     "SOAPAction: templateSMS", 
     "Content-length: ".strlen($xml_post_string), 
    ); 

    $url = $soapUrl; 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    //curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_VERBOSE, 0); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

    $response = curl_exec($ch); 
    echo $response; 


    $response1 = str_replace("<soap:Body>","",$response); 
    $response2 = str_replace("</soap:Body>","",$response1); 

    $parser = simplexml_load_string($response2); 
    echo $parser['resultCode']; 
    echo "<pre>"; 
     print_r($parser); 
    echo "</pre>"; 

    curl_close($ch); 
?> 

顧客(複数可)にSMSを送信するために私のコードである「ユニキャストを送りますメッセージ "。私はこの返答の意味が分かりません。私は2日以来この問題についてR & Dsでしたが、成功を収めませんでした。

上記の問題を解決するお手伝いはありますか?

+0

あなたのコードは、curl_execがfalseを返すかどうかを決して確認しません。また、落ちる場合は、[curl_error](http://php.net/manual/en/function.curl-error.php)を呼び出す必要があります – Dragos

+0

そのメッセージはAPIから受け取ったSOAP応答に含まれているため、それぞれのSOAP APIサービスからの技術サポートを明確にすることができるのは唯一の人です。 – Dragos

+0

私はすでにサポートチームに連絡して、リクエストに合格する必要があるサンプルデータを私に渡しました。 –

答えて

0

サポートチームは私にxml形式で渡す必要があり、リクエストとレスポンスのサンプルコードを与え、下記の要求、応答サンプル構造

要求

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:templateSMS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="urn:ElbaridTNS" xmlns:ns3="namespace" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
<SOAP-ENV:Header> 
<ns3:AuthHeader> 
<username>username </username> 
<password>password</password> 
</ns3:AuthHeader> 
</SOAP-ENV:Header> 
<SOAP-ENV:Body> 
<ns1:templateSMS> 
<Sms xsi:type="ns2:Sms"><phoneNumber xsi:type="xsd:string">xxxxxx</phoneNumber> 
<message xsi:type="xsd:string">test SMS </message> 
<unicodeMessage xsi:type="xsd:string">test SMS</unicodeMessage> 
<sms_type_id xsi:type="xsd:string">1</sms_type_id> 
<notify xsi:type="xsd:string">0</notify> 
<senderId xsi:type="xsd:string">SenderId</senderId> 
<priority xsi:type="xsd:string">2</priority> 
<vbApp xsi:type="xsd:string">SoapRequest</vbApp> 
<vbIdTime xsi:type="xsd:string">20161130101112</vbIdTime> 
<destinationPort xsi:type="xsd:string">-1</destinationPort></Sms> 
</ns1:templateSMS> 
</SOAP-ENV:Body> 

レスポンスです:

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:templateSMS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
<SOAP-ENV:Body> 
<ns1:templateSMSResponse> 
<templateSMSResponse xsi:type="xsd:string">0#!#200#!#http://198.101.210.203/Soap/service/elbarid|http://212.98.137.180/Soap/service/elbarid#!#SenderId 
</templateSMSResponse> 
</ns1:templateSMSResponse> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 
関連する問題