2017-09-14 3 views
0

PHP에 새로 추가 된 soapclient. 나는 세부 사항을 보내려고 노력하고 있었고 빈 응답을 계속하고있다.PHP soapClient 배열 방법

나는

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <UploadFileNew_XML xmlns="http://tempuri.org/GAPS_Uploader/FileUploader"> 
     <xmlRequest> 
    <transdetails> 
     <transactions> 
     <transaction> 
      <amount>25000</amount> 
      <paymentdate>2017/09/07</paymentdate> 
      <reference>777777</reference> 
      <remarks>Name</remarks> 
      <vendorcode>vendor details</vendorcode> 
      <vendorname>Vendor name</vendorname> 
      <vendoracctnumber>0212893398</vendoracctnumber> 
      <vendorbankcode>058152052</vendorbankcode> 
     </transaction> 
     </transactions>> 
    </transdetails> 
    <customerid>481472280</customerid> 
    <username>username</username> 
    <password>password</password> 
    <hash>'.hash(sha512,'hasdetails','other details').'</hash> 
     </xmlRequest> 
    </UploadFileNew_XML> 
    </soap:Body> 
</soap:Envelope> 
<?php 
try{ 
    define ('WSDL_URL_BAL','http://gtweb.gtbank.com/gaps_fileuploader/fileuploader.asmx?WSDL'); 
$stringsample = []; 
$stringsample['transdetails']['transactions']['transaction']['amount'] = 2500; 
$stringsample['transdetails']['transactions']['transaction']['paymentdate'] = '2017/09/07'; 
$stringsample['transdetails']['transactions']['transaction']['reference'] = 'aaaaaa'; 
$stringsample['transdetails']['transactions']['transaction']['remarks'] = 'bbbbbbb'; 
$stringsample['transdetails']['transactions']['transaction']['vendorcode'] = 'cccccccc'; 
$stringsample['transdetails']['transactions']['transaction']['vendorname'] = 'ddddddd'; 
$stringsample['transdetails']['transactions']['transaction']['vendoracctnumber'] = '0212893398'; 
$stringsample['transdetails']['transactions']['transaction']['vendorbankcode'] = '058152052'; 
$stringsample['customerid'] = '12345'; 
$stringsample['customerid'] = 'abcdefrggg'; 
$stringsample['customerid'] = '445566555'; 
$stringsample['hash'] = 'hash'; 
$endpoint = WSDL_URL_BAL; 
$client = new SoapClient($endpoint); 
$params = array('xmlrequest'=>$stringsample); 
$result = $client->UploadFileNew_XML($params); 
$data = $result->UploadFileNew_XMLResult; 
echo $data.'<br /><br /><br />'; 
print_r($data); echo '<br /><br /><br />'; 
} catch (Exception $e) { 
    $message = 'Error: '. $e->getMessage(); 
} 
echo $message; 
?> 

친절하게 내가 온라인 유용한 리소스를 찾을 수 없습니다 도움이 비누의 세부 사항을 가지고있다. 감사. 강조 표시된 주석을 수정했습니다. 내가 구문 분석 오전 배열로 올바르게 비누 번역 된 경우 잘 모릅니다.

답변

0

코드가 누락되었습니다. 원본을 복사하고 붙여 넣은 것처럼 보이는 모든 것 ... 그래서 방금 코드에 <?php ?> 태그를 추가했습니다.

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <UploadFileNew_XML xmlns="http://tempuri.org/GAPS_Uploader/FileUploader"> 
     <xmlRequest> 
    <transdetails> 
     <transactions> 
     <transaction> 
      <amount>25000</amount> 
      <paymentdate>2017/09/07</paymentdate> 
      <reference>777777</reference> 
      <remarks>Name</remarks> 
      <vendorcode>vendor details</vendorcode> 
      <vendorname>Vendor name</vendorname> 
      <vendoracctnumber>0212893398</vendoracctnumber> 
      <vendorbankcode>058152052</vendorbankcode> 
     </transaction> 
     </transactions>> 
    </transdetails> 
    <customerid>481472280</customerid> 
    <username>username</username> 
    <password>password</password> 
    <hash>'.hash(sha512,'hasdetails','other details').'</hash> 
     </xmlRequest> 
    </UploadFileNew_XML> 
    </soap:Body> 
</soap:Envelope> 
<?php 
try{ 
define ('WSDL_URL_BAL','http://gtweb.gtbank.com/gaps_fileuploader/fileuploader.asmx?WSDL'); 
$client = new SoapClient($endpoint); 
$params = array('xmlrequest'=>$stringsample); 
$result = $client->UploadFileNew_XML($params); 
$data = $result->UploadFileNew_XMLResult; 
echo $data.'<br /><br /><br />'; 
print_r($data); echo '<br /><br /><br />'; 
} catch (Exception $e) { 
    $message = 'Error: '. $e->getMessage(); 
} 
echo $message; 
?> 

이제 시도해 볼 수 있습니다.

+0

예 PHP 태그가 누락되었습니다. 아직 작동하지 않습니다. – user297056

+0

하지만 작동하지 않습니다! 왜냐하면'try() catch (Exception $ e) {}'메소드가 SQL 질의를위한 것이기 때문입니다. define()에서 어떻게 작동할까요? 그리고 변수 $ endpoint, $ stringsample, $ params 어디에서 가져 오는거야? 위에 아무것도 선언되지 않습니다. –

+0

수정되었습니다. 감사 – user297056