2017-09-14 41 views
0

Im新的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()中,它的工作原理是什么?和变量$端点,$ stringsample,$ params从哪里得到?上面没有任何声明。 –

+0

已作出修改。谢谢 – user297056