Monthly Archives: April 2011

PayPal IPN und Umlaute

Einer meiner Freunde, Marius, hat heute unbeabsichtigt und unbemerkt einige Exceptions auf Snäckbox ausgelöst.

Er hat bestellt und mit PayPal bezahlt. Nachdem die Zahlung bestätigt wurde, schickte der PayPal-Server eine Benachrichtigung an den Snäckbox-Server und sendete einen Haufen zusätzlicher Informationen mit.

Unteranderem wird die Lieferadresse des Käufers mitgeschickt. Der Snäckbox Server validiert die empfangenen URL-Parameter gegen den PayPal-Server, so wie in der PayPal-Dokumentation beschrieben. Was in der Regel bestens funktioniert, aber heute eben nicht 😉

Ich bekam eine Exception, dass der PayPal-Request INVALID sei. Was bedeuten würde, dass nicht der PayPal-Server die Benachrichtigung geschickt hat, sondern jemand anders.

Das Problem war der Straßenname der Lieferadresse, die Marius bei PayPal hinterlegt hat. Da drin war ein Umlaut. Und als PayPal die Bestätigung per IPN gesendet hat, kam auf der Snäckbox-Seite statt dem erwarteten ö(%C3%B6) ein %EF%BF%B an. Der Grund dafür war das Encoding, das PayPal verwendet hat. Die Daten wurden mit windows-1252 kodiert gesendet und kamen falsch an.

Die Lösung ist, das Encoding bei PayPal einzustellen (bei dem Konto, das die IPN Benachrichtigungen verschickt): Mein Profil -> Sprachcodierung -> Weitere Optionen -> Codierung auf UTF-8 setzen.

Danke Marius 🙂

snaeckbox.de ist online gegangen

Ich bin stolz sagen zu können, dass snaeckbox.de endlich online ist 🙂 War ein Stück Arbeit, aber wir haben trotz der Geburt meiner Tochter den Termin halten können.

Softwaretechnisch ist Snäckbox mein bisher coolstes Projekt. Ich habe zum ersten mal an einem Projekt mitgearbeitet, dass mir nach Monaten Entwicklung nicht auf den Geist geht, weil ein Bug-Fix, den nächsten Bug produziert. Bei Snäckbox ist es anders. Knapp 600 Tests machen die Entwicklung immer noch zu einem Genuss. Und jede neue Zeile Code sichern wir mit einem weiteren Test ab. Erfordert Disziplin, aber die Entwicklungszeit bleibt konstant und die Entwickler motiviert. Ein Hoch auf die Tests…

Nach OS X Update: NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher

Hat mich einwenig Zeit gekostet, aber Apple hat scheinbar Maven3 mit dem neusten Java Update ausgeliefert. Daher führte bei mir der Aufruf von mvn zu der besagten NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher-Exception

Dank dem Artikel habe ich einen Blick in das /usr/share Verzeichnis geworfen und tatsächlich einen Link auf Maven3 gefunden.

$ ls -la /usr/share/maven
maven -> java/maven-3.0.2

Ich habe den Link entfernt und auf meine alte Maven Installation gesetzt – schon geht es 🙂

$ sudo rm /usr/share/maven
$ sudo ln -s /Library/Maven/2.2.1 /usr/share/maven