Instant Notification Service
Überblick
ClickBank bietet einen Instant Notification Service, der Sie über innerhalb des ClickBank-Systems für Ihr Konto getätigte Transaktionen benachrichtigt. Hierbei werden für die folgenden Aktionstypen Daten nahezu in Echtzeit gesendet:
|
|
Dieser Dienst versucht, Informationen über HTML FORM POST an eine von Ihnen festgelegte URL zu senden. Jeder Post enthält eine Gruppe von URL-Parametern, die für die Transaktion relevant sind. Um Missbrauch zu verhindern, wird einer der Parameter, das Feld “cverify”, zur Verifizierung der Gültigkeit der übrigen Felder verwendet.
Hinweis: Dieser Dienst ist nur für die Verwendung durch erfahrene Programmierer bestimmt. Kunden ohne umfassende Programmierkenntnisse sollten von der Implementierung des Instant Notification Service nur dann Gebrauch machen, wenn sie zuvor die Dienste eines erfahrenen Programmierers in Anspruch genommen haben.
So funktioniert’s
Der Instant Notification Service von ClickBank wird jedes Mal ausgelöst, wenn eine Transaktion erstellt oder Aktion zu einer Transaktion in Ihrem ClickBank-Konto ausgeführt wird. Der Ablauf umfasst im Wesentlichen die folgenden Schritte:
- Im ClickBank-System wird eine Aktion durchgeführt (z. B. Verkauf, Abo-Zahlung, Rückerstattung usw.).
- ClickBank sendet FORM-Parameter an eine von Ihnen festgelegte URL.
- ClickBank beobachtet die Serverantwort.
- Ein von Ihnen erstelltes Programm verarbeitet die Variablen.
Die Einrichtung des Dienstes für Ihr ClickBank-Konto ist ganz einfach. Es muss allerdings ein Programm erstellt werden, das die eher technische Aufgabe der Verarbeitung der Instant Notification-URL-Parameter übernimmt. Für die optimale Nutzung dieses Dienstes muss dieses Programm mindestens die im Abschnitt URL-Parameter aufgeführten Parameter verarbeiten.
Wissenswertes
Damit der Instant Notification Service richtig funktioniert, müssen Sie die im Folgenden genannten Punkte verstehen. Werden diese Punkte nicht verstanden und nicht umgesetzt, so führt dies zum Entfernen des Instant Notification Service von Ihrem Konto.
- Was ist ein HTML FORM POST für eine URL?
- Was sind URL-Parameter?
- Was ist ein Geheimcode?
- Wie wird eine Verschlüsselung implementiert?
- Welche Rolle spielt die Verwendung von Secure Sockets Layer (SSL)?
- Was sind die Auswirkungen des Response Code Monitoring?
Wenn Sie mindestens einen der genannten Punkte nicht verstehen, empfehlen wir Ihnen, die Dienste eines Experten in Anspruch zu nehmen, der sich mit der Umsetzung dieser Punkte auskennt. Ansonsten muss diese Funktion möglicherweise von Ihrem Konto entfernt werden.
Erste Schritte
Instant Notification (Sofortige Benachrichtigungen)
Vor der Implementierung dieser Funktion sollten Sie sich mit den folgenden Hinweisen vertraut machen.
URL-Parameter
Die folgenden URL-Parameter werden vom Instant Notification Service von ClickBank weitergegeben.
| Parameter | Beschreibung | Detail |
| ccustname | Kundenname | 1 bis 2 Zeichen |
| ccuststate | Staat des Kunden | 0 bis 2 Zeichen |
| ccustcc | Ländercode des Kunden | 0 bis 2 Zeichen |
| ccustemail | E-Mail-Adresse des Kunden | 1 bis 255 Zeichen |
| cproditem | ClickBank-Produktnummer | 1 bis 5 Zeichen |
| cprodtitle | Produkttitel zum Zeitpunkt des Kaufs | 0 bis 255 Zeichen |
| cprodtype | Art des Produkts der Transaktion (STANDARD oder WIEDERKEHREND) | 8 bis 11 Zeichen |
| ctransaction* | Durchgeführte Aktion | 4 bis 15 Zeichen |
| ctransaffiliate | An Transaktion beteiligter Affiliate | 0 bis 10 Zeichen |
| ctransamount | An benachrichtigte Partei gezahlter Betrag (in US-Cent (1000 = 10,00 USD)) | 3 bis 10 Zeichen |
| ctranspaymentmethod | Zahlungsmethode des Kunden | 0 bis 4 Zeichen |
| ctranspublisher | An Transaktion beteiligter Vendor | 5 bis 10 Zeichen |
| ctransreceipt | ClickBank-Wareneingangsnummer | 8 bis 13 Zeichen |
| caffitid | Tracking-ID des Affiliates | 0 bis 24 Zeichen |
| cvendthru | Zusätzliche an das Zahlungsformular weitergegebene Informationen nach Entfernung von doppelten Informationen | 0 bis 1024 Zeichen |
| cverify** | Wird zur Verifizierung der Gültigkeit der vorherigen Felder verwendet | 8 Zeichen |
| ctranstime** | Der Zeitraum, in dem die Transaktion stattfand (nicht in cverify enthalten) | 10 Zeichen |
| * Siehe “Transaktionsarten”. ** Siehe “Verschlüsselung”. |
Wenn ein Parameter keinen Wert enthält, enthält der Instant Notification-String den Parameter-Tag ohne Wert. Der Instant Notification Service kann auch mehr als einen POST pro Empfang liefern. Weitere Informationen finden Sie im Abschnitt Häufige Fragen.
Transaktionsarten
Der Parameter “ctransaction” kann eine Reihe von Werten enthalten. Im Folgenden finden Sie eine Auflistung dieser Werte, jeweils zusammen mit einer kurzen Beschreibung ihres Zwecks.
| Art | Beschreibung |
| SALE | Der Kauf eines Standardprodukts oder der erste Kauf eines Produkts mit wiederkehrenden Abbuchungen |
| BILL | Eine wiederkehrende Abbuchung für ein Produkt mit wiederkehrenden Abbuchungen |
| RFND | Die Rückerstattung eines Standardprodukts oder eines Produkts mit wiederkehrenden Abbuchungen. Produkte mit wiederkehrenden Abbuchungen, die zurückerstattet werden, führen außerdem zu einer “ABO-ZAHLUNG STORNIEREN”-Aktion. |
| CGBK | Eine Ausgleichsbuchung für ein Standardprodukt oder ein Produkt mit wiederkehrenden Abbuchungen |
| INSF | Eine eCheck-Ausgleichsbuchung für ein Standardprodukt oder ein Produkt mit wiederkehrenden Abbuchungen |
| CANCEL-REBILL | Die Stornierung eines Produkts mit wiederkehrenden Abbuchungen. Stornierte Produkte mit wiederkehrenden Abbuchungen haben keine weitere Aktion zur Folge. |
| UNCANCEL-REBILL | Die Aufhebung der Stornierung eines Produkts mit wiederkehrenden Abbuchungen |
| TEST | Wird ausgelöst, wenn auf den Testlink auf Seite geklickt wird |
Zahlungsmethoden
Der Parameter “ctranspaymentmethod” kann eine Reihe von Werten enthalten. Diese Werte werden im Folgenden aufgeführt.
- PYPL
- VISA
- MSTR
- DISC
- AMEX
- SWIT
- SOLO
- JCBC
- DNRS
- ENRT
- AUST
- BLME
- STVA
Secure Sockets Layer (SSL)
Es wird dringend empfohlen, bei der Verwendung dieser Funktion Secure Sockets Layer (SSL) zu aktivieren. Wenn Sie diese Funktion ohne aktiviertes Secure Sockets Layer (SSL) verwenden, sind Ihre Daten anfällig für Internetdiebstahl. Da über den Instant Notification Service jedoch keine Kreditkarten- und Bankangaben übermittelt werden, benötigt ClickBank für die Verschlüsselung von Instant Notification-Übertragungen kein Secure Sockets Layer (SSL).
Response Code Monitoring (Wiederholungslogik)
Der Instant Notification Service versucht, Informationen an die auf der Seite “Eigene Website” angegebene URL über HTML zu senden. Wenn aufgrund des Sendeversuchs ein Antwortcode Ihres Systems eingeht, der anders lautet als “200″, versucht ClickBank die Datenübermittlung eine Stunde später erneut. Der Versuch wird bis zu 72 Stunden lang jede Stunde wiederholt. Anschließend wird kein Versuch mehr durchgeführt.
Verschlüsselung (Verhinderung von Betrug)
Unter “Verschlüsselung” versteht man eine Methode zur Ver- und Entschlüsselung. Dadurch wird sichergestellt, dass keine URL auf die Abfragestringparameter zugreift.
Wird innerhalb Ihres ClickBank-Kontos eine Aktion durchgeführt, werden verschiedene Werte an den Instant Notification-Abfragestring weitergegeben (siehe unter URL-Parameter). Während der Erstellung des Strings werden ein sha1 bzw. ein Hash der weitergegebenen Werte sowie Ihr Geheimcode erstellt. Daraus ergibt sich der Parameter “cverify”. Nach Erhalt der Abfragestringparameter muss Ihr System ebenfalls einen sha1 bzw. einen Hash der weitergegebenen Werte sowie Ihren Geheimcode erstellen.
Die Gültigkeit der empfangenen Daten wird mithilfe des von uns gesendeten Parameters “cverify” und des in Ihrem System erstellten Werts beurteilt. Nur bei einer exakten Übereinstimmung der beiden Werte können Sie sicher sein, dass auf die Informationen nicht zugegriffen wurde.
Hinweis: Der Parameter “ctranstime” ist im Verschlüsselungsalgorithmus für den Parameter “cverify” nicht enthalten.
Beispiele hierzu sind unter Code-Beispiele zu finden.
Implementierung
Nachdem Sie sich einen guten Überblick über den Inhalt des vorherigen Abschnitts verschafft haben, empfehlen wir Ihnen, diese Funktion zunächst zu testen, bevor Sie sie implementieren. Nach der erfolgreichen Durchführung dieses Tests können Sie Ihr Konto für den Instant Notification Service einrichten.
Zugriffsanforderung
Führen Sie die folgenden Schritte durch, um Zugriff auf den Instant Notification Service anzufordern:
- Melden Sie sich bei Ihrem Konto an.
- Klicken Sie auf die Registerkarte “Kontoeinstellungen”.
- Klicken Sie in der Unternavigation auf “Eigene Website”.
- Suchen Sie das Feld “Sofortige Benachrichtigung”, und klicken Sie auf den Hyperlink “Hier klicken, um Zugriff zu erhalten”.
- Füllen Sie das Formular aus und lesen Sie sich die Nutzungsbedingungen sorgfältig durch.
- Klicken Sie am Ende des Formulars auf die Schaltfläche “Senden”.
Testen von Konnektivität und Verarbeitung
Führen Sie die folgenden Schritte aus, um die Konnektivität und erfolgreiche Verarbeitung der URL-Parameter zwischen ClickBank und Ihrem Server zu testen:
- Melden Sie sich bei Ihrem Konto an.
- Klicken Sie auf die Registerkarte “Kontoeinstellungen”.
- Klicken Sie in der Unternavigation auf “Eigene Website”.
- Geben Sie in das Feld “Sofortige Benachrichtigung 1″ die URL ein, an die ClickBank die Benachrichtigungen senden soll.
- Klicken Sie rechts neben der URL auf “Testen”.
- Überprüfen Sie anhand der im Pop-up-Fenster angezeigten Antwort, ob der Test erfolgreich war.
Hinweis: Klicken Sie nicht auf “Änderungen speichern”.
Wenn der Test nicht erfolgreich war, entfernen Sie die URL aus dem Feld “Sofortige Benachrichtigung” und beheben Sie mögliche Konnektivitäts- oder Programmierprobleme.
Wichtiger Hinweis: Sie sollten das Feld “Sofortige Benachrichtigung” erst dann ausfüllen, nachdem der Test erfolgreich war. Andernfalls besteht die Möglichkeit, dass Ihr Zugriff auf die Funktion deaktiviert wird.
Bei jeder Ausführung des Tests werden die folgenden Instant Notification-Parameter weitergegeben.
| Parameter | Wert |
| ccustname | Benutzer des Tests |
| ccuststate | |
| ccustcc | |
| ccustemail | testuser@somesite.com |
| cproditem | 399 |
| cprodtitle | Ein weitergegebener Produkttitel |
| cprodtype | STANDARD |
| ctransaction | TEST |
| ctransaffiliate | |
| ctransamount | 100 |
| ctranspaymentmethod | VISA |
| ctranspublisher | Tatsächlicher Nickname des Vendors |
| ctransreceipt | XXXXXXXX |
| caffitid | |
| cvendthru | |
| cverify | Tatsächlicher Wert für “cverify” |
Kontoeinrichtung
Nachdem Ihnen Zugriff auf die Funktion gewährt wurde und Sie den Test erfolgreich durchgeführt haben, müssen Sie jetzt die Kontoeinrichtung für den Instant Notification Service vornehmen. Führen Sie für die Einrichtung dieses Dienstes einfach die folgenden Schritte aus:
- Melden Sie sich bei Ihrem Konto an.
- Klicken Sie auf die Registerkarte “Kontoeinstellungen”.
- Klicken Sie in der Unternavigation auf “Eigene Website”.
- Geben Sie auf der Seite “Eigene Website” einen Geheimcode ein.
- Geben Sie in das Feld “Sofortige Benachrichtigung 1″ eine Instant Notification-URL ein (Ports 80 oder 443 – SSL empfohlen)
- Klicken Sie vor dem Speichern der Änderungen rechts neben der URL auf “Testen”.
- Überprüfen Sie anhand der im Pop-up-Fenster angezeigten Antwort, ob der Test erfolgreich war.
- Klicken Sie auf “Änderungen speichern”.
Unmittelbar nach dem Abschluss der Einrichtung werden die Instant Notification-Übertragungen gestartet.
Deaktivierung
Das Entfernen der URL aus dem Feld “Sofortige Benachrichtigung” auf der Seite “Eigene Website” bewirkt, dass das System keine Benachrichtigungen mehr versendet.
Häufige Fragen
F: Ich bin kein erfahrener Programmierer. Sollte ich versuchen, sofortige Benachrichtigungen von ClickBank zu installieren?
A: Nein. Für verschiedene Punkte des Instant Notification Service ist Programmiererfahrung erforderlich.
F: Kann der Instant Notification Service pro Empfang mehr als ein POST senden?
A: Ja. Dies ist in vielen Szenarien möglich. Beispielsweise erhalten Sie verschiedene POSTs für eine einzige Transaktion, wenn eine Rückerstattung erfolgt ist, die anschließend storniert wurde. Hieraus würde sich ein POST für eine “RFND”-Aktion und anschließend ein POST für eine “SALE”-Aktion ergeben. Die erste Aktion ergibt sich daraus, dass für den ursprünglichen Verkauf eine Rückerstattung erfolgt ist. Die zweite Aktion ergibt sich daraus, dass der Verkauf wieder in Kraft gesetzt wurde.
F: Wodurch kann ich das Senden von POSTs durch den ClickBank Instant Notification Service beenden?
A: Das Entfernen der URL aus dem Feld “Sofortige Benachrichtigung” auf der Seite “Eigene Website” bewirkt, dass das System keine Benachrichtigungen mehr versendet.
F: Erhalte ich immer alle Parameter oder nur solche, die Werte enthalten?
A: Sie erhalten immer alle Parameter. Wenn ein Parameter keinen Wert enthält, enthält der Instant Notification-String den Parameter-Tag ohne Wert.
F: Warum wird für manche Parameter für die Zahl der zu erwartenden Zeichen “0″ angezeigt?
A: Diese Parameter enthalten während des Sendens keine Werte. Aus diesem Grund wird für sie die Möglichkeit “0 Zeichen” angezeigt.
F: Muss ich bei der Nutzung des Instant Notification Service von ClickBank SSL verwenden?
A: Dies ist nicht erforderlich, wird jedoch dringend empfohlen, da Sie sich auf diese Weise vor Internetdiebstahl schützen können.
F: Muss ich bei der Nutzung des Instant Notification Service von ClickBank eine Verschlüsselung durch Cipher verwenden?
A: Ja, dies ist erforderlich. Um den Instant Notification Service zu aktivieren, müssen Sie Ihrem Konto einen Geheimcode hinzufügen.
F: Sind die von ClickBank zur Verfügung gestellten Code-Beispiele voll funktionstüchtig und sofort einsatzbereit?
A: Nein. In den meisten Fällen müssen die Code-Beispiele in ein Programm eingebunden sein. Wenn Sie nicht über Erfahrungen in diesem Bereich verfügen, empfehlen wir Ihnen, die Dienste eines professionellen Programmierers in Anspruch zu nehmen.
F: Verwendet der Instant Notification Service von ClickBank ein selbstunterschriebenes SSL-Zertifikat?
A: Nein. Es ist ein gültiges Zertifikat erforderlich.
F: Ist es möglich, den Instant Notification Service vor der Implementierung zu testen?
A: Ja. Führen Sie die folgenden Schritte aus, um die Konnektivität und Verarbeitung zwischen ClickBank und Ihrem Server zu testen:
- Geben Sie die URL ein, an die ClickBank die Benachrichtigung senden soll.
- Klicken Sie vor dem Speichern der Änderungen rechts neben der URL auf “Testen”.
- Überprüfen Sie anhand der im Pop-up-Fenster angezeigten Antwort, ob der Test erfolgreich war.
F: Kann ich an mehr als eine URL Benachrichtigungen senden?
A: Ja. Nach dem Speichern der ersten URL für die Benachrichtigung kann eine zweite URL eingegeben werden. Hinweis: Für die zweite URL gelten die gleichen Regeln wie für die erste URL.
Code-Beispiele
Die Daten, die Sie vom Instant Notification Service erhalten, liegen in Form von HTML FORM POST URL-Parametern vor. Innerhalb Ihrer Anwendungsarchitektur geschriebene Programme müssen diese Paare verarbeiten. Es können auch Programme für das Bestellmanagement, die Datenbankaktivität und sonstige Dienste geschrieben werden. Diese werden in dieser Anleitung jedoch nicht behandelt.
JAVA
Verschlüsselung mit Cipher (Code für die Validierungsverarbeitung)
Der folgende Java-Code erstellt den Wert für “cverify” und verifiziert, ob die Verwendung der Klartextwerte im HTTP POST und in Ihrem Geheimcode korrekt ist.
Hinweis: Hierfür ist die Jakarta Commons Codec-Bibliothek erforderlich.
Code-Beispiel
public boolean validateApiNotification(HttpServletRequest request) { String cverify = request.getParameter("cverify"); String pop = String.format("%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s", request.getParameter("ccustname"), request.getParameter("ccustemail"), request.getParameter("ccustcc"), request.getParameter("ccuststate"), request.getParameter("ctransreceipt"), request.getParameter("cproditem"), request.getParameter("ctransaction"), request.getParameter("ctransaffiliate"), request.getParameter("ctranspublisher"), request.getParameter("cprodtype"), request.getParameter("cprodtitle"), request.getParameter("ctranspaymentmethod"), request.getParameter("ctransamount"), request.getParameter("caffitid"), request.getParameter("cvendthru"), "YOUR SECRET KEY"); return cverify.equalsIgnoreCase(DigestUtils.shaHex(pop).substring(0, 8)); }
PHP
Verschlüsselung mit Cipher (Code für die Validierungsverarbeitung)
Der folgende PHP erstellt den Wert für “cverify” und verifiziert, ob die Verwendung der Klartextwerte im HTTP POST und in Ihrem Geheimcode (anstelle einer URL-Verschlüsselung) korrekt ist.
Antworttypen:
1 = Erfolgreich
0 = Fehlgeschlagen
Code-Beispiel
<?php
function cbValid() {
$key='YOUR SECRET KEY';
$ccustname = $_REQUEST['ccustname'];
$ccustemail = $_REQUEST['ccustemail'];
$ccustcc = $_REQUEST['ccustcc'];
$ccuststate = $_REQUEST['ccuststate'];
$ctransreceipt = $_REQUEST['ctransreceipt'];
$cproditem = $_REQUEST['cproditem'];
$ctransaction = $_REQUEST['ctransaction'];
$ctransaffiliate = $_REQUEST['ctransaffiliate'];
$ctranspublisher = $_REQUEST['ctranspublisher'];
$cprodtype = $_REQUEST['cprodtype'];
$cprodtitle = $_REQUEST['cprodtitle'];
$ctranspaymentmethod = $_REQUEST['ctranspaymentmethod'];
$ctransamount = $_REQUEST['ctransamount'];
$caffitid = $_REQUEST['caffitid'];
$cvendthru = $_REQUEST['cvendthru'];
$cbpop = $_REQUEST['cverify'];
$xxpop = sha1("$ccustname|$ccustemail|$ccustcc|$ccuststate|$ctransreceipt|$cproditem|$ctransaction|"
."$ctransaffiliate|$ctranspublisher|$cprodtype|$cprodtitle|$ctranspaymentmethod|$ctransamount|$caffitid|$cvendthru|$key");
$xxpop=strtoupper(substr($xxpop,0,8));
if ($cbpop==$xxpop) return 1;
else return 0;
}
?>


