U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

MercatorWebService client op basis van PHP

0000002266     -      03-12-2016

Dit voorbeeld toont hoe je een SOAP client aanmaakt vertrekkend uit een PHP-site en gebruikmakend van MercatorWebService. Dit voorbeeld is onderworpen aan volgende regels:

  • Het is geleverd als "as is" en zonder support
  • Het moet exception-handling (try-catch-finally) bevatten, om te vermijden dat de webservice niet beschikbaar zou zijn.

Indien bij het uitvoeren van de PHP-client code de foutmelding "Fatal error: Class 'SoapClient' not found" verschijnt, volstaat het om de ; te verwijderen, dit bevindt zich voor "extension=php_soap.dll" in het php.ini-bestand.


Een factuur aanmaken in het Factu-journal:

 

<?php
class SecurityInfo
{
        public $SecureKey;
 
        public function __construct($key)
        {
                $this->SecureKey = $key;
        }
}


$sha1 = ... ;
$url = "http://testws.mercator.eu/MercatorWebService.asmx?wsdl";
$client = new SoapClient($url, array("trace" => 1, "exception" => 0));
$auth   = new SecurityInfo($sha1);
$header = new SoapHeader("http://mercator.eu/", "SecurityInfo", $auth, false);

$result = $client->__soapCall("BillingEngineInitNew", array(array('typeVA' => "V", 'type' => 1, 'journal' => "Factu")), NULL, $header);

if ($result->BillingEngineInitNewResult->LastError<>null)
{
	echo "BillingEngineInitNew : " . $result->BillingEngineInitNewResult->LastError;
	return;
}
// à partir d'ici, il est obligatoire d'appeler la méthode BillingEngineClose
$uniqueId = $result->BillingEngineInitNewResult->Value;
$result = $client->__soapCall("BillingEngineApplyCustomerSupplier", array(array('uniqueId' => $uniqueId, 'id_cli_or_fou' => "INEO52209")));
if ($result->BillingEngineApplyCustomerSupplierResult->LastError<>null)
{
	echo "BillingEngineApplyCustomerSupplier : " . $result->BillingEngineApplyCustomerSupplierResult->LastError;
}
else
{
	$result = $client->__soapCall("BillingEngineAppendLine", array(array('uniqueId' => $uniqueId)));
	if ($result->BillingEngineAppendLineResult->LastError<>null)
	{
		echo "BillingEngineAppendLine : " . $result->BillingEngineAppendLineResult->LastError;
	}
	else
	{
		$rowIndexLigne = $result->BillingEngineAppendLineResult->Value;
		$result = $client->__soapCall("BillingEngineInsertItem2", array(array('uniqueId' => $uniqueId, 'idItem' => "03102001", 'rowIndexLigne' => $rowIndexLigne, 'defaultQ' => 5)));
		if ($result->BillingEngineInsertItem2Result->LastError<>null)
		{
			echo "BillingEngineInsertItem2 : " . $result->BillingEngineInsertItem2Result->LastError;
		}
		else
		{
			$result = $client->__soapCall("BillingEngineUpdateAmounts", array(array('uniqueId' => $uniqueId)));
			if ($result->BillingEngineUpdateAmountsResult->LastError<>null)
			{
				echo "BillingEngineUpdateAmounts : " . $result->BillingEngineUpdateAmountsResult->LastError;
			}
			else
			{
				$result = $client->__soapCall("BillingEngineSave", array(array('uniqueId' => $uniqueId)));
				if ($result->BillingEngineSaveResult->LastError<>null)
				{
					echo "BillingEngineSave : " . $result->BillingEngineSaveResult->LastError;
				}
				else
				{
					$result = $client->__soapCall("BillingEngineSavedNumber", array(array('uniqueId' => $uniqueId)));
					if ($result->BillingEngineSavedNumberResult->LastError<>null)
						echo "BillingEngineSavedNumber : " . $result->BillingEngineSavedNumberResult->LastError;
					else
						echo "La vente Factu " . $result->BillingEngineSavedNumberResult->Value . " a été créée !";
				}
			}
		}
	}
}

$result = $client->__soapCall("BillingEngineClose", array(array('uniqueId' => $uniqueId)));
if ($result->BillingEngineCloseResult->LastError<>null)
	echo "BillingEngineClose : " . $result->BillingEngineCloseResult->LastError;
?>