Die Anleitung zur Anbindung von Worldpay ist im Großen und Ganzen recht ausführlich, aber in einigen wichtigen Teilen unklar. Standardmäßig gibt man bei Worldpay eine feste Callback-URL an, an die dann nach dem Bezahlen die Daten gesendet werden, welche eine Online-Shop-Anwendung für die weitere Bearbeitung der Bestellung nutzen kann. Wenn man aber mehrere Shops mit einem Worldpay-Konto betreiben möchte, wird es etwas knifflig.
Das im Folgenden erwähnte Worldpay-Formular enthält die Schaltfläche, auf die der Nutzer klickt, um zu Worldpay zu gelangen und dort die Kreditkartendaten einzugeben.
Schritt eins ist, im Worldpay-Formular auf der eigenen Seite die dynamische Callback-URL in einem Hidden-Formularfeld anzugeben.
<input type="hidden" name="MC_callback" value="http://www.example.com/callback/" />
Schritt zwei ist, bei Worldpay eine neue Callback-URL einzustellen. Statt einer richtigen URL trägt man folgenden Platzhalter ein.
<wpdisplay item=MC_callback-ppe empty="http://www.example.com/callback/alternativ/">
Dieser Eintrag sagt Worldpay, für den Callback die URL aus dem übermittelten Feld MC_callback zu nehmen. Im Attribut empty ist eine Alternativ-URL angegeben, die Worldpay nutzen soll, wenn das Feld MC_callback leer ist. Auf diese Weise kann man bestehende Installation des Wordpay-Formulars weiter nutzen, ohne es um das Feld für die Callback-URL zu erweitern.
Schritt drei ist der Wichtigste, nämlich die Verifizierung des Callback. Theoretisch könnte jeder mit den Daten aus dem Wordpay-Formular Informationen zurück an die Callback-URL senden und so eine Bestellung manipulieren. Die Verifizierung ist jedoch äußerst simpel. Man fragt einfach den Hostnamen der anfragenden IP per gethostbyaddr() ab und prüft, ob die Domain *.rbsworldpay.com lautet.