Für die vollständige Integration der PayTR iFrame API reicht es nicht aus, nur das Zahlungsformular anzuzeigen. Die tatsächliche Auftragsbestätigung oder -stornierung erfolgt über die Benachrichtigungs-URL. In diesem Artikel erklären wir Schritt für Schritt, wie die PayTR Benachrichtigungs-URL-Integration durchgeführt wird, und unterstützen dies mit Beispielcode.
Wir empfehlen Ihnen außerdem, den folgenden Artikel für den ersten Schritt, die iFrame-Integration, zu lesen:
Was ist die Benachrichtigungs-URL?
Nachdem der Kunde die Zahlung abgeschlossen hat, sendet PayTR eine POST-Anfrage an die in Ihrem System definierte Benachrichtigungs-URL. Dank dieser Benachrichtigung bestätigen Sie den Status Ihrer Bestellung (Bestätigung/Stornierung).
Wichtiger Hinweis:
-
Die Benachrichtigungs-URL ist keine "Benutzerumleitungs"-Seite.
-
Sie läuft serverseitig.
-
Sie müssen dem PayTR-System sofort nach Erhalt der Benachrichtigung mit "OK" antworten.
Parameter, die PayTR an die Benachrichtigungs-URL sendet
Parameter | Erforderlich | Beschreibung |
---|---|---|
merchant_oid | Ja | Bestellnummer |
status | Ja | "success" oder "failed" |
total_amount | Ja | Gezahlter Gesamtbetrag (in Cent) |
hash | Ja | Hash-Wert zur Signaturprüfung |
failed_reason_code | Nein | Fehlercode |
failed_reason_msg | Nein | Fehlermeldung |
test_mode | Nein | Testtransaktion? |
payment_type | Ja | 'card' oder 'eft' |
currency | Nein | TL, USD, EUR usw. |
payment_amount | Nein | Ursprünglich gesendeter Betrag |
Wie wird die Benachrichtigungs-URL-Integration durchgeführt?
1. Empfangen Sie die eingehenden POST-Daten
$post = $_POST;
2. Überprüfen Sie die Signatur (Hash) der eingehenden Daten
$merchant_key = 'Ihr_Merchant_Key';
$merchant_salt = 'Ihr_Merchant_Salt';
$hash = base64_encode( hash_hmac('sha256', $post['merchant_oid'].$merchant_salt.$post['status'].$post['total_amount'], $merchant_key, true) );
if( $hash != $post['hash'] )
die('PAYTR notification failed: bad hash');
3. Identifizieren Sie die Bestellung und aktualisieren Sie ihren Status
if( $post['status'] == 'success' ) {
// Bestellung BESTÄTIGEN
} else {
// Bestellung STORNIEREN
}
4. Geben Sie unbedingt die Antwort "OK" zurück
echo "OK";
exit;
Sicherheitsempfehlungen
-
Überprüfen Sie die eingehenden POST-Daten unbedingt mit einer Hash-Prüfung.
-
Da Sie die Benachrichtigung mehrmals erhalten können, führen Sie keine erneute Verarbeitung durch, indem Sie den Bestellstatus abfragen.
-
Geben Sie keine zusätzlichen Ausgaben in Ihrer Benachrichtigungs-URL aus. Schreiben Sie nur
OK
. -
Verwenden Sie keine Session-Variablen. Finden Sie Bestellungen nur mit
merchant_oid
.
Fehlerhafte Situationen und Ursachen
failed_reason_code | Beschreibung |
---|---|
0 | Detaillierte Fehlermeldung |
1 | Fehlende Authentifizierung |
2 | Falsches Passwort |
3 | Sicherheitsprüfung fehlgeschlagen |
6 | Kunde hat nicht bezahlt |
8 | Ratenzahlung wird nicht unterstützt |
9 | Keine Berechtigung zur Kartenverarbeitung |
10 | 3D Secure erforderlich |
11 | Betrugswarnung |
99 | Technischer Integrationsfehler |
Häufige Fehler in der Benachrichtigungs-URL
-
Keine OK-Antwort zurückgegeben → Bestellung wird als "In Bearbeitung" angezeigt.
-
Keine Hash-Prüfung der Benachrichtigung durchgeführt → Sicherheitslücke.
-
Verwendung von Session → Nicht verwendbar, stürzt ab.
-
Mehrfache Bestätigungs-/Stornierungsvorgänge für dieselbe Bestellung → Doppelte Vorgänge.
Fazit: Die Integration ist ohne PayTR Benachrichtigungs-URL nicht abgeschlossen!
Die PayTR Benachrichtigungs-URL-Integration ist der kritischste Teil des Zahlungsprozesses. Wenn Sie diesen Schritt nicht korrekt ausführen, werden Ihre Zahlungen nicht abgeschlossen und Ihre Bestellungen können unvollständig bearbeitet werden. Indem Sie diese Anleitung Schritt für Schritt befolgen, können Sie Ihre PayTR-Integration professionell und sicher gestalten.
Verlinkte Inhalte: