0
的支付引擎的SOAP API需要多個requestParameters的如customeraccountname和customeraccountnummber:如何在PHP對象添加多張數據行
<soapenv:Body Id="_body">
<req:TransactionRequest>
<req:Currency>EUR</req:Currency>
<req:Services>
<req:Service Name="directdebit" Action="Pay" Version="1">
<req:RequestParameter Name="customeraccountname">Joe Doe</req:RequestParameter>
<req:RequestParameter Name="customeraccountnumber">123456789</req:RequestParameter>
</req:Service>
</req:Services>
</req:TransactionRequest>
</soapenv:Body>
我用下面的PHP代碼,試圖achief此:
<?php
$TransactionRequest = new Body();
$TransactionRequest->Currency = 'EUR';
$TransactionRequest->Services = new Services();
$TransactionRequest->Services->Service = new Service();
$TransactionRequest->Services->Service->Name= 'directdebit';
$TransactionRequest->Services->Service->Action = 'Pay';
$TransactionRequest->Services->Service->Version = 1;
$TransactionRequest->Services->Service->RequestParameter = new RequestParameter();
$TransactionRequest->Services->Service->RequestParameter->Name = 'customeraccountname';
$TransactionRequest->Services->Service->RequestParameter->_ = 'Joe Doe';
$TransactionRequest->Services->Service->RequestParameter = new RequestParameter();
$TransactionRequest->Services->Service->RequestParameter->Name = 'customeraccountnumber';
$TransactionRequest->Services->Service->RequestParameter->_ = '123456789';
//echo var_dump($TransactionRequest);
print_r($TransactionRequest);
class Body
{
public $Currency;
public $Services;
}
class Services
{
public $Global;
public $Service;
}
class Service
{
public $RequestParameter;
public $Name;
public $Action;
public $Version;
}
class RequestParameter
{
public $_;
public $Name;
public $Group;
}
?>
產生的對象但是不包含第一RequestParameter:
Body Object
(
[Currency] => EUR
[Services] => Services Object
(
[Global] =>
[Service] => Service Object
(
[RequestParameter] => RequestParameter Object
(
[_] => 123456789
[Name] => customeraccountnumber
[Group] =>
)
[Name] => directdebit
[Action] => Pay
[Version] => 1
)
)
)
我如何才能達到所需的結果?
期待您的幫助,關心羅伯特
這trows錯誤:PHP解析錯誤:語法錯誤,有一些額外的信息解決意外T_ARRAY – user2556146
從miqrogroove.com/blog $ new_array =陣列(); $ TransactionRequest-> Services-> Service-> RequestParameter =&$ need_to_free_up_this_var; $ need_to_free_up_this_var =&$ new_array; unset($ new_array); $ TransactionRequest-> Services-> Service-> RequestParameter [0] = new RequestParameter(); ......... $ TransactionRequest-> Services-> Service-> RequestParameter [1] - > _ ='123456789'; – user2556146
@ user2556146:請添加作爲答案,鏈接這些資源,解釋它爲什麼現在起作用,以及具體解決「錯誤」是什麼。然後你可以接受這個答案。另外使用引用/變量別名似乎不適用於我。 – hakre