In App Validation

Wer bei Apple einen In App kauf validieren möchte, muss an Apple den sogenannten Reciept senden.

Apple verschickt dafür einen String der wie folgt aussieht: “<7b0a0922 7369676e 61747572 6522203d 20224167 322b577….” Dieses sind Hexwerte und müssen erst in ASCII umgewandelt werden. Mit diesen paar Zeilen PHP-Code kann dieses geschehen:
$temp = preg_replace("/[^0-9a-fA-F]/","", $hex);
for($i = 0; $i < strlen($temp); $i = $i + 2)
{
$ascii = $ascii.chr(hexdec(substr($temp, $i, 2)));
}

Anschließend muss ein Array erstellt werden, in diesem Array muss der ASCII String mittels base64_encode umgewandelt und dieses JSON Encodet werden.

$postData = json_encode(
array('receipt-data' => base64_encode($ascii))
);

Diese Daten können dann per Post an Apple übertragen werden (an https://sandbox.itunes.apple.com/verifyReceipt bzw. https://buy.itunes.apple.com/verifyReceipt ). Apple gibt dann zurück, ob alles geklappt hat.

Ein beliebter Fehlercode wäre: {“status”:21002, “exception”:”java.lang.IllegalArgumentException”} D.h. es sind nicht die richtigen Werte übergeben worden.

Apache – Erster Connect langsam?

Bei Einsatzeleiter.net hatte ich das Problem, dass besonders in den Abendstunden der erste Verbindungsversuch sehr langsam war. Alle weiteren Verbindungen innerhalb von ein paar Sekunden waren dann “normal schnell”. Danach gab es wieder einen extra lahmen Verbindungsaufbau.

Nach etwas rumprobieren und studieren der Performance-Tipps, bin ich dann irgendwann auf “Keep Alive” gestoßen. Eigentlich soll eine Verbindung damit erst abgebaut werden, wenn alle Anfragen beendet sind – somit spart man sich eigentlich unnötige Verbindungsaufbauten.

Das deaktivieren des Features hat allerdings den Apache dermaßen beschleunigt, dass ich jetzt das System weiter beobachten werden – vermutlich aber Keep Alive deaktiviert lasse.

SSH Client unter Mac OS?

Jeder Entwickler, Systemadministrator kann SSH gebrauchen, doch gibt es einen Client unter Mac OS X?

Natürlich, der wird sogar direkt mitgeliefert. Um ihn zu starten einfach in Spotlight nach “Terminal” suchen. im Terminal anschließend:

ssh SERVERNAME -lBENUTZERNAME

eingeben und man wird mit dem Server verbunden.

Die Option “-l” erwartet einen Benutzernamen, mitdem man sich auf dem anderen Sever einloggen möchte.

Mac SOAP Client

Um eine SOAP Schnittstelle beim programmieren zu testen,  gibt es viele Möglichkeiten. Beispielsweise kann man mithilfe einer Webseite auf die SOAP Schnittstelle zugreifen, Werte setzen und die Ergebnisse analysieren – allerdings ist das Feeling dabei nicht grade sehr MacLike :).

Deswegen gibt es jetzt schon länger den Mac OS X SOAP Client.

Der SOAP Client zeigt alle wichtigen Informationen auf einen Blick an und ist sehr leicht zu bedienen. Auch wenn das letzte Update des Clients aus dem Jahre 2006 kommt, ist der SOAP Client ein Universal Binary und kann somit in nativer Geschwindigkeit auf aktuellen Intel Macs ausgeführt werden.

Natürlich ist dieses Programm nichts für Endbenutzer und wenn ihr noch nie “SOAP” gehört habt – werdet ihr den Client auch wahrscheinlich nicht brauchen :).