GeneralDescriptions Technikai részletek
A webszolgáltatással kapcsolatos technikai részletek leírása
Technikai részletek
Teszt környezet

A teszt környezetben a szolgáltatás a következő címen érhető el:
https://testcalculate.generali.hu/CalculateService.svc

Éles környezet

Az éles környezetben a szolgáltatás a következő címen érhető el:
https://calculate.generali.hu/CalculateService.svc
Teszt és éles webszolgáltatások használata
A teszt és éles rendszerre nem kell regisztrálni, a bizosító webszolgáltatásait a felhasználó üzletkötő (JUST) kódjával lehet használni.

1. tesztelés a teszt környezetben - 11111111 kód régóta létezik tesztelésre, ill. saját KozvetitoKod is használatható - tetszés szerint használható adatellenőrzésre, minta tanúsítvány készítésre és biztosítás megkötés tesztelésére - csak néhány kötés történjen egyszerre, mert gyenge vason fut (tehát sok ezres hívást nem tud kiszolgálni)
2. valós biztosítás kötés az éles környezetben - saját közvetítő kóddal történő biztosítás kötés, melyben az ügyfél tényleges adatai (többek között valós email címe) szerepeljen
Universal XML leírása
Az UniversalXML részéhez kapcsolódó működését a Universal leírás oldal mutatja be.
SoapUI segédlet
A helyes SoapUI tanúsítványkezelés beállítását egy önálló segédlet részletezi: Generali_Calculate_SoapUI_segedlet.docx
Programozási segédlet

Tűzfal authentikációs, és soap aláírás példák

C#
 
Visual Studio-ban Web-referenciaként hozzáadjuk a https://testcalculate.generali.hu/CalculateService.svc-t.

Használat:
using SimpleUniversalCaller.CalculateService;
using System.Security.Cryptography.X509Certificates;
using System.Xml;
 
namespace SimpleUniversalCaller
{
	internal class Program
	{
		private static string JustCode = "11111111";
 
		static void Main(string[] args)
		{
			CallUniversal();
		}
 
		/// <summary>
		/// Universal hívás
		/// </summary>
		/// <returns></returns>
		private static XmlNode CallUniversal()
		{
			var calculateService = new CalculateServiceClient();
 
			//Kliens oldani tanúsítvány betöltése pl. tanúsítvány tárolóból
			calculateService.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindBySubjectName, "testcalculate");
 
			var document = new XmlDocument();
			document.Load("1_Kalkulacio_auto_ffi-request.xml");
 
			//Meghívjuk a szolgáltatást
			var response = calculateService.UniversalWithXmlDocument(JustCode, document);
 
			return response;
		}
	}
}

Java
public static void main(String [] args)
{
    String alias = Alias to my PK;
    char[] pass = MyPassword.toCharArray();
    try
    {
        KeyStore ks = KeyStore.getInstance(Windows-MY);
        //ks.load(null, null);  //így is meghívható
        ks.load(null, pass);//a passwordot prompt ablakban fogja kérni
        Provider p = ks.getProvider();
        Signature sig = Signature.getInstance(SHA1withRSA,p);
        PrivateKey key = (PrivateKey) ks.getKey(alias, pass);
        sig.initSign(key);
        sig.update(Testing.getBytes());
        sig.sign();
    }
    catch (Exception e)
    {
       System.err.println(e.toString());
    }
}

PHP
I. Certificate készítése

        openssl.exe pkcs12 -in alkusz.pfx -out alkusz.pem


II. Szükséges PHP kiterjesztések
 
extension=php_curl.dll extension=php_openssl.dll extension=php_soap.dll extension=php_xmlrpc.dll

III. PHP mintakód

Include fileok:
XMLSecurityKey.php
XMLSecurityDSig.php
XMLSecEnc.php
XPath.php
WSASoap.php
WSSESoap.php
WSSESoapServer.php



client.php
<?php $libs_dir = dirname(__FILE__) . '/lib/'; require $libs_dir . '/XMLSecurityKey.php'; require $libs_dir . '/XMLSecurityDSig.php'; require $libs_dir . '/XMLSecEnc.php'; require $libs_dir . '/Utils/XPath.php'; require $libs_dir . '/WSASoap.php'; require $libs_dir . '/WSSESoap.php'; require $libs_dir . '/WSSESoapServer.php'; use RobRichards\WsePhp\WSSESoap; use RobRichards\XMLSecLibs\XMLSecurityKey; define('PRIVATE_KEY', 'D:\\tanusitvany.pem'); //Saját tanúsítványt kell megadni define('PRIVATE_KEY_PASSWORD', '12345678'); //Tanúsítványhoz tartozó jelszót kell megadni define('USER_ACCOUNT', '11111111'); //JUST kód - teszt környezetben használható az '11111111' class XMLSOAP extends SOAPClient { function __doRequest($request, $location, $action, $version, $one_way = FALSE) { $doc = new DOMDocument('1.0'); $doc->loadXML($request); $objWSSE = new WSSESoap($doc, false); $objWSSE->signBody = false; $objWSSE->addTimestamp(); $objKey = new XMLSecurityKey(XMLSecurityKey::RSA_SHA1, array('type' => 'private')); $objKey->passphrase = PRIVATE_KEY_PASSWORD; $objKey->loadKey(PRIVATE_KEY, true); $options = array("insertBefore" => false); $objWSSE->signSoapDoc($objKey, $options); $token = $objWSSE->addBinaryToken(file_get_contents(PRIVATE_KEY)); $objWSSE->attachTokentoSig($token); $xml = $objWSSE->saveXML(); print $xml; return parent::__doRequest($xml, $location, $action , $version, $one_way); } } try { $url = 'https://testcalculate.generali.hu/CalculateService.svc?wsdl'; $client = new XMLSOAP($url, array( 'trace' => true, 'exceptions' => true, 'encoding'=> 'UTF-8' ) ); //HelloWorld meghívása print_r($client->HelloWorld()); //Kérés összeállítása $params = array( "UserAccount" => USER_ACCOUNT, "Request" => array( "UniversalDocument" => array( "HEAD" => array("PRODUCTNAME" => "CASCO_KOMPLETT"), "INPUTS" => array( "VARIABLE" => array( "id" => "JarmuFajtaKod", "VALUE" => "1" ) ), "OUTPUTS" => array( "VARIABLE" => array( "id" => "ExtraKod", "function" => "CHOICE", "VALUE" => null ) ) ) ) ); //UniversalWithXmlDocument hívása az összeállított kéréssel print_r($client->UniversalWithXmlDocument($params)); } catch (SoapFault $fault) { print_r('Hiba! ' . $fault); } ?>
Kapcsolatfelvétel
Kérdéseiket, hibabejelentéseiket az alábbi email címre várjuk: webservice@generali.hu.