- time: documentation ( source)
- hash: documentation ( source)
- base64_encode: documentation ( source)
<?php
$privateKey = '0ac56cf42961b3a00e3a54e8608ac56628331a1a21e28e44288b713442c05d9c'; //your private-key
$publicKey = 'd7830ae49fbe30ce79aa033662057fcb8c0d57959411066208444d709c3cd87a'; //your public-key
$resource = '/shipment/'; //uri of a resource
$timestamp = time(); //actual datetime in timestamp format
//only needed for the testing-server
$baseUrl = 'https://testing.swissconnect.ch/api/';
$basicAuthUser = 'swissconnect';
$basicAuthPass = 't3St-M4th1lda';
$contentData = '<?xml version="1.0"?>
<auftrag>
<system_fk_id>9999</system_fk_id>
<startdatum>2014-09-04 16:57:00</startdatum>
<rechnungsbeschreibung_offiziell>4700946399 / S-GE</rechnungsbeschreibung_offiziell>
<rechnungsbeschreibung_intern>Hier allenfalls Name des Bestellers</rechnungsbeschreibung_intern>
<rechnungssteller>2</rechnungssteller>
<bezahl_kurier_id>600</bezahl_kurier_id>
<bemerkung>bitte Monteur 30 Min. vorher anrufen / Appelz le monteur 30 Min. avant svp.</bemerkung>
<auftrag_absender_kontaktadressen>
<item>
<firma>Schindler Aufzüge AG, SP-SA</firma>
<addresse>Zugerstr. 13</addresse>
<postleitzahl>6030</postleitzahl>
<ort>Ebikon</ort>
<kontakt>J.Varga / 041 445 47 64</kontakt>
</item>
</auftrag_absender_kontaktadressen>
<auftrag_empfaenger_kontaktadressen>
<item>
<firma>Schindler Aufzüge AG Genève</firma>
<addresse>chemin de la mairie 24</addresse>
<postleitzahl>1258</postleitzahl>
<ort>Perly</ort>
<kontakt>N.Marcarini</kontakt>
</item>
</auftrag_empfaenger_kontaktadressen>
<auftrag_dritte_kontaktadressen>
<item>
<kontaktadresse_id>62300</kontaktadresse_id>
<bezahlt_bool>true</bezahlt_bool>
</item>
</auftrag_dritte_kontaktadressen>
<colis>
<item>
<anzahl>1</anzahl>
<gewicht>2.0</gewicht>
<laenge>30.0</laenge>
<breite>40.0</breite>
<hoehe>40.0</hoehe>
<beschreibung>Paket</beschreibung>
<referenz>1</referenz>
</item>
<item>
<anzahl>1</anzahl>
<gewicht>4.0</gewicht>
<laenge>10.0</laenge>
<breite>20.0</breite>
<hoehe>20.0</hoehe>
<beschreibung>Paket</beschreibung>
</item>
<item>
<anzahl>1</anzahl>
<gewicht>3.3</gewicht>
<laenge>215.0</laenge>
<breite>11.0</breite>
<hoehe>7.0</hoehe>
<beschreibung>Paket</beschreibung>
</item>
</colis>
<auftrag_kuriere_dritte>
<item>
<kurier_id>101</kurier_id>
</item>
</auftrag_kuriere_dritte>
<empfaenger_email>tobias.kapinos@ch.schindler.com</empfaenger_email>
</auftrag>';
//For the hash-key we do not need the serverPW
$url = $baseUrl . $privateKey . '/' . $timestamp . $resource;
//generating hash which has to be placed in the header of the request. Header name: X-hash
$resultHash = hash('sha256', $url . $contentData);
$sendUrl = $baseUrl . $publicKey . '/' . $timestamp . $resource;
$httpHeaders = array(
"Content-Type: application/xml",
"Accept: application/xml",
"X-hash: " . $resultHash,
"X-language: de",
"Authorization: Basic ". base64_encode($basicAuthUser. ':'. $basicAuthPass),
);
echo '$SEND_URL.....: '.$sendUrl."\n";
echo '$RESULTHASH...: '.$resultHash."\n";
echo '$URL_FOR_HASH.: '.$url."\n";
echo '$CONTENTDATA..: '.$contentData."\n";
echo '$HTTP_HEADER..: '.$httpHeaders."\n";