支払いエンジンの SOAP API には、customeraccountname や customeraccountnumber などの複数の RequestParameters が必要です。
<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 コードを使用します。
<?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
)
)
)
どうすれば必要な結果を達成できますか?
あなたの助けを楽しみにしています, よろしく ロバート