Category Archives: Software

SEPA PAIN! – Ich weiss jetzt warum die Nachrichten PAIN genannt wurden! ;)

 

Ich bin gerade dabei für meine Firma SEPA Lastschrift zu implementieren. Die nur 498 Seiten umfassende SEPA Dokumentation ist schon ein dicker Brocken, aber wenn man dann dabei ist SEPA XML PAIN Nachrichten zu schreiben, merkt man warum es Pain verursacht. Zum einen hat eine Definition in pain.008.002.02 für eine Lastschrift “nur” ca schlappe 130 Zeilen, damit nicht genug, das was mir am meisten Kopfzerbrechen bereitet sind die meiner Meinung nach absolut kranken Tagnamen:

	<CstmrDrctDbtInitn>
		<GrpHdr>
			<MsgId>MSG509d885febf476.43480101</MsgId>
			<CreDtTm>2012-11-09T23:49:03+01:00</CreDtTm>
			<NbOfTxs>1</NbOfTxs>
			<InitgPty>
				<Nm>Smart Weblications GmbH</Nm>
			</InitgPty>
		</GrpHdr>
		<PmtInf>
			<PmtInfId>Payment-ID</PmtInfId>
			<PmtMtd>DD</PmtMtd>
			<NbOfTxs/>
			<CtrlSum>10</CtrlSum>
			<PmtTpInf>
				<SvcLvl>
					<Cd>SEPA</Cd>....

 

Wenn man schon einen Standard erstellt und Tags frei wählen kann, warum nennt man die Tags dann nicht einfach so wie sie heissen? Ist CstmrDrctDbtInitn wirklich “kürzer” oder effizienter als CustomerDirectDebitInitiation? Wenn man das XML nur lesen muss mag das egal sein, wenn man es aber schreiben muss, aua! Sich die kryptischen Variablennamen merken zu müssen – es könnte so einfach sein, wenn diese einfach ausgeschrieben wären!

– So, das wars, Frust abgebaut, weiter gehts 😉

 

Nie wieder vergessen, den Müll rauszubringen – SMS Reminder Script

Wer kennt es nicht? Die Müllabfuhr holt den Müll ab und man hat leider vergessen, seine Mülltonne rauszustellen. Nun habe ich mir selbst mit einem kleinen Script Abhilfe geschaffen. Das Script stellt die Tonne zwar nicht zur Abholung bereit, verschickt jedoch am Abend vorher eine SMS. Die Daten dafür holt sich das Script direkt von der Webseite des Abfallzweckverbandes (das Script funktioniert im Moment deshalb nur im Landkreis Hof). Hier kann man sich das Script ansehen.

 

XTC Xt-Commerce Fix für Multihomed Mailserver

Bei vielen Shop-Systemen wird XT-Commerce eingesetzt, da es vielseitig und flexibel ist um den meisten Anforderungen gerecht zu werden. Will man XTC jedoch in einer Cluster-Umgebung einsetzen, und hat einen Mailserver-Cluster zur Verfügung, gibt es ein Problem sobald XTC versucht, einen Connect zu einem Mailserver aufzubauen, der gerade nicht erreichbar ist. Obwohl weitere Server des Mailserver-Clusters verfügbar sind, gibt XTC nach einmaligem Versuch auf.

Hier ein kleiner Fix für XTC, damit zu einem Hostname alle verfügbaren IP-Adressen zum versenden von Mail durchprobiert werden:

In Zeile 106 in

/includes/classes/class.smtp.php

einfügen:

		// retry connections 
 		$hosts = gethostbynamel($host);
 		while ((empty($this->smtp_conn)) && (count($hosts) > 0)) {
        	$this->smtp_conn = fsockopen(array_pop($hosts), # server
                                      $port,    # the port to use
                                      $errno,   # error number if any
                                      $errstr,  # error message if any
                                      $tval);   # give up after ? secs
 		}

Damit versucht nun XTC mehrmals Mails zuzustellen, wenn der erstmalige Connect zu einem MTA fehlschlägt.