Поскольку ошибки Soap относятся к WSDL, я задаю этот вопрос. Я пытаюсь добавить отношение в онлайн-бухгалтерию. Аутентификация и получение работают нормально.
Это код, который я использую (код безопасности и идентификатор сеанса работают нормально при получении отношений):
$params = array( "input" => array( "SecurityCode2" => $SecurityCode2,
"SessionID" => $SessionID,
"cRelatie" => array(
"ID" => NULL,
"AddDatum" => date("Y-m-d h:i:s"),
"Code" => "PUBID".sprintf('%04d', $vve['id']),
"Bedrijf" => $Bedrijf,
"Contactpersoon" => $Contactpersoon
)
)
);
try {
$response = $client->__soapCall("AddRelatie", $params);
}
catch (Exception $e){
echo 'Caught exception: ', $e->getMessage(), "\n";
}
Я также пробовал вложить cRelatie в массив с одним индексом под названием oRel (см. WSDL), но это тоже не сработало.
Ошибка:
Caught exception: Server was unable to process request. ---> Object reference not set to an instance of an object.
Это расположение WSDL https://soap.e-boekhouden.nl/soap.asmx?wsdl
Получил работу: Там где недокументированные обязательные поля И дата не могла иметь время, в отличие от WSDL
$params = array( "input" => array(
"SecurityCode2" => $SecurityCode2,
"SessionID" => $SessionID,
"oRel" => array(
"ID" => 0,
"Gb_ID" => 0,
"GeenEmail" => 0,
"NieuwsbriefgroepenCount" => 0,
"AddDatum" => date("Y-m-d"),
"Code" => "PUBID".sprintf('%04d', $vve['id']),
"Bedrijf" => $Bedrijf,
"Contactpersoon" => $Contactpersoon
)
));